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

61강 SQL 초석 다지기 : PostgreSQL ADD COLUMN

by DoitSQL 2023. 1. 4.
728x90

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

61강 SQL 초석 다지기 : PostgreSQL ADD COLUMN  

 

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

 

이번 시간에는

 PostgreSQL ADD COLUMN

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

 

요약: 이번 강의에서는 PostgreSQL ADD COLUMN 문을 사용하여 기존 테이블에 하나 이상의 열을 추가하는 방법을 배웁니다.


Introduction to the PostgreSQL ADD COLUMN statement   

기존 테이블에 새 열을 추가하려면 다음과 같이 ALTER TABLE ADD COLUMN 문을 사용합니다.

ALTER TABLE table_name
ADD COLUMN new_column_name data_type constraint;   

 

이 구문에서:

  • 먼저 ALTER TABLE 키워드 뒤에 새 열을 추가할 테이블의 이름을 지정합니다.
  • 둘째, ADD COLUMN 키워드 뒤에 새 열의 이름과 데이터 유형 및 제약 조건을 지정합니다.

테이블에 새 열을 추가하면 PostgreSQL은 테이블 끝에 이 항목을 추가합니다. PostgreSQL에는 테이블에서 새 열의 위치를 지정하는 옵션이 없습니다.

다른 dbms에서도 새열을 추가하면 테이블의 끝에 추가됩니다. 

 

기존 테이블에 여러 열을 추가하려면 ALTER TABLE 문에서 다음과 같이 여러 ADD COLUM 절을 사용합니다.

ALTER TABLE table_name
ADD COLUMN column_name1 data_type constraint,
ADD COLUMN column_name2 data_type constraint,
...
ADD COLUMN column_namen data_type constraint;   


PostgreSQL ADD COLUMN statement examples   

다음 CREATE TABLE 문은 id 및 customer_name이라는 두 개의 열을 가진 customers라는 새 테이블을 생성합니다.

DROP TABLE IF EXISTS customers CASCADE;

CREATE TABLE customers (
    id SERIAL PRIMARY KEY,
    customer_name VARCHAR NOT NULL
);   

 

 

다음 문은 ALTER TABLE ADD COLUMN 문을 사용하여 phone 열을 고객 테이블에 추가합니다.

ALTER TABLE customers 
ADD COLUMN phone VARCHAR;   

 

 

그리고 다음 문장은 faxemail 열을 고객 테이블에 추가합니다.

ALTER TABLE customers
ADD COLUMN fax VARCHAR,
ADD COLUMN email VARCHAR;   

 

psql 도구에서 고객 테이블의 구조를 보려면 다음과 같이 \d 명령을 사용할 수 있습니다.

\d customers   

출력에서 명확히 알 수 있듯이 전화, 팩스 및 이메일 열이 고객 테이블의 열 목록 끝에 표시되었습니다.


Add a column with the NOT NULL constraint to a table that already has data   

다음 문장은 고객 테이블에 데이터를 삽입합니다.

INSERT INTO 
   customers (customer_name)
VALUES
   ('Apple'),
   ('Samsung'),
   ('Sony');   

 

 

contact_name 열을 고객 테이블에 추가한다고 가정합니다.

ALTER TABLE customers 
ADD COLUMN contact_name VARCHAR NOT NULL;   

 

PostgreSQL에서 오류가 발생합니다.

contact_name 열에 NOT NULL 제약 조건이 있기 때문입니다. 열을 추가했을 때 이미 들어 있던 열은 null로 채워집니다. 따라서 NOT NULL 제약 조건을 위반합니다.

 

 

이 문제를 해결하기 위해…   

먼저 NOT NULL 제약 조건 없이 열을 추가합니다.

ALTER TABLE customers 
ADD COLUMN contact_name VARCHAR;   

 

 

둘째, contact_name 열의 값을 업데이트합니다.

UPDATE customers
SET contact_name = 'John Doe'
WHERE id = 1;

UPDATE customers
SET contact_name = 'Mary Doe'
WHERE id = 2;

UPDATE customers
SET contact_name = 'Lily Bush'
WHERE id = 3;   

 

 

셋째, contact_name 열에 NOT NULL 제약 조건을 설정합니다.

ALTER TABLE customers
ALTER COLUMN contact_name SET NOT NULL;   

에러 없이 실행됩니다.

기존 데이터에 contact_name 열의 값을 수정했기 때문입니다.


PostgresQL ADD COLUMN 문을 사용하여 테이블에 하나 이상의 열을 추가하는 방법을 배웠습니다.

 

수고하셨습니다. 다음 시간에 뵙겠습니다.


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

 

728x90

댓글