DB

[MySQL] DDL, 데이터 정의어(Data Definition Language)

person456 2024. 4. 13. 15:03

 

DDL ( Data Definition Language )

- CREATE, DROP, ALTER, RENAME

- 데이터베이스 객체(Table)의 구조를 정의

- 테이블 생성, 수정, 삭제, 제약조건 지정, 타입 변경 등

 

 

 제약 사항

- 컬럼에 저장될 데이터의 조건을 설정하는 것

- 제약조건을 설정하면 이에 위반하는 데이터는 삽입 불가

- 테이블 생성시 직접 지정하거나 constraint로 지정, 혹은 alter로 지정

 

1. NOT NULL

- 컬럼에 NULL값을 지정할 수 없고 반드시 쿼리문을 이용하여 값을 지정

2. UNIQUE

- 컬럼에 중복된 값을 저장할 수 없음 NULL값은 허용

3. PRIMARY KEY

- 컬럼에 중복된 값을 저장할 수 없고, NULL도 허용하지 않음

- 주로 ROW를 구분하기 위한 유일한 값을 지정할때 사용하는 기본키

4. FOREIGN KEY

- 특정 테이블의 PK 컬럼에 저장된 값만 저장하며 참조키, 외래키가 불리며 NULL을 허용

- references를 이용하여 반드시 어느 테이블의 어느 컬럼을 가져오는지 명시

5. DEFAULT

6. CHECK

- 값의 종류나 범위를 지정

- c char(1) check ( c in ( 'M' ,'F' ) ) 이러면 m이나 f만 들어갈 수 있음

- b int check ( b >= 10 ) 이러면 10보다 큰 애만 들어갈 수 있음

제약 조건  설명  예시
Not Null 컬럼에 Null값을 지정할 수 없고
반드시 Query 문을 이용하여 값을 지정
user_id varchar(30) NOT NULL
Unique 컬럼에 중복된 값을 저장할 수 없음
Null값은 허용
user_id varchar(30) UNIQUE
constraint user_id_ukey UNIQUE(user_id)
Primary Key 컬럼에 중복된 값을 지정할 수 없고 Null도 불가
주로 Row를 구분하기 위한 유일값을 저장
user_id varchar(30) PRIMARY KEY
constraint user_id_pk
PRIMARY KEY(user_id)
Foreign Key 특정 테이블의 PK 컬럼에 저장된 값을 참조
참조키, 외래키라 불리며 Null을 허용
References를 이용해 어느 테이블의 어느 컬럼인지를 명시해야함
constraint user_id_fk FOREGIN KEY
(user_id) REFERENCES USER(user_id)
Deafult Null이 들어올 경우의 기본 설정값을 설정 regist_date timestamp default
current_timestamp
Check 값의 종류나 범위를 지정 age int check ( age>=1 )

 

 

1. CREATE

- 테이블을 생성할때 사용

- 기본적인 문법은

CREATE TABLE [테이블명] ( 

         컬럼 이름      컬럼 타입    제약 조건

         컬럼 이름2    컬럼 타입    제약 조건

)

 

2. Alter

- 테이블을 변경할떄 사용하는 DDL

기능 문법
컬럼 추가 alter table [테이블명] add column [컬럼명] [데이터타입] [제약조건];
컬럼 변경 alter table [테이블명] modify column [컬럼명] [데이터타입] [제약조건];
컬럼 이름 변경 alter table [테이블명] change column [이전 컬럼명] [변경 컬럼명] [데이터타입] [제약조건];
컬럼 삭제 alter table [테이블명] drop column [컬럼명];
테이블 이름 변경 alter table [이전 테이블명] rename [변경 테이블명]