[MySQL] 테이블 수정

Main·2024년 9월 11일
0

MySQL

목록 보기
8/13
post-thumbnail

MySQL에서 ALTER TABLE 문을 사용하여 테이블을 수정합니다.


0. 예시 코드 테이블 생성 및 데이터 삽입

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    grade CHAR(1)
);

INSERT INTO students (name, grade)
VALUES 
('Alice', 'A'),
('Bob', 'B'),
('Charlie', 'C');
idnamegrade
1AliceA
2BobB
3CharlieC

1. 테이블에 열 추가하기

구문

ALTER TABLE 테이블명 ADD 열이름 데이터타입;

예시 코드

ALTER TABLE students ADD birthdate DATE;

students 테이블에 birthdate라는 이름의 DATE 형식의 열을 추가합니다.

idnamegradebirthdate
1AliceANULL
2BobBNULL
3CharlieCNULL

birthdate 열이 추가되었지만, 아직 데이터가 없으므로 값은 모두 NULL로 표시됩니다.


2. 테이블에서 열 삭제하기

구문

ALTER TABLE 테이블명 DROP COLUMN 열이름;

예시 코드

ALTER TABLE students DROP COLUMN birthdate;

students 테이블에서 birthdate 열을 삭제하는 명령입니다.

idnamegrade
1AliceA
2BobB
3CharlieC

birthdate 열이 삭제되고 원래의 테이블로 돌아갑니다.


3. 열 이름 또는 데이터 타입 변경하기

열의 이름을 변경하거나 데이터 타입을 수정할 수 있습니다.

구문

ALTER TABLE 테이블명 CHANGE COLUMN 기존열이름 새열이름 새데이터타입;

예시 코드

ALTER TABLE students CHANGE COLUMN grade student_grade VARCHAR(2)

grade 열의 이름을 student_grade로 변경하고, 데이터 타입을 VARCHAR(2)로 수정합니다.

테이블 구조 출력시 student_grade type이 VARCHAR(2) 로 변경된 것을 볼 수 있습니다.

DESC students;
FieldTypeNullKeyDefaultExtra
idintNOPRIauto_increment
namevarchar(50)YES
student_gradevarchar(2)YES

4. 열의 데이터 타입만 변경하기

열 이름은 그대로 유지하면서 데이터 타입만 변경하고 싶을 때는 MODIFY를 사용합니다.

구문

ALTER TABLE 테이블명 MODIFY COLUMN 열이름 새데이터타입;

예시 코드

ALTER TABLE students MODIFY COLUMN student_grade CHAR(2);

student_grade 열의 데이터 타입을 CHAR(2)로 변경합니다.

테이블 구조 출력시 student_grade type이 CHAR(2) 로 변경된 것을 볼 수 있습니다.

DESC students;
FieldTypeNullKeyDefaultExtra
idintNOPRIauto_increment
namevarchar(50)YES
student_gradechar(2)YES

5. 기존 열의 기본값 설정 또는 변경

기존 열에 기본값을 설정할 때는 ALTER TABLESET DEFAULT를 사용합니다.

구문

ALTER TABLE 테이블명 ALTER COLUMN 열이름 SET DEFAULT 기본값;

예시 코드

ALTER TABLE students ALTER COLUMN grade SET DEFAULT 'A';

grade 열의 기본값을 'A'로 설정합니다.

INSERT INTO students (name) VALUES ('David');
idnamestudent_grade
1AliceA
2BobB
3CharlieC
4DavidA

David 학생은 student_grade 값이 지정되지 않았으므로 기본값으로 'A'가 자동으로 삽입되었습니다.


6. 기존 열의 기본값 제거

기본값을 제거하고 싶다면 DROP DEFAULT를 사용합니다.

구문

ALTER TABLE 테이블명 ALTER COLUMN 열이름 DROP DEFAULT;

예시 코드

ALTER TABLE students ALTER COLUMN student_grade DROP DEFAULT;
INSERT INTO students (name) VALUES ('Eve');
idnamestudent_grade
1AliceA
2BobB
3CharlieC
4DavidA
5EveNULL

기본값이 제거되었기 때문에, Evestudent_grade 값이 NULL로 설정됩니다.


7. 테이블 이름 변경하기

구문

ALTER TABLE 기존테이블명 RENAME TO 새테이블명;

예시 코드

ALTER TABLE students RENAME TO learners;

아래 SELECT 문 실행 시 수정된 테이블명이 적용되었음을 알 수 있습니다.

SELECT * FROM students; -- table명 수정으로 존재 x

SELECT * FROM learners;
profile
함께 개선하는 프론트엔드 개발자

0개의 댓글