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

63강 SQL 초석 다지기 : PostgreSQL Change Column Type

by DoitSQL 2023. 1. 6.
728x90

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

63강 SQL 초석 다지기 : PostgreSQL Change Column Type   

 

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

 

이번 시간에는

 PostgreSQL Change Column Type

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

 

요약: 이번 강의에서는 ALTER TABLE 문을 사용하여 열의 데이터 유형을 변경하는 방법을 단계별로 보여 줍니다.


PostgreSQL change column type statement   

열의 데이터 유형을 변경하려면 다음과 같이 ALTER TABLE 문을 사용합니다.

ALTER TABLE table_name
ALTER COLUMN column_name [SET DATA] TYPE new_data_type; 

 

이 문장을 좀 더 자세히 살펴봅시다.

  • 먼저 ALTER TABLE 키워드 뒤에 있는 열을 변경할 테이블의 이름을 지정합니다.
  • 둘째, ALTER COLUM 절 뒤에 데이터 유형을 변경할 열의 이름을 지정합니다.
  • 셋째, TYPE 키워드 뒤에 있는 열의 새 데이터 유형을 입력합니다. SET DATA TYPE과 TYPE은 동일합니다.

단일 문에서 여러 열의 데이터 유형을 변경하려면 다음과 같은 여러 ALTER column 절을 사용합니다.

ALTER TABLE table_name
ALTER COLUMN column_name1 [SET DATA] TYPE new_data_type,
ALTER COLUMN column_name2 [SET DATA] TYPE new_data_type,
...; 

이 구문에서는 각 ALTER COLUMN 절 뒤에 쉼표(,)를 추가합니다.

 

 

PostgreSQL을 사용하면 다음과 같이 USING 절을 추가하여 데이터 유형을 변경하면서 열의 값을 새 값으로 변환할 수 있습니다.

ALTER TABLE table_name
ALTER COLUMN column_name TYPE new_data_type USING expression; 

USING 절은 이전 값을 새 값으로 변환할 수 있는 식을 지정합니다.

USING 절을 생략하면 PostgreSQL은 값을 새 값으로 암시적으로 캐스트 합니다. 캐스트가 실패할 경우, PostgreSQL에서 오류가 발생하며 USING 절에 데이터 변환에 대한 식을 제공할 것을 권장합니다.

USING 키워드 뒤의 식은 price::details와 같은 columnn_name::new_data_type만큼 단순하거나 사용자 지정 함수만큼 복잡할 수 있습니다.


PostgreSQL change column type examples   

이제 assets라는 새 테이블을 만들고 데모를 위해 테이블에 행을 삽입해 보겠습니다.

CREATE TABLE assets (
    id serial PRIMARY KEY,
    name TEXT NOT NULL,
    asset_no VARCHAR NOT NULL,
    description TEXT,
    location TEXT,
    acquired_date DATE NOT NULL
);

INSERT INTO assets(name,asset_no,location,acquired_date)
VALUES('Server','10001','Server room','2017-01-01'),
      ('UPS','10002','Server room','2017-01-01'); 

생성된 테이블의 열을 아래 모델에 맞춰 변경해 보겠습니다.

name 열의 데이터 유형을 VARCHAR로 변경해 보겠습니다.

ALTER TABLE assets 
ALTER COLUMN name TYPE VARCHAR;   

 

 

다음은 descriptionlocation 열의 데이터 유형을 TEXT에서 VARCHAR로 변경해 보겠습니다.

ALTER TABLE assets 
    ALTER COLUMN location TYPE VARCHAR,
    ALTER COLUMN description TYPE VARCHAR;   

 

 

asset_no 열의 데이터 유형을 정수로 변경해 보겠습니다.

ALTER TABLE

ALTER COLUMN asset_no TYPE INT;   

PostgreSQL은 다음과 같은 오류와 매우 유용한 힌트를 제공합니다.

위 문장에 USING 절을 추가합니다.

ALTER TABLE assets
ALTER COLUMN asset_no TYPE INT 
USING asset_no::integer;   

예상대로 잘 수행됩니다.

 

변경된 테이블을 확인해 보겠습니다.

\d assets

위에서 명령한 SQL에 맞게 잘 변경되었습니다.


이번 시간에는 ALTER TABLE ALTER COLUMN 문을 사용하여 열의 유형을 변경하는 방법에 대해 배웠습니다.

 

수고하셨습니다.


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

 

728x90

댓글