DDL( Data Define Language )
■ 개념
□ 테이블(Table) , 뷰(View) , 스키마(Schema) , 도메인(Domain) ,
인덱스(index)를 정의하거나 변경 또는 제거할 때 사용하는 언어다.
□ DDL로 정의된 내용은 메타데이터(Metadata)가 되며 ,
시스템 카탈로그(System Catalog)에 저장된다.
☞ 메타데이터 : 다른 데이터를 설명해 주는 데이터.(속성정보)
■ 유형
명령문 | 기능 |
CREATE | 테이블,뷰,스키마,도메인,인덱스를 만든다. |
ALTER | 테이블을 수정한다. |
DROP | 테이블,뷰,스키마,도메인,인덱스를 제거한다. |
■ 도메인 ( CREATE DOMAIN )
□ 도메인은 데이터의 범위를 지정하는 데이터타입이다.
EX) 성별 [ 남,녀 ]
초등학교 학년 [ 1~6 ]
■ 스키마 ( CREATE SCHEMA )
□ 스키마는 테이블과 기타 구성요소 등을 그룹짓기 위한 것이다.
□ 소유권자 , 허가권자를 정의한다.
□ 표기 형식 : CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_ID
[예제]ID가 김민수인 사용자의 스키마 '회사'를 정의하는 SQL문
CREATE SCHEMA 회사 AUTHORIZATION 김민수;
■ 뷰 ( CREATE VIEW )
□ 테이블은 물리적으로 구현되어 실제로 데이터가 저장되지만
뷰는 물리적으로 구현되지 않는다.
□ 표기형식 : CREATE VIEW 뷰명[(속성명[,속성명,...])] AS SELECT문;
■ 인덱스 ( CREATE INDEX )
□ 검색을 빠르게 하기 위해 만든 데이터 구조다.
■ CREATE TABLE
□ 테이블을 만드는 명령문이다.
[예제] 요구사항에 맞는 테이블(practice)을 작성하세요.
<요구사항>
id(문자4) , name(문자 5) , sex(문자 1) , phone(문자 16)
id 속성은 기본키이다.
'sex' 속성은 'm' 또는 'f' 값만 갖도록 한다. (제약조건의 이름은 sex_ck)
12345678 CREATE TABLE practice( id VARCHAR(4) PRIMARY KEY,name VARCHAR(5) ,sex CHAR(1),phone VARCHAR(16),CONSTRAINT sex_ck CHECK (sex='m' or sex='f'),);cs
※ CHAR & VARCHAR 차이점
CHAR는 항상 지정된 크기만큼 기억장소가 확보되고,
VARCHAR는 기억 장소의 크기가 지정되도
필드에 저장된 데이터만큼만 기억장소가 확보된다.
■ ALTER TABLE
□ 테이블을 수정하는 명령문이다.
□ 표기형식
ALTER TABLE 테이블명 ADD 속성명 데이터타입 [DEFAULT '기본값'];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
ALTER TABLE 테이블명 DROP 속성명 [CASCADE];
- ADD : 새로운 속성을 추가한다.
- ALTER : 속성의 기본값(Default)을 변경한다.
- DROP : 속성을 제거한다.
[예제]<사원> 테이블에 최대 12문자로 구성되는 전화번호 속성을 추가하는 SQL문
ALTER TABLE 사원 ADD 전화번호 VARCHAR(12);
■ DROP TABLE
□ 테이블을 제거하는 명령문이다.
□ 표기형식 : DROP TABLE 테이블명 [ CASCADE | RESTRICT ]
- CASCADE(종속) : 연결된 개체까지 같이 제거한다.
- RESTRICT(제한) : 다른 개체가 제거할 개체를 참조하면 제거가 취소된다.
'DBMS' 카테고리의 다른 글
[SQL] DML(Data Manipulation Language) (0) | 2017.06.23 |
---|---|
[SQL] - SELECT문 (0) | 2017.06.22 |
위즈몰 (쇼핑몰 오픈소스) (0) | 2017.06.22 |
[SQL] 서브쿼리 문제 (0) | 2017.06.22 |
SQL 인젝션 (0) | 2017.06.21 |