SQL_Constraint(제약조건) & INDEX

zooyeong·2023년 4월 25일
0

13주차

목록 보기
1/7
post-thumbnail

📌제약 조건(Constraint)이란?

테이블에 올바른 데이터만 입력 받고 잘못된 데이터는 들어오지 못하도록 컬럼마다 정하는 규칙을 의미한다.

조건 이름의미
NOT NULL이 조건이 설정된 컬럼에는 NULL 값이 입력되지 못하도록 함
UNIQUE이 조건이 설정된 컬럼에는 중복된 값이 입력되지 못하도록 함
PRIMARY KEY이 조건은 NOT NULL + UNIQUE의 특징을 가지며 테이블 내에서 데이터들끼리의 유일성을 보장하는 컬럼에 설정. 테이블당 1개만 설정 가능
FOREIGN KEY이 조건은 다른 테이블의 컬럼을 참조해서 검사
CHECK이 조건에서 설정된 값만 입력을 허용. 나머지는 거부

▼FOREIGN KEY
>>> 두 개의 테이블을 서로 참조하도록 설정됨

CREATE TABLE 자식테이블
(
    컬럼명 NUMBER(n) REFERENCES 부모테이블(컬럼명)
);

-> 부모테이블용 temp_member 테이블 생성

-> temp_member 테이블에 값을 넣어주기

-> 자식테이블용 temp_team 테이블 생성
-> REFERENCES를 통해 부모테이블의 id를 참조함

-> temp_team에 데이터를 넣을 때 참조하는 temp_member의 id 값을 넣음

-> temp_team을 조회하니 temp_member의 id 컬럼 값이 잘 따라온 것을 볼 수 있다.

📌INDEX

인덱스는 RDBMS에서 검색 속도를 높이기 위한 기술이다.

TABLE의 컬럼을 따로 파일로 저장(색인화)하여 검색 시 해당 TABLE의 레코드를 다 스캔하는게 아닌 색인화되어 있는 INDEX 파일을 검색하여 검색 속도를 빠르게 한다.

보통 SELECT 쿼리의 WHERE절, JOIN 예약어 등을 사용했을 때 인덱스가 사용된다.

DISK에 있는 데이터를 메모리에 올려두고 정렬해서 Index File로 만들어둔다.(별도로 관리를 해야함)

▼ 기본 문법

CREATE INDEX 인덱스명
ON 테이블이름(컬럼명1 ASC|DESC, 컬럼명2, ...);

▼ INDEX의 주의사항

  • DML에 취약
    DELETE - Index 데이터는 지워지지 않음
    UPDATE - DELETE + INSERT 현상 발생

  • 타 SQL 실행에 악영향을 줄 수 있음

profile
Have a good day ⌯’▾’⌯

0개의 댓글