1. 인덱스(Index)
- 정의 : 데이터베이스에서 테이블에 저장된 데이터를 빠르게 검색할 수 있도록 도와주는 자료구조.
- 특징 : 키값과 포인터의 쌍으로 구성되는 데이터 구조로 테이블의 하나 이상의 열(column)에 대해 생성되며, 특정 값으로 테이블을 검색할 때 그 값이 인덱스에 존재한다면 인덱스를 이용하여 빠르게 검색할 수 있음
- 생성 방법
CREATE INDEX 인덱스명 ON 테이블명 (열1, 열2, ...);
- 예시
위 쿼리문은 "members" 테이블의 "name" 열에 대한 인덱스를 "idx_name"이라는 이름으로 생성함.
2. 뷰
- 정의 : 데이터베이스에서 특정한 쿼리를 실행한 결과를 하나의 가상 테이블로 만들어서, 사용자에게 쉽게 접근하고 활용할 수 있도록 해주는 기능
- 특징 : 테이블과 유사한 구조를 가지지만, 데이터를 별도로 저장하지 않고 쿼리 실행 결과를 이용하여 생성
- 장점 : 원본 테이블을 보호하고, 접근 권한을 제한하여 데이터 보안을 강화
- 생성 방법
CREATE VIEW 뷰명 AS SELECT 컬럼1, 컬럼2, ... FROM 테이블명 WHERE 조건식;
-예시 : "members" 테이블에서 "gender" 열이 "F"인 여성 회원들의 정보만 볼 수 있는 뷰
CREATE VIEW female_members AS SELECT id, name, age, address FROM members WHERE gender = 'F';
3. 프로시저
- 정의 : 하나 이상의 SQL 문들을 묶어서 하나의 논리적인 작업 단위로 정의하고, 필요할 때마다 호출하여 사용할 수 있는 프로그램
- 장점 : 중복되는 코드를 줄일 수 있고, 더욱 효율적인 데이터 처리가 가능
- 생성 방법
CREATE PROCEDURE 프로시저명(매개변수1 데이터형, 매개변수2 데이터형, ...)
BEGIN
SQL 문1;
SQL 문2;
...
END;
- 호출방법
CALL 프로시저명(매개변수1, 매개변수2, ...);
- 예시
1) 생성
2) 호출 : 위에서 생성한 "get_members_over30" 프로시저를 호출하여 "age"가 30세 이상인 회원들의 정보를 가져 오기
댓글