Cohe
7-1. SQL 응용 - DDL 본문
728x90
반응형
1. 데이터 정의어(DDL; Data Definition Language)의 개념
- 테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어
- 특정 구조를 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조
2. DDL의 대상
1. 도메인 (Domain)
- 속성이 가질 수 있는 원자값들의 집합
- 데이터 타입, 크기, 제약조건 등의 정보 포함
2. 스키마 (Schema)
- 데이터베이스의 구조, 제약조건 등을 정의하는 기본 구조
- 외부/개념/내부 3계층으로 구성
- 외부 스키마: 사용자 관점의 논리적 구조
- 개념 스키마: 전체 데이터베이스의 논리적 구조, 관계, 제약조건 등 정의
- 내부 스키마: 물리적 저장 구조 정의 (sql 문)
3. 테이블 (Table)
- 데이터를 저장하는 기본 단위
- 구성 요소:
- 튜플(Tuple)/행(Row): 레코드를 나타냄
- 애트리뷰트(Attribute)/열(Column): 필드를 나타냄
- 기타 개념: 식별자, 카디널리티, 차수, 도메인
외우는 팁 : 카디널러티 - 튜플, 차수 - 열
4. 뷰 (View)
- 하나 이상의 테이블에서 유도된 가상 테이블
- 특징:
- 논리적 데이터 독립성 제공
- 데이터 조작 연산 간소화
- 보안 기능(접근 제어) 제공
- 장단점:
- 장점: 논리적 독립성, 데이터 관리 용이, 보안 강화
- 단점: 인덱스 불가, 정의 변경 불가, 데이터 변경 제약
5. 인덱스 (Index)
- 테이블의 검색 성능을 향상시키는 데이터 구조
- 특징:
- 기본 키(PK)에 자동 생성
- 빠른 데이터 검색 가능(인덱스 범위 스캔)
- 종류:
- 순서 인덱스, 해시 인덱스, 비트맵 인덱스
- 함수기반 인덱스, 단일 인덱스, 결합 인덱스
- 클러스터드 인덱스
3. DDL 명령어
- 생성 CREATE 데이터베이스 오브젝트 생성하는 명령어
- 수정 ALTER 데이터베이스 오브젝트 변경하는 명령어
- 삭제 DROP 데이터베이스 오브젝트 삭제하는 명령어
- 삭제 TRUNCATE 데이터베이스 오브젝트 내용 삭제하는 명령어
- truncate table 테이블이름A; : 내용만 삭제...
4. TABLE 관련 DDL
1. CREATE TABLE
- 테이블을 생성하는 명령어
- 기본 구조:
CREATE TABLE 테이블명 (컬럼명 데이터타입 [제약조건], ...);
- 주요 제약조건:
- PRIMARY KEY: 기본 키 설정
- FOREIGN KEY: 외래 키 설정
- UNIQUE: 유일한 값 설정
- NOT NULL: NULL 값 불허
- CHECK: 사용자 정의 제약조건
- DEFAULT: 기본값 설정
2. ALTER TABLE
- 테이블을 수정하는 명령어
- 컬럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 [제약조건];
- 컬럼 수정
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 [제약조건];
- 컬럼 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
3. DROP TABLE
- 테이블을 삭제하는 명령어
- 기본 구조:
DROP TABLE 테이블명 [CASCADE | RESTRICT];
- 옵션:
- CASCADE: 참조하는 테이블까지 연쇄적으로 삭제
- RESTRICT: 다른 테이블이 참조 중이면 삭제하지 않음
5. VIEW 관련 DDL
- CREATE VIEW
- CREATE VIEW는 뷰를 생성하는 명령이다.
- VIEW 테이블의 SELECT 문에는 UNION이나 ORDER BY 절을 사용할 수 없다.
- 컬럼명을 기술하지 않으면 SELECT 문의 컬럼명이 자동으로 사용된다.
CREATE VIEW 뷰이름 AS 조회쿼리;
- CREATE OR REPLACE VIEW
- CREATE OR REPLACE VIEW는 뷰를 교체하는 명령이다.
- OR REPLACE라는 키워드를 추가하는 것을 제외하고는 CREATE VIEW와 사용 방법이 동일하다.
CREATE OR REPLACE VIEW 뷰이름 AS 조회쿼리;
- DROP VIEW
- DROP VIEW는 뷰를 삭제하는 명령이다:
DROP VIEW 뷰이름;
6. INDEX 관련 DDL
- CREATE INDEX
- CREATE INDEX는 인덱스를 생성하는 명령이다.
- UNIQUE는 생략 가능하고, 인덱스 걸린 컬럼에 중복 값을 허용하지 않는다.
- 복수 컬럼을 인덱스로 걸 수 있다.
CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명 1, 컬럼명2, ...);
- ALTER INDEX
- ALTER INDEX는 인덱스를 수정하는 명령어이다.
- 일부 DBMS는 ALTER INDEX를 제공하지 않는다.
- 기존 인덱스를 삭제하고 신규 인덱스를 생성하는 방식으로 사용을 권고 한다.
ALTER [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명 1, 컬럼명2, ...);
- DROP INDEX
- DROP INDEX는 인덱스를 삭제하는 명령어이다.
DROP INDEX 인덱스명;
- DROP INDEX는 인덱스를 삭제하는 명령어이다.
728x90
반응형
'자격증 공부 > 정보처리기사 실기' 카테고리의 다른 글
7-1. SQL 응용 - DCL (1) | 2024.09.25 |
---|---|
7-1. SQL 응용 - DML (0) | 2024.09.24 |
7-1. SQL 응용 - 트랜잭션 (0) | 2024.09.24 |
6. 프로그래밍 언어 활용 - Python 편 (1) (0) | 2024.09.21 |
6. 프로그래밍 언어 활용 - JAVA 언어 편 (1) (0) | 2024.09.20 |