생성하려는 스키마의 명칭을 정의한다.
Format
CREATE {SCHEMA|DATABASE} 스키마명;
Example
CREATE SCHEMA UNIVERSITY;
생성한 스키마를 제거한다.
Format
DROP {SCHEMA|DATABASE} 스키마명;
Example
DROP SCHEMA UNIVERSITY;
테이블의 구조와 제약조건을 명세한다.
– NOT NULL: NULL 값을 허용하지 않는다.
– UNIQUE [KEY]: 고유한 값을 갖거나, NULL 값도 허용한다.
– PRIMARY KEY: UNIQUE ^(&) NOT NULL 제약조건
– FOREIGN KEY: 부모 테이블의 PK 값 v(or) NULL 값을 가진다.
– CHECK: 입력/수정 가능한 값의 범위를 제한하는 논리식을 서술한다.
생성된 테이블의 구조를 확인하려면 DESCRIBE를 사용한다.
DESCRIBE PLAYER;
기본 제약조건 중 NOT NULL만 적용되고, 나머지 제약 조건은 없어진다.
CREATE TABLE TEAM_TEMP [AS] SELECT * FROM TEAM; DESCRIBE TEAM_TEMP;
테이블 자체를 다 삭제한다.
Format
DROP TABLE 테이블명 [RESTRICT|CASCADE];
RESTRICT가 디폴트 옵션이다.
Example
DROP TABLE 과목 RESTRICT;
⭐ 여기서 과목 테이블 삭제를 시도하면 삭제가 거부된다.
-> 삭제할 테이블의 튜플을 참조하는 튜플이 자식 테이블에 하나라도 존재하면 거부하기 때문이다.
DROP TABLE 과목 CASCADE;
그래서 CASCADE는 같은 경우에 자식 테이블의 참조하는 튜플들도 모두 제거해버린다.
컬럼의 추가/삭제/수정이나 제약조건의 추가/삭제가 가능하다.
Format
ALTER TABLE 테이블명
ADD [COLUMN] 컬럼명 데이터타입 [NOT NULL] [DEFAULT 묵시값]
[FIRST|AFTER 컬럼명];
FIRST/AFTER 절로 어느 위치에 넣을지 결정한다.
FIRST/AFTER 절이 없으면, 디폴트는 'AFTER 마지막 컬럼명' 이다.
Example
ALTER TABLE PLAYER
ADD ADDRESS VARCHAR(80);
맨 마지막 컬럼에 ADDRESS가 추가됐다.
Format
ALTER TABLE 테이블명
DROP [COLUMN] 컬럼명;
Example
ALTER TABLE PLAYER
DROP COLUMN ADDRESS;
마지막 컬럼이었던 ADDRESS 컬럼이 삭제된걸 볼 수 있다.
기존 데이터가 있는 경우를 고려해야한다.
Format
ALTER TABLE 테이블명
MODIFY [COLUMN] {컬럼명 데이터타입 [NOT NULL] [DEFAULT 값],}⁺;
Example
ALTER TABLE TEAM
MODIFY ORIG_YYYY CHAR(8) NOT NULL DEFAULT '2002';
< 제약 조건 >
– 해당 칼럼의 크기를 늘릴 수는 있지만 줄이지는 못한다. -> 기존 데이터가 훼손될 수 있기 때문이다.
– 해당 칼럼이 NULL 값만 가지고 있거나 테이블에 아무 행도 없으면 칼럼의 크기를 줄일 수 있다.
– 해당 칼럼이 NULL 값만 가지고 있으면, 데이터 타입을 변경할 수 있다.
– 해당 칼럼의 DEFAULT 값을 바꾸면, 변경 이후 발생하는 행 삽입에만 영향을 미친다.
– 해당 칼럼에 NULL 값이 없을 경우에만, NOT NULL 제약조건을
추가할 수 있다.
Format
ALTER TABLE 테이블명
RENAME COLUMN 컬럼명 TO 컬럼명;
Example
ALTER TABLE PLAYER
RENAME COLUMN E_PLAYER_NAME TO ENGLISH_PLAYER_NAME;
Format
ALTER TABLE 테이블명
ADD CONSTRAINT 조건명 제약조건;
Example
ALTER TABLE PLAYER
ADD CONSTRAINT FK_PLAYER_TEAM
FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID);
위 예시는 테이블에 새로운 필드를 추가할 때 해당 필드를 외래 키로 설정한다.
PLAYER 테이블의 TEAM_ID 필드에 TEAM 테이블의 TEAM_ID 필드를 참조하는 FOREIGN KEY 제약 조건을 설정한다.
PK/FK/CHECK 를 삭제한다.
Format
ALTER TABLE 테이블명
[DROP PRIMARY KEY],
[DROP FOREIGN KEY 조건명],
[DROP CHECK 조건명];
Example
ALTER TABLE PLAYER
DROP FOREIGN KEY FK_PLAYER_TEAM;
Format
RENAME TABLE 테이블명 TO 테이블명;
Example
RENAME TABLE TEAM TO TEAM_BACKUP;
Format
TRUNCATE TABLE 테이블명;
자식 테이블이 있으면, 실행이 거부된다.