8장 SQL 응용 - 1. SQL : DDL
8장. SQL 응용
1. SQL : DDL
◆ DDL(Data Define Language, 데이터 정의어)
- DDL은 DB구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어입니다.
- 번역한 결과가 데이터 사전(Data Dictionary)이라는 특별한 파일에 여러 개의 테이블로 저장됩니다.
- DDL의 3가지 유형
명령어 | 기능 |
CREATE | SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의함 |
ALTER | TABLE에 대한 정의를 변경하는 데 사용함 |
DROP | SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 삭제함 |
2. CREATE SCHEMA
CREATE SCHEMA는 스키마를 정의하는 명령문입니다.
*표기 형식
CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;
[예제] 소유권자의 사용자 ID가 '홍길동'인 스키마 '대학교'를 정의하는 SQL문을 적으시오.
[답] CREATE SCHEMA 대학교 AUTHORIZATION 홍길동;
3. CREATE DOMAIN
CREATE DOMAIN은 도메인을 정의하는 명령문입니다.
*표기 형식
CREATE DOMAIN 도메인명[AS] 데이터_타입
[DEFAULT 기본값]
[CONSTRAINT 제약조건명 CHECK (범위값)];
- 데이터 타입 :SQL에서 지원하는 데이터 타입
- 기본값: 데이터를 입력하지 않았을 때 자동으로 입력되는 값
[예제] '성별'을 '남' 또는 '여'와 같이 정해진 1개의 문자로 표현되는 도메인 SEX를 정의하는 SQL문은 다음과 같다.
[답] CREATE DOMAIN SEX CHAR(1) : 정의된 도메인 이름은 'SEX'이며, 문자형이고 글자수는 1자이다.
DEFAULT '남' : 도메인 SEX를 지정한 속성의 기본값은 '남'이다.
CONSTRAINT VALID-SEX CHECK(VALUE IN ('남', '여')); : SEX를 지정한 속성에는 '남','여' 중 하나의 값만을 저장할 수 있다.
4. CREATE TABLE
CREATE TABLE은 테이블을 정의하는 명령문입니다.
*표기 형식
CREATE TABLE 테이블명
(속성명 데이터_타입[DEFAULT 기본값] [NOT NULL], …
[, PRIMARY KEY(기본키_속성명, …)]
[, FOREIGN KEY(외래키_속성명, …)]
REFERENCES 참조테이블(기본키_속성명, …)]
[ON DELETE 옵션]
[ON UPDATE 옵션]
[, CONSTRAINT 제약조건명] [CHECK (조건식)]);
- 기본 테이블에 포함될 모든 속성에 대하여 속성명과 그 속성의 데이터 타입, 기본값, NOT NULL 여부를 지정한다.
- PRIMARY KEY : 기본키로 사용할 속성을 지정함.
- UNIQUE : 대체키로 사용할 속성을 지정함, 중복된 값을 가질 수 없음.
- FOREIGN KEY ~ REFERENCES ~ : 외래키로 사용할 속성을 지정함
ON DELETE 옵션 : 참조 테이블의 튜플이 삭제되었을 때 기본 테이블에 취해야 할 사항을 지정함ON UPDATE 옵션 : 참조 테이블의 참조 속성 값이 변경되었을 때 기본 테이블에 취해야 할 사항을 지정함- CONSTRAINT : 제약 조건의 이름을 지정함- CHECK : 속성 값에 대한 제약 조건을 정의함
5. CREATE VIEW
CREATE VIEW는 뷰(View)를 정의하는 명령문입니다.
*표기 형식
CREATE VIEW 뷰명[((속성명[, 속성명, …])]
AS SELECT문;
[예제] <고객> 테이블에서 '주소'가 '안산시'인 고객들의 '성명'과 '전화번호'를 '안산고객'이라는 뷰로 정의하시오.
[답]
CREATE VIEW 안산고객(성명, 전화번호)
AS SELECT 성명, 전화전호
FROM 고객
WHERE 주소 = '안산시'
6. CREATE INDEX
CREATE INDEX는 인덱스를 정의하는 명령문입니다.
*표기 형식
CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명(속성명 [ASC|DESC] [속성명 [ASC|DEXS]])
[CLUSTER];
- UNIQUE
사용된경우 : 중복 값이 없는 속성으로 인덱스를 생성한다.
생략돈 경우 : 중복 값을 허용하는 속성으로 인덱스를 생성한다.
- 정렬 여부 지정 : ASC - 오름차순 정렬 / DESC - 내림차순 정렬 / 생략된 경우 - 오름차순으로 정렬됨
- CLUSTER : 사용하면 인덱스가 클러스터드 인덱스로 설정됨
[예제] <고객> 테이블에서 UNIQUE한 특성을 갖는 '고객번호' 속성에 대해 내림차순으로 정렬하여 '고객번호_idx'라는 이름으로 인덱스를 정의하시오.
[답]
CREATE UNIQUE INDEX 고객번호_idx
ON 고객(고객번호 DESC)
7. ALTER TABLE
ALTER TABLE은 테이블에 대한 정의를 변경하는 명령문입니다.
*표기 형식
ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT '기본값'];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];
- ADD : 새로운 속성(열)을 추가할 때 사용한다.
- ALTER : 특정 속성의 Default 값을 변경할 때 사용한다.
- DROP COLUMN : 특정 속성을 삭제할 때 사용한다.
[예제] <학생> 테이블에 최대 3문자로 구성되는 '학년' 속성을 추가하시오.
[답] ALTER TABLE 학생 ADD 학년 VARCHAR(3);
[예제] <학생> 테이블의 '학번' 필드의 데이터 타입과 크기를 VARCHAR(10)으로 하고 NULL 값이 입력되지 않도록 변경하시오.
[답] ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL;
8. DROP
DROP은 스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거하는 명령문입니다.
*표기 형식
DROP SCHEMA 스키마명 [CASCADE|RESTRICT];
DROP DOMAIN 도메인명 [CASCADE|RESTRICT];
DROP TABLE 테이블명 [CASCADE|RESTRICT];
DROP VIEW 뷰명 [CASCADE|RESTRICT];
DROP INDEX 인덱스명 [CASCADE|RESTRICT];
DROP CONSTRAINT 제약조건명;
- CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거한다.
- RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소한다.
[예제] <학생>테이블을 제거하되, <학생> 테이블을 참조하는 모든 데이터를 함께 제거하시오.
[답] DROP TABLE 학생 CASCADE;
정보처리기사 실기 시험 전 꼭 봐야할 꿀팁 알고가세요.
'공부 및 교육 > 정보처리기사 실기 이론' 카테고리의 다른 글
트리거(TRIGGER)- 트리거의 구성도, 트리거 표기형식, 트리거 삭제 (0) | 2023.02.26 |
---|---|
프로시저(Procedure)- 프로시저 생성, 프로시저 구성도, 프로시저 삭제 (0) | 2023.02.26 |
SQL - DDL (0) | 2023.02.25 |
10장 프로그래밍 언어 활용 - 1. 데이터 입출력(C언어, Java, 헝가리안 표기법) (0) | 2022.07.28 |
[정보처리기사 실기] 정보처리기사 실기 시험 답안 작성 팁 (0) | 2022.07.25 |
댓글