도서/모두를 위한 postgreSQL

DAY6. Alter Table

joje* 2023. 6. 22. 23:34

1. 만들어진 테이블에 컬럼 추가하기

  • ALTER TABLE 테이블이름 ADD COLUMN  컬럼이름 데이터 타입 제약조건;

: ADD COLUMN 실행 시 기존의 열들은 모두 NULL 값으로 채워지므로, 변경하는 컬럼에 NOT NULL 제약조건을 걸 경우 에러가 발생한다. 새로 추가되는 컬럼에 NOT NULL 제약조건을 넣고싶은 경우 아래의 순서를 따른다.

  • NOT NULL 제약조건 없이 컬럼을 생성한다.
  • 컬럼 값을 수정한다.(UPDATE 테이블명 SET 컬럼명='넣어줄 값' WHERE 참조할 컬럼 = '참조할 값';)
  • NOT NULL 제약조건을 추가한다. (ALTER TABLE 테이블명, ALTER COLUMN 컬럼명 SET NOT NULL;)

2. 만들어진 테이블에 컬럼 삭제하기

  • ALTER TABLE 테이블이름 DROP COLUMN 컬럼이름;

: 다른 테이블의 컬럼이 지우려고 하는 컬럼을 참조하고 있는 경우

  • ALTER TABLE 테이블이름 DROP COLUMN 컬럼이름 CASCADE;

3. 만들어진 테이블 컬럼명 바꾸기

  • ALTER TABLE 테이블이름 RENAME 기존컬럼이름 TO 새컬럼이름;
  • ALTER TABLE 테이블이름 RENAME COLUMN 기존컬럼이름 TO 새컬럼이름;

4. 만들어진 테이블에 제약조건 추가하기

:NOT NULL 제약조건 제거

  • ALTER TABLE 테이블 이름 ALTER COLUMN 컬럼이름 DROP NOT NULL;

:프라이머리키 제약조건 추가

  • ALTER TABLE 테이블 이름
  • ADD COLUMN PRIMARY KEY (컬럼이름);

:외래키 제약조건 추가

  • ALTER TABLE 테이블 이름
  • ADD FOREIGN (컬럼이름1) REFERENCES 부모테이블 (컬럼이름2);

5. 만들어진 테이블에 데이터 타입 변경하기

: 데이터 타입을 변경하는 명령어

  • ALTER TABLE 테이블 이름
  • ALTER COLUMN 컬럼이름 SET DATA TYPE  새로운 데이터 타입;
  • 또는
  • ALTER COLUMN 컬럼이름 TYPE  새로운 데이터 타입;

: 기존에 들어있는 데이터의 형변환과 동시에 데이터 타입을 변경할 시에는 USING을 사용한다.

  • ALTER TABLE 테이블 이름
  • ALTER COLUMN 컬럼이름 TYPE 새로운 데이터 타입 USING 컬럼이름::새로운 데이터 타입;