옵션 DEFAULT 값
- 데이터 입력 시 특정 컬럼의 값을 입력하지 않은 경우 NULL값 대신 입력 될 기본 값을 설정하는 옵션
제약조건(CONSTRAINT)
- 데이터의 무결성 유지를 위해 테이블에 적용되는 데이터에 대한 제약 설정
NOT NULL
- 해당 제약조건이 적용된 컬럼에 NULL값을 허용하지 않는 제약
- 값의 입력이 필수인 컬럼에 설정
실습 데이터베이스 생성
CREATE TABLE testnn
(
name VARCHAR(30) NOT NULL,
age INT
);
CREATE TABLE testdefault
(
emp_id INT,
hite_date DATETIME DEFAULT NOW()
-- NOW() : 현재 서버 시간 돌려주는 '함수'
);
DESC testdefault;
hire_date 컬럼에는 옵션으로 기본값을 NOW() 함수의 결과를 설정하였음.
INSERT INTO testdefault (emp_id)
VALUES (1);
SELECT * FROM testdefault;
• hire_date 컬럼에 대한 입력값을 생략했으나 hire_date 컬럼에 적용된 default 값이 동작하여 NOW()함수의 결과가 대신 입력된 것을 볼 수 있다.
INSERT INTO testdefault (emp_id, hite_date)
VALUES (2, NULL);
SELECT * FROM testdefault;
• hire_date 컬럼에 대해서 명시적으로 NULL값을 입력하게 되면 DEFAULT 설정이 동작하지 않는다.
UNIQUE - 고유한 값만 입력
• UNIQUE 제약조건이 적용된 컬럼에는 중복값을 입력할 수 없도록 제약이 걸리게 된다.
CREATE TABLE testuk
(
id INT UNIQUE
);
INSERT INTO testuk
VALUES(1);
SELECT * FROM testuk;
PRIMARY KEY - 테이블의 대표 컬럼 지정하는 제약조건
- NOT NULL + UNIQUE의 기능을 가진다.
- 테이블의 행 데이터들을 개개별로 구분 할 수 있는 의미의 컬럼에 적용하는 제약조건이다.
- 테이블 당 한번만 사용가능하다.
CREATE TABLE testpk
(
id INT PRIMARY KEY,
ci_id INT NOT NULL UNIQUE,
name varchar(10)
);
DESC testpk;
'DB > MySQL' 카테고리의 다른 글
[Mysql] 자주 쓰이는 숫자함수 모음 (0) | 2023.09.16 |
---|---|
[Mysql] 자주 쓰이는 문자함수 모음 (0) | 2023.09.16 |
[MySQL] 데이터 언어 - DDL (0) | 2023.09.16 |
[MySQL] 데이터 언어 - DML (0) | 2023.09.16 |
[Mysql] JOIN, SELF-JOIN, table alias (0) | 2023.09.16 |