정보처리산업기사_실기_기록용

[데이터베이스] SQL - DDL

칼퇴하는 한개발 2021. 9. 24. 13:18
반응형

[출처] 2020 시나공 기본서 정보처리산업기사 실기

더보기

SQL이란?

SQL(Structured Query Language)은 표준 관계형 데이터베이스 언어이며 관계대수와 관계해석을 기초로 한 혼합 데이터 언어입니다. 사용 용도에 따라 DDL, DML, DCL로 구분됩니다.


1. DDL(Data Definition Language)

  • DDL은 스키마, 도메인, 테이블, 뷰, 인덱스를 정의하거나 변경 또는 제거할 때 사용하는 언어
  • DDL로 정의된 내용은 메타데이터가 되며, 시스템 카탈로그에 저장됨
  • DDL의 유형
    명령문 기능
    CREATE 스키마, 도메인, 테이블, 뷰, 인덱스를 정의한다
    ALTER 테이블에 대한 정의를 변경한다
    DROP 스키마, 도메인, 테이블, 뷰, 트리거, 인덱스를 제거한다


2. CREATE SCHEMA

  • 스키마를 정의하는 명령문
  • 스키마의 식별을 위한 스키마 이름과 소유권자나 허가권자를 정의
  • 표기형식 : CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_ID;


3. CREATE DOMAIN

  • 도메인을 정의하는 명령문
  • 하나의 속성이 취할 수 있는 동일한 타입의 원자값들의 집합
  • 표기형식 : [] 부분은 생략 가능
    CREATE DOMAIN 도메인명 데이터_타입
      [DEFUALT 기본값]
      [CONSTRAINT 제약조건명 CHECK (범위 값)];


가장중요!! 자주 출제
4. CREATE TABLE

  • 테이블을 정의하는 명령문
  • 표기형식 : 굵은 글씨 아닌 거 생략 가능
    CREATE TABLE 학생
    (이름 VARCHAR(15) NOT NULL,
     학번 CHAR(8),
     전공 CHAR(5),
     성별 GENDER,
     생년월일 DATE,
     PRIMARY KEY(학번)
     FOREIGN KEY(전공) REFERENCES 학과(학과코드)
       ON DELETE SET NULL
       ON UPDATE CASCADE,
     CONSTRAINT 생년월일제약
       CHECK(생년월일 >= '1980-01-01'));

5. CREATE VIEW

  • 뷰는 하나 이상의 기본 테이블로부터 유도되는 이름을 갖는 가상테이블
  • 표기형식
    CREATE VIEW 뷰명[(속성명[, 속성명, ])]
    AS SELECT문;
  • SELECT문을 서브쿼리로 사용하여 SELECT 문을 결과로서 뷰를 생성
  • 서브쿼리 SELECT 문에서는 UNION이나 ORDER BY 절을 사용할 수 없음
  • 속성명을 기술하지 않으면 SELECT 문의 속성명이 자동으로 사용됨


6. ALTER TABLE

  • 테이블에 대한 정의를 변경 명령문
  • 표기형식
    ALTER TABLE 테이블명 ADD 속성명 데이터_타입[DEFAULT '기본값']; 새로운 속성 추가
    ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값']; 속성의 기본값을 변경
    ALTER TABLE 테이블명 DROP CLUMN 속성명 [CASCADE]; 속성을 제거


7. DROP

  • 스키마, 도메인, 테이블, 뷰, 인덱스, 트리거를 제거하는 명령문
  • 표기형식
    DROP SCHEMA 스키마명 [CASCADE | RESTRICT];
    DROP DOMAIN 도메인명 [CASCADE | RESTRICT];
    DROP TABLE 테이블명 [CASCADE | RESTRICT];
    DROP VIEW 뷰명 [CASCADE | RESTRICT];
    DROP INDEX 인덱스명 [CASCADE | RESTRICT];
    ...
    
    스키마를 제거
    도메인을 제거
    테이블을 제거
    뷰를 제거
    인덱스를 제거
    ...
  • CASCADE : 제거할 개체를 참조하는 다른 모든 개체를 함께 제거함. 즉, 주 테이블의 데이터 제거 시 각각의 외래키와 관게를 맺고 있는 모든 데이터를 함께 제거하는 참조 무결성 제약 조건을 설정하기 위해 사용됨
  • RESTRICT : 다른 개체가 제거할 개체를 참조 중일 경우 제거가 취소됨
반응형