SQL - DDL
◆DDL (Data Define Language, 데이터 정의어)
- DDL은 DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어입니다.
- 번역한 결과가 데이터 사전(Data Dictionary)이라는 특별한 파일에 여러 개의 테이블로 저장됩니다.
- DDL 유형
- CREATE : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의함
- ALTER : TABLE에 대한 정의를 변경하는 데 사용함
- DROP : SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제함
*ISO/IEC 9075 : ISO/IEC 9075는 국제 표준화 기구(ISO)와 미국 표준 협회(ANS)의 관계 데이터베이스 시스템에 대한 SQL문법을 통합하고 개정한 것으로, SQL에 대한 국제 표준으로 널리 활용되고 있습니다.
◇CREATE ~
▶CREATE SCHEMA는 스키마를 정의하는 명령문입니다.
CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;
[예제] 소유권자의 사용자 ID가 '홍길동'인 스키마 '대학교'를 정의하는 SQL문은 다음과 같다.
CREATE SCHEMA 대학교 AUTHORIZATION 홍길동;
*스키마(SCHEMA) : 스키마는 데이터 베이스의 구조와 제약 조건에 관한 전반적인 명세(Specification)를 기술한 것으로 데이터 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의합니다.
▶CREATE DOMAIN은 도메인을 정의하는 명령문입니다.
CREATE DOMAIN 도메인명 [AS] 데이터_타입
[DEFAULT 기본값]
[ CONSTRANINT 제약조건명 CHECK (범위값)];
*데이터 타입 : SQL에서 지원하는 데이터 타입
*기본값 : 데이터를 입력하지 않았을 때 자동으로 입력되는 값
[예제] '성별'을 '남' 또는 '여'와 같이 정해진 1개의 문자로 표현되는 도메인 SEX를 정의하는 SQL문은 다음과 같다.
CREATE DOMAIN SEX CHAR(1)
DEFAULT '남'
CONSTRAINT VALID-SEX CHECK(VALUE IN ('남', '여'));
[풀이] 정의된 도메인은 이름이 'SEX'이며, 문자형이고 크기는 1자이다.
도메인 SEX를 지정한 속성의 기본값은 '남'이다.
SEX를 지정한 속성에는 '남', '여' 중 하나의 값 만을 저장할 수 있다.
*도메인(DOMAIN) : 도메인이랑 하나의 속성이 취할 수 있는 동일한 유형의 원자값들의 집합을 의미합니다.
▶CREATE TABLE은 테이블을 정의하는 명령문입니다.
CREATE TABLE 테이블명
(속성명 데이터_타입 [DEFAULT 기본값] [NOT NULL], ...
[, PRIMARY KEY(기본키_속성명,...)]
[, UNIQUE (대체키_속성명,...)]
[, FOREIGN KEY (외래키_속성명,...)]
REFERENCES 참조테이블(기본키_속성명,...)]
[ ON DELETE 옵션]
[ ON UPDATE 옵션]
[, CONSTRAINT 제약조건명] [CHECK (조건식)]);
▶CREATE VIEW는 뷰를 정의하는 명령문입니다.
CREATE VIEW 뷰명[(속성명[, 속성명,...])]
AS SELECT문;
▶CREATE INDEX는 인덱스를 정의하는 명령문입니다.
CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명 (속성명 [ASC/DESC] [, 속성명 [ASC/DESC]])
[CLUSTER];
*인덱스(INDEX)는 검색 시간을 단축하기 위해 만든 보조적인 데이터 구조입니다.
◇ ALTER TABLE
ALTER TABLE은 테이블에 대한 정의를 변경하는 명령문입니다.
ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT '기본값'];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];
◇ DROP
DROP은 스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거하는 명령문입니다.
함께 쓰는 CASCADE, RESTRICT의 의미를 기억해야 합니다.
- CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거합니다.
- RESTRICT : 다른 개체가 제거할 요소를 참조중일 경우 제거를 취소합니다.
*SQL에서 [AS]처럼 대괄호로 묶은 명령어들은 생략이 가능하다는 의미입니다.
*UNIQUE가 사용된 경우는 중복 값이 없는 속성으로 테이블이나 인덱스 등을 생성합니다.
'공부 및 교육 > 정보처리기사 실기 이론' 카테고리의 다른 글
트리거(TRIGGER)- 트리거의 구성도, 트리거 표기형식, 트리거 삭제 (0) | 2023.02.26 |
---|---|
프로시저(Procedure)- 프로시저 생성, 프로시저 구성도, 프로시저 삭제 (0) | 2023.02.26 |
8장 SQL 응용 - 1. SQL : DDL (0) | 2022.08.09 |
10장 프로그래밍 언어 활용 - 1. 데이터 입출력(C언어, Java, 헝가리안 표기법) (0) | 2022.07.28 |
[정보처리기사 실기] 정보처리기사 실기 시험 답안 작성 팁 (0) | 2022.07.25 |
댓글