constraint (제약)
제약이란 데이터의 무결성을 지키기 위해, 데이터를 입력받을 때 실행되는 검사 규칙을 의미합니다.
이러한 제약 조건은 CREATE문으로 테이블을 생성할 때나 ALTER문으로 필드를 추가할 때도 설정할 수 있습니다.
NULL 허용 여부
- NULL
null 허용(기본, 생략가능) - NOT NULL
null 비허용 - 중복값 허용
NULL은 중복이 있을 수 있다.
CREATE TABLE my_table
(
col1 INT NULL, -- null 허용 (기본, 생략가능)
col2 INT NOT NULL -- null 허용 안함
);
UNIQUE
- 해당 컬럼에 유일한 값만 허용
- 중복값 비허용
CREATE TABLE my_table
(
col1 INT,
col2 INT UNIQUE -- 이 컬럼에 중복된 값을 넣을 수 없음
);
-- 예시2)
CREATE TABLE my_table
(
col1 INT,
col2 INT -- 이 컬럼에 중복된 값을 넣을 수 없음
CONSTRAINT unique_col2 UNIQUE (col2) - 제약조건의 이름 설정
);
DEFAULT
- 해당 컬럼의 기본값을 지정한다.
- 레코드 입력 시 필드 값을 전달하지 않으면, 자동으로 기본값을 저장한다.
CREATE TABLE my_table
(
col1 INT,
col2 INT DEFAULT 100, -- 값을 넣지 않으면 100
col3 VARCHAR(10) DEFAULT 'empty', -- 값을 넣지 않으면 'empty'
col4 DATETIME DEFAULT NOW() -- 값을 넣지 않으면 현재 일시
);
DESCRIBE, DESC
- 테이블의 컬럼과 타입, 제약사항 등을 확인한다.
- NULL 컬럼 : YES 일 경우 NULL값 허용
- Key 컬럼 : 유니크 값의 여부
- UNI - UNIQUE
- PRI - NOT NULL & UNIQUE (primary)
- 예시
SHOW
- TABLE 생성 쿼리 확인
- 데이터베이스 목록이나, 테이블 목록 등 다양한 정보를 보기 원할 때 사용
- SHOW CREATE TABLE
table_name
;- 확인한 테이블을 복사 붙여 넣기 할 경우 테이블명에 백틱( ` ) 사용으로 구분한다.
- SHOW CREATE TABLE
CHECK
- 특정 컬럼의 입력 가능한 값의 유효범위를 지정한다.
CREATE TABLE my_table
(
col1 INT,
col2 INT CHECK ( col2 > 100 ),
col3 INT CHECK ( col3 > 1000 AND col3 < 2000 )
);
'SQL' 카테고리의 다른 글
[SQL] 트랜잭션(transaction)과 4가지속성(ACID) (0) | 2023.10.20 |
---|---|
[SQL/MariaDB] JOIN (0) | 2023.10.13 |