MySQL에서 새로운 컬럼을 추가 및 삭제하는 것부터,
기존의 컬럼의 제약조건/컬럼명/데이터 타입을 수정하는 SQL을 정리해봤습니다.
컬럼 추가 & 삭제
추가
ALTER TABLE <table_name>
ADD COLUMN <column_name> <data_type>;
위의 sql은 기본적 데이터 타입만 추가한 컬럼이지만, 그 외에도 제약조건이나 컬럼의 위치를 변경하는것도 가능하다.
ALTER TABLE users
ADD COLUMN email VARCHAR(50) UNIQUE AFTER name;
위와같이, users 테이블에 email 컬럼을 추가하는데 데이터타입은 VARCHAR(50)
이고, UNIQUE
제약조건을 가지며 name 컬럼 뒤에 위치시킨다.
삭제
ALTER TABLE <table_name>
DROP COLUMN <column_name>;
제약조건 수정
기본키 추가
ALTER TABLE <table_name>
ADD PRIMARY KEY (<column_name>);
기본키 삭제
ALTER TABLE <table_name>
DROP PRIMARY KEY;
외래키 추가
ALTER TABLE <table_name1>
ADD CONSTRAINT <constraint_name>
FOREIGN KEY (<column_name1>) REFERENCES <table_name2>(<column_name2>);
<table_name1>
과 <column_name1>
은 자식 테이블 이름과 컬럼명이고,<table_name2>
과 <column_name2>
은 부모 테이블 이름과 컬럼명입니다.
외래키 삭제
ALTER TABLE <table_name>
DROP CONSTRAINT <constraint_name>;
컬럼명
방법1
ALTER TABLE <table_name>
CHANGE <old_column_name> <new_column_name> <data_type>;
<data type>
을 적어줘야한다. 컬럼명만 변경하고 싶은 경우에는 기존의 데이터 타입을 그대로 적으면 된다.
방법2
ALTER TABLE <table_name>
RENAME COLUMN <old_column_name> TO <new_column_name>;
방법1과 다르게 데이터 타입을 적지 않고 컬럼명만 적으면 되기 때문에 방법2를 선호
데이터 타입
방법1
ALTER TABLE <table_name>
CHANGE <column_name> <column_name> <data_type>;
컬럼명을 수정할 때 사용했었던 CHANGE 를 통해서 데이터 타입을 바꾸는 것이 가능하다.
컬럼명을 수정하는게 아니라, 데이터 타입만을 변경하는 것이기 때문에 대상의 컬럼명을 2번을 적어줘야할 필요성이 있다.
이 과정에서 오타가 날 가능성이 높기 때문에 사용하지 않는편이 좋다.
방법2
ALTER TABLE <table_name>
MODIFY COLUMN <column_name> <data_type>;
CHANGE 구문을 사용하면, 컬럼명과 데이터타입을 변경할 수 있기 때문에 한가지의 명령어만 알고 있으면 두개다 처리할 수 있는 장점은 있지만 한가지의 SQL이 너무 많은 역할을 하고 있기 때문에 복잡성과 불명확성이 높아질 수 있다.
'IT 공부 > DB' 카테고리의 다른 글
[DB] 집계함수와 그룹핑(GROUP BY, HAVING) (0) | 2024.07.02 |
---|---|
[DB] 데이터 베이스 정규화 (제 1 정규화, 제 2정규화, 제 3정규화) (0) | 2024.07.01 |
[ DB ] LIKE 조건에 서브쿼리와 조인을 이용하는 방법 (0) | 2022.12.11 |
[ MySQL ] Auto_increment 초기화 && 기존 데이터 ID값 초기화 (0) | 2022.04.03 |
[DB] 객체 - 데이터 사전, 인덱스, 뷰, 시퀀스, 동의어 (0) | 2021.12.02 |