Notice
Recent Posts
Recent Comments
Link
관리 메뉴

데브마우스

[SQL] 인덱스, 뷰, 스토어드 프로시저 정리 본문

데이터베이스/SQL: 정리

[SQL] 인덱스, 뷰, 스토어드 프로시저 정리

데브마우스 2024. 1. 2. 13:44

인덱스(index)란 무엇인가요?

현실의 인덱스는 책의 제일 뒤에 있는 "찾아보기"입니다. 그렇다면 SQL에서 인덱스란 무엇일까요? 테이블의 검색 속도를 향상시키기 위한 데이터 구조입니다. 

인덱스를 왜 사용하나요? -> 속도

인덱스를 사용하면 데이터를 조회할 때 결과가 나오는 속도를 빠르게 해줍니다.

인덱스를 어떻게 사용하나요?

인덱스를 만드는 SQL 쿼리문은 아래와 같습니다.

CREATE INDEX 인덱스_이름 ON 테이블_이름(컬럼_이름);

 


뷰(View)란 무엇인가요?

SQL에서 뷰는 현실 세계의 창문에 비유하곤 합니다. 창문을 통해 창문 프레임 안의 경치를 볼 수 있습니다. 뷰를 통해 가상의 테이블을 만들고 일반 사용자는 그 테이블과 동일하게 뷰를 취급합니다. 하지만 뷰는 실제 데이터를 가지고 있지 않으며 윈도우즈의 바로가기(링크)와 비슷합니다.

뷰를 왜 사용하나요?

가상의 테이블을 만들어서 다른 열을 접근할 수 없게하여 보안을 강화시키고, SQL문도 간단하게 사용할 수 있습니다.

뷰를 어떻게 사용하나요?

아래 코드로 뷰를 생성할 수 있습니다.

CREATE VIEW 뷰_이름 AS "SELECT * from 테이블";

스토어드 프로시저(Stored Procedure)란 무엇인가요?

스토어드 프로시저는 SQL문을 함수로 만들 수 있습니다. 함수로 만들어 미리 작성해두고 필요할 때 마다 호출해서 사용할 수 있습니다.

스토어드 프로시저를 왜 사용하나요?

만약 SELECT SQL문을 2개 실행한다면 어떨까요? 매번 2개의 SQL문을 작성해야하고 이건 불편할 것입니다. 그렇다면 이를 함수로 만들어서 하나의 문장을 입력하면 앞서 적은 SELECT SQL문 2개가 실행되게 할 수 있습니다.

스토어드 프로시저를 어떻게 사용하나요?

아래 코드로 프로시저를 생성하고 프로시저를 호출할 수 있습니다.

-- 스토어드 프로시저 선언
DELIMITER //
CREATE procedure myProc()
BEGIN
SELECT * FROM member WHERE member_name = "A1";
SELECT * FROM product WHERE product_name = "Chicken";
END //
DELIMITER ;

-- 스토어드 프로시저 호출
CALL myProc();