DataBase/SQL

[DB][SQL] ALTER 테이블 _ ALTER TABLE

bay07 2024. 4. 2. 12:13

▷ ALTER TABLE statement

테이블 및 필드 조작하기 


명령어  역할 
ALTER TABLE ADD COLUMN 필드 추가
ALTER TABLE RENAME COLUMN 필드 이름 변경
ALTER TABLE RENAME TO 테이블 이름 변경

 문법

ADD COLUMN 키워드를 먼저 적는다

그 뒤에 추가하고자 하는 새 필드 이름, 데이터 타입, 제약 조건을 작성한다

단, 추가하고자하는 필드에 NOT NULL 제약 조건이 있을 경우

NULL이 아닌 기본 값으로 설정할 필요가 있다. 

 

NULL 은 칸(공간)은 있지만 값이 없는 경우를 말한다. 해당 칸에 없으면 자동으로 NULL값이 채워지는데 프로그래밍 할 때 NULL 값이 채워져 있는것은 그리 좋지 않다. 그래서 NULL 값 보다는 다른 값으로 채워 넣곤 하는데 그때 사용하는 것이 NOT NULL DEFAULT '채워넣을값' 이다. 위 구문을 사용하는데 있어 이미 NULL 값이 들어가 있는경우 버그가 나므로 해당 데이터를 삭제하고 다시 설정해줘야 한다.

 

1. examples 테이블에 다음 조건에 맞는 Country 필드를 추가한다 

ALTER TABLE 
  examples
ADD COLUMN
  Country VARCHAR(100) NOT NULL DEFAULT 'default value';

테이블 생성 시 정의한 필드는, 기본 값이 없어도 NOT NULL 제약 조건으로 생성된다

내부적으로 Default value는 NULL로 설정된다


 

2. examples 테이블에 다음 조건에 맞는 Age, Address 필드를 추가한다 

* 참고

sqlite는 단일 문을 사용하여 한번에 여러 열을 추가하는 것을 지원하지 않는다

ALTER TABLE examples
ADD COLUMN Age INTEGER NOT NULL DEFAULT 0;

ALTER TABLE examples
ADD COLUMN Address VARCHAR(100) NOT NULL DEFAULT 'default value';