데이터 정의 언어로 객체(OBJECT)를 만들고(CREATE), 수정하고(ALTER), 삭제(DROP)하는 구문을 말함
테이블에 정의된 내용을 수정할 때 사용하는 데이터 정의어로 컬럼의 추가/삭제, 제약조건의 추가/삭제, 컬럼의 자료형 변경, DEFAULT 값 변경, 테이블 명/컬럼 명/제약조건 명 변경 등을 할 수 있음
데이터베이스 객체를 삭제하는 구문
ALTER의 경우 GUI 기능을 통해서도 변경이 가능하다.
변경할 테이블 선택-> 우클릭-> TABLE 수정 으로 가능하다.
→ ALTER 쿼리는 외우기 어렵기 때문에 급하면 UI 활용 권장
ALTER TABLE dept_copy ADD (cname VARCHAR(20));
ALTER TABLE dept_copy ADD (lname VARCHAR(40) DEFAULT ‘한국’);
ALTER TABLE dept_copy ADD CONSTRAINT dcopy_id_pk PRIMARY KEY(dept_id);
ALTER TABLE dept_copy ADD CONSTRAINT dcopy_title_uni UNIQUE(dept_title);
-- TYPE만 변경하는 경우는 MODIFY 활용
ALTER TABLE dept_copy MODIFY COLUMN dept_id VARCHAR(20) NOT NULL;
-- 이름까지 변경 할 때 CHANGE 활용
ALTER TABLE dept_copY CHANGE COLUMN lname lname2 VARCHAR(20) NOT NULL DEFAULT '미국';
ALTER TABLE dept_copy DROP COLUMN dept_id;
CREATE TABLE tb1(
pk INT PRIMARY KEY,
fk INT REFERENCES tb1,
col1 INT,
CHECK(pk > 0 AND col1 > 0)
);
ALTER TABLE tb1 DROP COLUMN pk;
-- * 컬럼 삭제 시 참조하고 있는 컬럼이 있다면 컬럼 삭제 불가능
SELECT * FROM information_schema.table_constraints;
-- 제약을 찾아서 제약부터 이전 지우고 삭제 진행!
ALTER TABLE tb1 DROP CONSTRAINT tb1_chk_1;
ALTER TABLE tb1 DROP COLUMN pk CASCADE CONSTRAINT;
ALTER TABLE dept_copy DROP CONSTRAINT dcopy_title_uni;
ALTER TABLE dept_copy DROP PRIMARY KEY;
ALTER TABLE dept_copy RENAME TO dept_test;
모든 객체(테이블이나 스키마, VIEW 등)등을 삭제 할 수 있는 구문
Rollback 되지 않고 바로 휘발됨으로 사용 주의 필요
DROP SCHEMA codeit;
DROP TABLE codeit.member;
DROP TABLE member, department, jobtable;
DROP TABLE IF EXISTS codeit.member;