Software Study/SQL

[2021.02.18]SQL 공부 - 제약조건, 업데이트, 삭제

욜스터 2021. 2. 18. 17:40
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
반응형