728x90
Constraints (제약조건)
제약 조건(constraint)이란 데이터의 무결성을 지키기 위해, 데이터를 입력받을 때 실행되는 검사 규칙을 의미한다.
이러한 제약 조건은 CREATE 문으로 테이블을 생성할 때나 ALTER 문으로 필드를 추가할 때도 설정할 수도 있다.
1. Unique & NULL
CREATE TABLE student(
student_id INT,
name VARCHAR(20) NOT NULL,
major VARCHAR(20) UNIQUE,
PRIMARY KEY(student_id)
);
UNIQUE -> 중복되는 값은 안됨.
해당 필드는 서로 다른 값을 가져야 한다. 즉, 이 제약 조건이 설정된 필드는 중복된 값을 저장할 수 없다.
NOT NULL-> 널(NULL)값은 안됨.
해당 필드는 NULL 값을 저장할 수 없다. 즉, 이 제약 조건이 설정된 필드는 무조건 데이터를 가지고 있어야 한다.
예시)
INSERT INTO student VALUES(1,'Jack', 'Biology');
INSERT INTO student VALUES(2,'Kate', 'Sociology');
위를 실행하면 잘 돌아간다.
INSERT INTO student VALUES(3, NULL, 'Chemistry');
INSERT INTO student VALUES(4,'Jack', 'Biology');
위를 실행하면 오류메시지가 뜬다.
2. Default value
CREATE TABLE student(
student_id INT,
name VARCHAR(20),
major VARCHAR(20) DEFAULT 'undecided',
PRIMARY KEY(student_id)
);
DEFAULT -> 정보가 주어지지 않으면 기본값으로 저장해줌.
해당 필드의 기본값을 설정할 수 있게 해준다. 만약 레코드를 입력할 때 해당 필드 값을 전달하지 않으면, 자동으로 설정된 기본값을 저장한다.
예시)
INSERT INTO student (student_id, name) VALUES(1, 'John');
+ Auto increment
CREATE TABLE student(
student_id INT AUTO_INCREMENT,
name VARCHAR(20),
major VARCHAR(20),
PRIMARY KEY(student_id)
);
AUTO_INCREMENT -> 알아서 ++됨.
예시)
INSERT INTO student(name, major) VALUES('Jack', 'Biology');
INSERT INTO student(name, major) VALUES('Kate', 'Sociology');
위를 실행하면 알아서 student_id가 1부터 1씩 증가한다.
Update & Delete
728x90
반응형
'Software Study > SQL' 카테고리의 다른 글
라즈베리파이에 SQL 설치 및 외부 접속 허용 (0) | 2021.03.25 |
---|---|
[2021.02.22] SQL공부 - 간단한 고객 관리 프로그램 (파이썬) (0) | 2021.02.22 |
[2021.02.22] SQL 공부 - Python에서 접속 (0) | 2021.02.22 |
[2021.02.17] SQL 공부 (0) | 2021.02.17 |
[2021.02.16] SQL 공부 (0) | 2021.02.16 |