기본 문법
ALTER TABLE 테이블명;
ADD - 컬럼 추가
ALTER TABLE 테이블명
ADD COLUMN 컬럼명 타입 제약사항;
예제)
ALTER TABLE products
ADD COLUMN col5 INT NOT NULL DEFAULT 1 REFERENCES employees(EmployeeID);
맨 앞, 중간에도 컬럼 추가 가능
-- 맨 앞에 컬럼추가
ALTER TABLE 테이블명
ADD COLUMN 컬럼명 타입 제약사항 FIRST;
-- 중간에 컬럼추가
ALTER TABLE 테이블명
ADD COLUMN 컬럼명 타입 제약사항 AFTER 컬럼명(이 컬럼 뒤에 생성);
예제)
-- 맨 앞에 컬럼 추가
ALTER TABLE products
ADD COLUMN col4 VARCHAR(10) FIRST;
-- 중간에 컬럼 추가
ALTER TABLE products
ADD COLUMN col3 VARCHAR(10) AFTER ProductName;
MODIFY - 컬럼 수정 ※!신중하게 할 것!
ALTER TABLE 테이블명
MODIFY COLUMN 컬럼명 타입 제약사항;
예제)
ALTER TABLE products
MODIFY COLUMN col3 INT;
※ 컬럼을 변경 할 때 변경할 컬럼안에 레코드가 있다면 타입을 변경할 때 조심
※ 타입의 길이도 줄이는건 주의!! 늘리는 건 딱히 상관 없음
예제)
-- 만약 col3이 기존에 VARCHAR(10) 타입이고 문자열의 값이 있다면
-- 다른 타입으로 변경하면 안된다.
ALTER TABLE products
MODIFY COLUMN col3 INT;
-- 만약에 col3 기존에 VARCHAR(10) 타입이고 10글자의 문자열 값이 있다면
-- VARCHAR(5) 이런식으로 줄이면 안된다.
ALTER TABLE products
MODIFY COLUMN col3 VARCHAR(5);
DROP - 컬럼 삭제 ※!신중하게 할 것! (그냥 없는 코드라고 생각)
ALTER TABLE 테이블명
DROP COLUMN 삭제할 컬럼명;
제약사항만 추가, 제거
NULL - NULL 허용, 미허용
-- NULL 허용
ALTER TABLE 테이블명
MODIFY 컬럼명 타입 NULL ;
-- NULL 미허용
ALTER TABLE 테이블명
MODIFY 컬럼명 타입 NOT NULL ;
DEFAULT - 기본값 설정, 제거
--DEFAULT 값 추가
ALTER TABLE 테이블명
ALTER 컬럼명 SET DEFAULT 값;
--DEFAULT 제거
ALTER TABLE 테이블명
ALTER 컬럼명 DROP DEFAULT;
UNIQUE - 유일 키 추가, 제거
-- UNIQUE 추가
ALTER TABLE 테이블명
ADD UNIQUE (컬럼명);
-- UNIQUE 제거
ALTER TABLE 테이블명
DROP INDEX (UNIQUE INDEX명);
-- UNIQUE INDEX명 확인법
SHOW CREATE TABLE 테이블명; -- 테이블 생성 코드 확인
UNIQUE KEY `INDEX명`(컬럼명) -- INDEX명 확인 (컬럼명이랑 다를 수 있음)
PRIMARY KEY - PK값 추가, 제거
-- PRIMARY KEY 추가
ALTER TABLE 테이블명
ADD PRIMARY KEY (컬럼명);
-- PRIMARY KEY 제거
ALTER TABLE 테이블명
DROP PRIMARY KEY (컬럼명); -- NOT NULL이 남아있을 수 있으니 NOT NULL까지 제거
ALTER TABLE 테이블명
MODIFY 컬럼명 타입 NULL; -- NOT NULL -> NULL 허용으로 수정
FOREIGN KEY - 외래키 추가, 제거
-- FOREIGN KEY 추가
ALTER TABLE 테이블명;
ADD FOREIGN KEY (컬럼명) REFERENCES 참조할 테이블명(컬럼명);
-- FOREIGN KEY 제거(외래키명, 인덱스명 둘다 제거)
SHOW CREATE TABLE 제거할 테이블명; -- 테이블 생성코드 확인
CONSTRAINT 외래키명 -- 외래키명 확인
FOREIGN KEY(인덱스명) -- 인덱스명 확인
-- 외래키명 제거
ALTER TABLE 테이블명;
DROP FOREIGN KEY 외래키명;
-- 인덱스명 제거
ALTER TABLE 테이블명;
DROP INDEX 인덱스명;
반응형
'DataBase' 카테고리의 다른 글
[DATABASE] 데이터베이스 기초 개념 (0) | 2025.04.29 |
---|---|
트랜잭션(Transaction) (0) | 2023.10.20 |
집계함수, 집합함수, 그룹함수 - aggregate function (Maria DB) (0) | 2023.10.16 |
UNION(CROSS JOIN, FULL OUTER JOIN) (Maria DB) (0) | 2023.10.13 |
서브쿼리 (SubQuery) (Maria DB) (0) | 2023.10.13 |