ALTER: 테이블 구조(컬럼, 제약조건 등)를 수정시 사용. DDL(Data Definition Language)
아래에서 더 자세히 알아보겠다.
UPDATE: 테이블 내 레코드값을 수정시 사용. DML(Data Manipulation Language)
**UPDATE** table_name **SET** column1=value1, column2=value2, ..., columnN=valueN **WHERE** [조건];
ALTER TABLE tabe_name ADD column_name column-definition DEFAULT 'record' NOT NULL;
- 참고로 NOT NULL제약조건과 디폴트값을 설정했으므로, 추가된 칼럼의 값을 삽입하지 않아도 'record'라는 디폴트값이 채워진다.
ALTER TABLE book ADD PRIMARY KEY (id);
ALTER TABLE library ADD FOREIGN KEY(book_id) REFERENCES book(id);
컬럼
ALTER TABLE table_name DROP COLUMN column_name;
컬럼 제약조건
ALTER TABLE table_name
COLUMN column_name DROP NOT NULL;
ALTER TABLE table_name
RENAME name1 TO name2;
- 한 칼럼씩만 이름 수정이 가능하다.
- 바꾼 컬럼을 참조하는 컬럼이 있으면 PostgreSQL에선 자동으로 변경된다.
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;
- 위와 같이 새로운 데이터 타입을 설정할 수도 있다.
ALTER TABLE water
ALTER COLUMN location_no TYPE INTEGER USING location_no```
::- CAST로 형 변환 후 새로운 데이터 타입(INTEGER)으로 변경했다.