테이블에 올바른 데이터만 입력 받고 잘못된 데이터는 들어오지 못하도록 컬럼마다 정하는 규칙을 의미한다.
조건 이름 | 의미 |
---|---|
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 컬럼 값이 잘 따라온 것을 볼 수 있다.
인덱스는 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 실행에 악영향을 줄 수 있음