[SQLD] DDL( 데이터 정의어 : Data Definition Language)
DDL( 데이터 정의어 : Data Definition Language) 이란?
- 물리적 DB 객체의 구조를 정의하는데 사용
- 가장 대표적으로 테이블을 생성하는 일
제약조건(Constraint)이란?
- 테이블에 입력되는 데이터가 사용자가 원하는 조건에 만족하는 데이터만 입력 될 수 있도록 하는 것
- 칼럼마다 설정한다.
제약조건 | 설명 |
기본키 (Primary Key) |
- 테이블의 고유한 식별자 - 하나의 테이블에 하나의 기본키만 정의할 수 있다. - 인덱스로 사용 - NULL 사용 불가능 - UNIQUE 와 NOT NULL 제약 조건을 만족해야한다. |
고유키 | - 고유한 식별자 - 기본키와 달리 NULL 사용 가능 - UNIQUE 제약 조건을 만족해야하지만 NOT NULL 은 해당되지 않는다. |
NOT NULL | - 해당 칼럼에는 NULL 입력 금지, 어떠한 값이라고 입력해야한다. |
CHECK | - 입력할수 있는 값의 종류 혹은 범위를 제한한다. |
외래키 (Foreign Key) |
- 다른 테이블의 기본키를 외래키로 지정해서 생성 - 참조 무결성 제약조건 이라고도 한다. |
기본값 (DEFAULT) |
- 해당 칼럼에 아무런 값도 입력하지 않다고 지정해둔 기본값으로 데이터가 입력된다. |
CREATE TABLE : 신규 테이블을 생성하는 SQL 문
<예시>
CREATE TABLE STUDY( - 테이블의 이름을 명시
ID INT NOT NULL, - 칼럼명과 데이터 속성,
NAME VARCHAR(45)
);
<주의사항>
- 테이블명은 다른 테이블과 중복되어서는 안된다.
- 한 테이블에 같은 컬럼명이 존재하면 안된다.
- 데이터의 속성(데이터형)은 꼭 지정해주어야 한다.
- 모든 이름(칼럼, 테이블)은 반드시 분자로 시작
- 테이블명에 사용하는 문자는 영문(대소문), 숫자, _(언더바), $(달러), #(샾) 문자만 해당된다.
ALTER TABLE : 칼럼 및 제약조건을 추가/수정/제거
<예시>
칼럼 추가 : ALTER TABLE STUDY ADD (CLASS VARCHAR(45));
(해당 테이블에 칼럼을 추가한다.)
칼럼 제거 : ALTER TABLE STUDY DROP COLUMN CLASS;
(해당 테이블에서 원하는 컬럼을 제거한다.)
칼럼 변경 : ALTER TABLE STUDY MODIFY (CLASS VARCHAR(30)
DEFAULT 0 NOT NULL
NOVALIDATE );
SUBJECT 칼럼의 속성을 변경하며 제약조건을 추가,
기본값(DEFAULT)으로 0 을 주었고 NULL이 허용되지 않는다. (NOT NULL)
NOVALIDATE 는 이미 해당 칼럼에 NULL로 데이타가 있어도 무시하고 이 다음부터 새로 추가되는 데이터만
NULL 을 불허한다.
칼럼명 변경 : ALTER TABLE STUDY RENAME CLASS TO SUBJECT;
외래키 생성 :
(다른 테이블은 STUDENT로 가정하고 기본키는 STUDENT_NUMBER로 가정)
ALTER TABLE STUDY ADD CONSTRAINT FK_SUBJECT - STUDY 테이블에 제약조건(Constraint)를 추가
FOREIGN KEY (ID) -STUDY 테이블의 기본키인 ID 를 외래키로 지정
REFERENCES STUDENT (STUDENT_NUMBER) -STUDENT 테이블의 STUDENT_NUMBER 칼럼을 참조
외래키 제거 :
ALTER TABLE STUDY DROP CONSTRAINT FK_SUBJECT;
DROP TABLE : 테이블 제거
DROP TABLE SCHOOL;
DROP TABLE STUDENT;
RENAME : 테이블명 변경
RENAME STUDY TO SCHOOL;
TRUNCATE : 테이블 내의 데이타 삭제
TRUNCATE TABLE SCHOOL;