PostgreSQL - ALTER TABLE 명령어: 초보자 가이드

안녕하세요, 미래의 데이터베이스 마법사 여러분! 오늘 우리는 PostgreSQL의 흥미로운 세계로 뛰어들어 그 중에서도 가장 강력한 도구 중 하나인 ALTER TABLE 명령어를 탐구해보겠습니다. 프로그래밍에 처음이시라도 걱정 마세요; 여러분의 친절한 안내자로서 이 여정을 함께하겠습니다. 커피 한 잔을 들고, 시작해보겠습니다!

PostgreSQL - Alter Table Command

ALTER TABLE 명령어는 무엇인가요?

구체적인 내용에 들어가기 전에 ALTER TABLE 명령어가 무엇을 하는지 이해해보겠습니다. 아름다운 집(데이터베이스 테이블)을 지었는데, 지금은 새로운 방을 추가하거나 벽의 색을 바꾸고 싶다면 어떨까요? 그 precisely 그게 ALTER TABLE이 우리 데이터베이스 테이블에 하는 일입니다. 기존 테이블의 구조를 변경할 수 있도록 해주지만, 테이블 내의 데이터는 유지됩니다.

ALTER TABLE의 문법

이제 ALTER TABLE 명령어의 기본 문법을 살펴보겠습니다:

ALTER TABLE table_name action;

여기서 table_name은 변경하고 싶은 테이블의 이름이고, action은 테이블에 대해 수행하고 싶은 작업입니다. 간단하지 않나요? 하지만 기다리세요, 더 있습니다! action 부분은 여러 가지 다른 작업이 될 수 있습니다. 예제를 통해 탐구해보겠습니다.

일반적인 ALTER TABLE 작업

ALTER TABLE을 통해 수행할 수 있는 가장 일반적인 작업을 몇 가지 살펴보겠습니다:

작업 설명
ADD COLUMN 테이블에 새로운 열 추가
DROP COLUMN 테이블에서 열 제거
RENAME COLUMN 열 이름 변경
ALTER COLUMN 열 데이터 타입 변경
ADD CONSTRAINT 테이블에 새로운 제약 조건 추가
DROP CONSTRAINT 테이블에서 제약 조건 제거
RENAME TO 테이블 이름 변경

이제 각 작업에 대해 예제를 통해 자세히 살펴보겠습니다!

1. 새로운 열 추가

예를 들어, students 테이블에 이메일 주소를 저장할 새로운 열을 추가하고 싶다면 어떻게 하나요?

ALTER TABLE students
ADD COLUMN email VARCHAR(100);

이 명령어는 students 테이블에 email이라는 새로운 열을 추가합니다. VARCHAR(100) 부분은 최대 100자까지 저장할 수 있음을 의미합니다.

2. 열 제거

아이고! phone_number 열이 더 이상 필요 없음을 깨달았습니다. 이를 제거하는 방법은?

ALTER TABLE students
DROP COLUMN phone_number;

이렇게 하면 phone_number 열이 사라집니다. 이 작업은 되돌릴 수 없으므로 주의하세요!

3. 열 이름 변경

아마 name 열을 full_name으로 변경하고 싶을 수도 있습니다:

ALTER TABLE students
RENAME COLUMN name TO full_name;

이제 우리의 name 열은 full_name으로 변경됩니다. 열에 닉네임을 주는 것 같아요!

4. 열 데이터 타입 변경

우리의 age 열이 정수 대신 소형 정수로 변경되어야 한다고 깨달았다면 어떻게 하나요?

ALTER TABLE students
ALTER COLUMN age TYPE SMALLINT;

이 명령어는 age 열의 데이터 타입을 SMALLINT로 변경합니다. 열에 새로운 옷을 입히는 것 같아요!

5. 제약 조건 추가

제약 조건은 우리의 데이터에 대한 규칙입니다. email이 고유해야 한다는 규칙을 추가해보겠습니다:

ALTER TABLE students
ADD CONSTRAINT unique_email UNIQUE (email);

이제 두 학생이 같은 이메일 주소를 가질 수 없습니다. 각 학생에게 특별한 이메일 배지를 주는 것과 같아요!

6. 제약 조건 제거

만약 고유한 이메일 규칙이 더 이상 필요 없다고 결정했다면:

ALTER TABLE students
DROP CONSTRAINT unique_email;

그렇게 하면 제약 조건이 사라집니다. 학생들이 중복된 이메일 주소를 가질 수 있게 됩니다(하지만 실제로는 좋은 생각이 아닙니다!).

7. 테이블 이름 변경

마지막으로, 전체 테이블의 이름을 변경하고 싶다면 어떻게 하나요?

ALTER TABLE students
RENAME TO awesome_students;

이제 우리의 students 테이블은 awesome_students로 변경됩니다. 모든 학생이 위대하다는 것을 의미하죠?

모든 것을 통합해보자

샘플 테이블을 생성하고 여러 ALTER TABLE 명령어를 사용하여 변경해보겠습니다:

-- 간단한 테이블 생성
CREATE TABLE pets (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
species VARCHAR(50)
);

-- 새로운 열 추가
ALTER TABLE pets
ADD COLUMN age INTEGER;

-- 열 이름 변경
ALTER TABLE pets
RENAME COLUMN species TO animal_type;

-- 제약 조건 추가
ALTER TABLE pets
ADD CONSTRAINT unique_name UNIQUE (name);

-- 열 데이터 타입 변경
ALTER TABLE pets
ALTER COLUMN age TYPE SMALLINT;

-- 열 제거
ALTER TABLE pets
DROP COLUMN id;

-- 테이블 이름 변경
ALTER TABLE pets
RENAME TO furry_friends;

이제 우리는 테이블을 생성하고, 열을 추가하고 제거하며, 열 이름과 데이터 타입을 변경하고, 제약 조건을 추가하고 제거하며, 테이블 이름을 변경했습니다. ALTER TABLE의 힘을 느꼈나요!

결론

ALTER TABLE 명령어는 데이터베이스 테이블에 대한 스위스 아ーノ이Knife와 같은 존재입니다. 테이블 구조를 다양한 방식으로 변경할 수 있지만, 중요한 데이터를 잃지 않습니다. 그러나 강력한 권한이 따르는 책임감도 있습니다. 특히 프로덕션 환경에서 테이블을 변경할 때는 항상 주의하세요.

이 가이드가 ALTER TABLE 명령어를 이해하는 데 도움이 되길 바랍니다. 계속 연습하면 곧 프로처럼 테이블을 변경할 수 있을 것입니다! 질문이 있으면 언제든지 물어보세요. 행복한 코딩을 기원하며, 항상 완벽하게 구조화된 테이블을 가지시길 바랍니다!

Credits: Image by storyset