목차
- 인덱스
- 뷰
- 스토어드 프로시저
데이터베이스 개체
- 테이블은 데이터의 핵심 개체이다.
- 하지만 테이블 외에 인덱스, 뷰, 스토어드 프로시저, 트리거, 함수, 커서 등의 개체도 필요하다.
- 모든 데이터베이스 개체들은 독립적으로 존재하는 것이 아니라 상호 연관이 있다.
- 인덱스
- 데이터를 조회할 때 결과가 나오는 속도를 획기적으로 빠르게 해준다.
- 뷰
- 테이블의 일부를 제한적으로 표현할 때 주로 사용
- 스토어드 프로시저
- SQL에서 프로그래밍이 가능하도록 해준다.
- 트리거
- 잘못된 데이터가 들어가있는 것을 미연에 방지하는 기능
인덱스
데이터가 많아질수록 결과가 나오는 시간이 많이 소요된다.
인덱스는 이런 경우 결과가 나오는 시간을 대폭 줄여준다.
CREATE INDEX idx_member_name ON member(member_name);
뷰
- 테이블과 상당히 동일한 성격의 데이터베이스 개체이다.
- 뷰를 사용하면 보안도 강화하고, SQL 문도 간단하게 사용할 수 있다.
- 한마디로 정의하면 '가상의 테이블'
- 뷰는 실제 데이터를 가지고 있지 않으며, 진짜 테이블에 링크된 개념
CREATE VIEW member_view AS
SELECT * FROM member;
SELECT * FROM member_view;
그렇다면 테이블을 쓰지 않고 굳이 뷰를 쓰는 이유가 뭘까?
- 보안에 도움이 된다.
- 긴 SQL문을 간략하게 만들 수 있다.
스토어드 프로시저
스토어드 프로시저(stored procedure)란 MySQL에서 제공하는 프로그래밍 기능으로, 여러 개의 SQL 문을
하나로 묶어서 편리하게 사용할 수 있다. SQL를 묶는 개념 외에 Java, C 같은 프로그래밍 언어에서 사용되는
연산식, 조건문, 반복문 등을 사용할 수 있다.
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';
↓
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER ;
CALL myProc();
'DB' 카테고리의 다른 글
[SQL] 데이터 변경을 위한 SQL 문 (0) | 2024.05.31 |
---|---|
[SQL] SQL SELECT 문(2) (0) | 2024.05.31 |
[SQL] SQL SELECT 문(1) (0) | 2024.05.31 |
[SQL] 데이터베이스 구축해보기 (1) | 2024.05.30 |
[SQL] DBMS, MySQL 설치 (0) | 2024.05.30 |