본문 바로가기
IT/SQL 기초강좌 (PostgreSQL)

59강 SQL 초석 다지기 : PostgreSQL ALTER TABLE

by DoitSQL 2023. 1. 2.
728x90

PostgreSQL 기초강의, PostgreSQL 기초강좌, PostgreSQL 기본강의, PostgreSQL 기본강좌

59강 SQL 초석 다지기 : PostgreSQL ALTER TABLE   

 

SQL 초석 다지기 59강 시작합니다.

 

이번 시간에는

 PostgreSQL ALTER TABLE

에 대해서 알아보는 시간입니다.

 

요약: 이번 강의에서는 PostgreSQL ALTER TABLE 문을 사용하여 테이블 구조를 수정하는 방법을 배웁니다.


Introduction to PostgreSQL ALTER TABLE statement   

기존 테이블의 구조를 변경하려면 PostgreSQL ALTER TABLE 문을 사용합니다.

다음은 ALTER TABLE 문의 기본 구문을 보여줍니다.

ALTER TABLE table_name action;   

 

PostgreSQL은 다음과 같은 다양한 작업을 제공합니다.

  • 열 추가
  • 열 삭제
  • 열의 데이터 유형 변경
  • 열 이름 바꾸기
  • 열의 기본값을 설정
  • 열에 제약 조건을 추가
  • 테이블 이름 바꾸기

테이블에 새 열을 추가하려면 ALTER TABLE ADD COLUMN 문을 사용   

ALTER TABLE table_name 
ADD COLUMN column_name datatype column_constraint;   

 

테이블에서 열을 삭제하려면 ALTER TABLE DROP COLUMN 문을 사용   

ALTER TABLE table_name 
DROP COLUMN column_name;   

 

열 이름을 바꾸려면 ALTER TABLE RENAME COLUMN TO 문을 사용   

ALTER TABLE table_name 
RENAME COLUMN column_name 
TO new_column_name;   

 

열의 기본값을 변경하려면 ALTER TABLE ALTER COLUMN SET DEFAULT 또는 DROP DEFAULT를 사용   

ALTER TABLE table_name 
ALTER COLUMN column_name 
[SET DEFAULT value | DROP DEFAULT];   

 

NOT NULL 제약 조건을 변경하려면 ALTER TABLE ALTER COLUMN 문을 사용   

ALTER TABLE table_name 
ALTER COLUMN column_name 
[SET NOT NULL| DROP NOT NULL];   

 

CHECK 제약 조건을 추가하려면 ALTER TABLE ADD CHECK 문을 사용   

ALTER TABLE table_name 
ADD CHECK expression;   

 

일반적으로 테이블에 제약 조건을 추가하려면 ALTER TABLE ADD CONSTRAINT 문을 사용   

ALTER TABLE table_name 
ADD CONSTRAINT constraint_name constraint_definition;   

 

테이블 이름을 바꾸려면 ALTER TABLE RENAME TO 문을 사용   

ALTER TABLE table_name 
RENAME TO new_table_name;   


PostgreSQL ALTER TABLE examples   

ALTER TABLE 문을 연습하기 위해 links라는 새 테이블을 만들어 보겠습니다.

DROP TABLE IF EXISTS links;

CREATE TABLE links (
   link_id serial PRIMARY KEY,
   title VARCHAR (512) NOT NULL,
   url VARCHAR (1024) NOT NULL
);   

 

 

active라는 새 열을 추가하려면 다음 문을 사용합니다.   

ALTER TABLE links
ADD COLUMN active boolean;   

 

 

다음 문은 link table에서 active 열을 제거합니다.   

ALTER TABLE links 
DROP COLUMN active;   

 

 

title 열의 이름을 link_title로 변경하려면 다음 문을 사용합니다.   

ALTER TABLE links 
RENAME COLUMN title TO link_title;   

 

 

다음 명령문은 target이라는 새 열을 link 테이블에 추가합니다.   

ALTER TABLE links 
ADD COLUMN target VARCHAR(10);   

 

 

_blank를 링크 테이블의 대상 열의 기본값으로 설정하려면 다음 문장을 사용합니다.   

ALTER TABLE links 
ALTER COLUMN target
SET DEFAULT '_blank';   

 

 

대상 열의 값을 지정하지 않고 새 행을 삽입하면 대상 열이 _blank를 기본값으로 사용합니다.     

INSERT INTO links (link_title, url)
VALUES('PostgreSQL Tutorial','https://www.postgresqltutorial.com/');   

 

다음 명령문은 링크 테이블에서 데이터를 선택합니다.

SELECT * FROM links;   

 

다음 문은 대상 열이 _self, _blank, _parent 및 _top 값만 허용하도록 대상 열에 CHECK 조건을 추가합니다. 

ALTER TABLE links 
ADD CHECK (target IN ('_self', '_blank', '_parent', '_top'));   

 

 

대상 열에 대해 설정된 CHECK 제약 조건을 위반하는 새 행을 삽입하려고 하면 오류를 발생시킵니다.   

INSERT INTO links(link_title,url,target) 

VALUES('PostgreSQL','http://www.postgresql.org/','whatever');   

 

다음 문은 링크 테이블의 URL 열에 고유 제약 조건을 추가합니다.  (url 중복 제한) 

ALTER TABLE links 
ADD CONSTRAINT unique_url UNIQUE ( url );   

 

 

다음 문은 이미 존재하는 URL을 삽입하려고 시도합니다.   

INSERT INTO links(link_title,url) 

VALUES('PostgreSQL','https://www.postgresqltutorial.com/');   

 

unique_url 제약 조건으로 인해 오류가 발생합니다.

 

다음 명령문은 링크 테이블의 이름을 URL로 변경합니다.   

ALTER TABLE links 
RENAME TO urls;   


이번 강의에서는 PostgreSQL ALTER TABLE 문을 사용하여 기존 테이블의 구조를 변경하는 방법을 배웠습니다.

 

수고하셨습니다.

다음 강의에서 뵙겠습니다.


본 강의는 PostgreSQL Tutorial을 참조합니다.  https://www.postgresqltutorial.com/
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다.

 

728x90

댓글