[Database] TIL 9(211202)ㅣPostgreSQL실습: Alter

Choi Song Yi·2021년 12월 2일
0

TIL

목록 보기
4/4

Alter 와 Update의 차이점

  • ALTER: 테이블 구조(컬럼, 제약조건 등)를 수정시 사용. DDL(Data Definition Language)
    아래에서 더 자세히 알아보겠다.

  • UPDATE: 테이블 내 레코드값을 수정시 사용. DML(Data Manipulation Language)

    	**UPDATE** table_name **SET** column1=value1, column2=value2, ..., columnN=valueN **WHERE** [조건];

추가

(1) 컬럼 추가

ALTER TABLE tabe_name ADD column_name column-definition DEFAULT 'record' NOT NULL;

  • 참고로 NOT NULL제약조건과 디폴트값을 설정했으므로, 추가된 칼럼의 값을 삽입하지 않아도 'record'라는 디폴트값이 채워진다.

(2) 제약조건 추가

ALTER TABLE book ADD PRIMARY KEY (id);
ALTER TABLE library ADD FOREIGN KEY(book_id) REFERENCES book(id);

삭제

(1) DROP

  • 컬럼

    ALTER TABLE table_name DROP COLUMN column_name;

  • 컬럼 제약조건

    ALTER TABLE table_name
    COLUMN column_name DROP NOT NULL;

(2) CASCADE(참조테이블이 있을 때)

  • 부모테이블의 컬럼을 삭제하면 자식테이블의 컬럼도 삭제된다.
  • GUI 상에서도 fkey제약조건이 삭제됐음을 알 수 있다.

변경

(1) RENAME

ALTER TABLE table_name
RENAME name1 TO name2;

  • 한 칼럼씩만 이름 수정이 가능하다.
  • 바꾼 컬럼을 참조하는 컬럼이 있으면 PostgreSQL에선 자동으로 변경된다.

(2) 데이터 타입

ALTER TABLE water
ALTER COLUMN column1_name TYPE INTEGER,
ALTER COLUMN column2_name TYPE VARCHAR;

  • 위 INTEGER와 VARCHAR은 새로운 데이터타입이다.

ALTER COLUMN column_name SET DATA TYPE DATE;

  • 위와 같이 새로운 데이터 타입을 설정할 수도 있다.
  • 주의: 같은 자료형끼리만 변경할 수 있다.
    ex) 숫자형->숫자형(O), 문자형->숫자형(X)

ALTER TABLE water
ALTER COLUMN location_no TYPE INTEGER USING location_no```
::

- CAST로 형 변환 후 새로운 데이터 타입(INTEGER)으로 변경했다.
profile
2021.11.22 ~ 국비지원과정 수강ing

0개의 댓글