코딩하는 몽구리

컬럼에 쓰이는 여러 속성 본문

SQL

컬럼에 쓰이는 여러 속성

코딩구리 2024. 4. 21. 17:12

1. 컬럼에 NOT NULL 속성 주기

어떤 값이 꼭 들어가야 하는 컬럼에 NOT NULL 속성을 주도록 하겠습니다. 

ALTER TABLE student MODIFY name VARCHAR(20) NOT NULL;
ALTER TABLE student MODIFY registaration_number INT NOT NULL;
ALTER TABLE student MODIFY major INT NOT NULL;

MODIFY 속성을 통해서 컬럼의 데이터 타입을 변경할 수 있었습니다. MODIFY 속성은 데이터 타입 뿐 아니라 컬럼의 속성도 변경할 수 있습니다. 위의 SQL문을 실행하면 name, registration_number, major 3 개의 컬럼의 속성이 NOTNULL로 변경된 것을 확인할 수 있습니다. 

NOT NULL 속성이 제대로 확인하는지 확인하기 위해서 NOT NULL 속성이 있는 컬럼에 값을 넣지 않고, SQL문을 실행해보도록 할게요.

INSERT INTO student (email, phone, gender)
		VALUES ("kshdd@naver.com", "010-1234-5678","m");

NOT NULL 속성을 제외하고 값을 추가하려고 하면 에러가 발생하는 것을 확인할 수 있습니다. 값이 반드시 있어야하는 컬럼에 값을 넣지 않고 값을 넣으려고 하니 에러가 발생하게 됩니다.

2. 컬럼에 DEFAULT 설정하기

이번에는 컬럼에 DAFAULT 즉 기본값을 설정해주도록 해볼게요 . 기본값을 설정해주게 되면 값을 설정하지 않게 되었을 때 설정해놓은 기본값이 들어가게 됩니다.  

student 테이블을 보게 되면, email, phone, gender라는 컬럼의 Default 값에 NULL 이라는 값이 적혀있습니다. 즉 3개의 컬럼에는 값을 넣지 않게 되면 NULL이라는 값이 설정된다는 뜻입니다. 이번에는 NN속성이 있는 컬럼에도 DEFAULT 속성을 설정하도록 할게요. 

ALTER TABLE student MODIFY major INT NOT NULL DEFAULT 101;

 해당 SQL문은 DEFAULT 값을 101로 설정하였습니다. major의 값을 따로 설정하지 않으면 기본값을 101로 설정한다는 의미입니다.  다시 student 테이블의 속성을 보게 되면 major 속성의 기본값으로 101 값이 설정되어 있는 것을 확인할 수 있습니다. 

INSERT INTO student (name, registration_number)
	VALUES ('소지섭', 20221111);

이 상태에서 name , registration_number 컬럼만 있는 상태로 값을 추가하고 테이블의 값을 확인해보도록 할게요.

4번 학생의 데이터를 추가할 때 major라는 값을 주지 않았는데도 101이라는 DEFAULT 값이 들어가 있는 것을 확인할 수 있습니다.