데이터 정의어(DDL: data definition language)
☾ 데이터 정의어
테이블이나 관계의 구조를 생성하는 데 사용
CREATE, ALTER DROP문 등
CREATE
테이블 생성
속성과 속성에 관한 제약 정의
기본키 및 외래키 정의
CREATE TABLE 테이블이름 (
속성이름 데이터타입 [NULL | NOT NULL | UNIQUE | DEFAULT 기본값 | CHECK 체크조건]
[PRIMARY KEY 속성이름]
[FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름) [ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}]]
);
- AUTO_INCREMENT : 데이터가 삽입될 때 고유번호가 자동으로 생성됨(기본적으로 매 데이터마다 1씩 증가)
CREATE TABLE Constructors (
id bigint AUTO_INCREMENT
);
- NOT NULL : NULL 값을 가질 수 없음
CREATE TABLE Constructors (
engine VARCHAR(50) NOT NULL
);
- UNIQUE : 같은 값이 존재할 수 없음
CREATE TABLE Constructors (
engine VARCHAR(50) UNIQUE
);
- DEFAULT : 기본값 지정
CREATE TABLE Constructors (
engine VARCHAR(50) DEFAULT 10000
);
- CHECK
CREATE TABLE Constructors (
engine VARCHAR(50) CHECK(engine >= 1000)
);
- PRIMARY KEY : 기본키를 정할 때 사용
기본키는 NOT NULL 속성만 가능하다.
CREATE TABLE Constructors (
constructor VARCHAR(50) PRIMARY KEY
);
다음과 같이 작성할 수 있다.
CREATE TABLE Constructors (
constructor VARCHAR(50),
PRIMARY KEY constructor
);
두 개 이상의 속성이 기본키가 된다면 괄호를 사용하여 복합키를 지정할 수 있다.
CREATE TABLE Results (
race VARCHAR(50),
driver VARCHAR(50),
race_rank VARCHAR(50),
PRIMARY KEY (race, driver)
);
- FOREIGN KEY : 외래키를 지정할 때 사용
- ON DELETE NO ACTION : 투플을 삭제하지 못하게 함
- ON DELETE CASCADE : 관련 투플을 함께 삭제함
- ON DELETE SET NULL : 관련 투플의 외래키 값을 NULL로 변경함
- ON DELETE SET DEFAULT : 관련 투플의 외래키 값을 미리 지정한 기본 값으로 변경함
외래키 제약조건을 명시할 때는 반드시 참조되는 테이블(부모 릴레이션)이 존재해야 하며 참조되는 테이블의 기본키여야 함
CREATE TABLE Results (
race VARCHAR(50),
driver VARCHAR(50),
race_rank VARCHAR(50),
PRIMARY KEY (race, driver),
FOREIGN KEY (race) REFERENCES Races(name) ON DELETE NO ACTION,
FOREIGN KEY (driver) REFERENCES Drivers(name) ON DELETE NO ACTION
);
ALTER
생성된 테이블의 속성, 속성에 관한 제약, 기본키, 외래키를 변경
ALTER TABLE 테이블이름 [ADD 속성이름 데이터타입]
[DROP 속성이름 데이터타입]
[MODIFY 속성이름 데이터타입];
- ADD : 속성 추가
ALTER TABLE Results ADD name VARCHAR(50);
- DROP : 속성 제거
ALTER TABLE Results DROP COLUMN name;
- MODIFY : 속성의 기본값을 설정하거나 삭제
ALTER TABLE Results MODIFY race VARCHAR(50) NOT NULL;
DROP
테이블 삭제
테이블의 구조와 데이터 모두 삭제
삭제하려는 테이블의 기본키를 다른 테이블에서 참조하고 있다면 삭제가 거절됨
DROP TABLE 테이블이름;
DROP TABLE Results;
'Lecture' 카테고리의 다른 글
[네트워크] Chap 2 - Protocol Architecture, TCP/IP, and Internet-based Applications (0) | 2024.07.26 |
---|---|
[네트워크] Chap 1 - Data Communications, Data Networking, and the Internet (0) | 2024.06.28 |
[데이터베이스] SQL 질의 - 조인(JOIN), 부속질의(Subquery), 집합 연산 (0) | 2024.05.30 |
[데이터베이스] 데이터 조작어(DML) - INSERT, UPDATE, DELETE, SELECT (0) | 2024.04.29 |
[데이터베이스] SQL 개요, 데이터베이스 명령어 - CREATE, SHOW, USE, DROP (0) | 2024.04.29 |