Part 8. SQL ( 고급 SQL )

정보처리기사 실기 Part 8. SQL (고급 SQL)


Section 1. 인덱스 (INDEX)

1.인덱스

  • " 원하는 데이터를 빠르게 식별하기 위해서 컬럼값과 레코드의 논리적인 주소를 별도의 저장구조로 저장하는 것 "
  • 인덱스 파일은 키 값과 주소로 구성
  • 기본키 속성 인덱스 - 기본 인덱스 , 일반 속성 인덱스 - 보조 인덱스
  • 여러 개의 속성으로 결합하여 인덱스 구성 가능
CREATE [UNIQUE] INDEX 인덱스이름 
ON 테이블이름 (속성이름 [ASC | DESC])
[CLUSTER]

ALTER [UNIQUE] INDEX 인덱스 이름
ON 테이블이름(속성이름 [ASC | DESC]);

DROP INDEX 인덱스이름;



2. 인덱스 구조

  • B -트리, B + 트리



3. B - 트리

  • " 검색의 효율을 높이기 위해 자료의 구조를 균형 있는 트리 구조로 나타내는 방법 "



4. B + 트리

  • " B 트리의 변형으로 인덱스 세트와 순차 세트로 구성된 것 "
  • 인덱스 세트는 단말 노드를 찾기 위한 인덱스 제공, 순차 세트는 단말 노드로만 구성 됨
  • 순차 세트 단말 노드에는 모든 키 값이 다시 나타나고 중복이 가능함



5. 인덱스 기타 유형

  • 클러스터드 인덱스 - 테이블의 물리적 순서와 인덱스 순서가 동일, 하나만 생성 가능
  • 넌클러스터드 인덱스 - 물리적 테이블을 재구성하지 않고 인덱스 순서만 정렬



6. 인덱스 스캔 방식

  • 속성값의 유일성 - unique / nonunique
  • 속성의 수 - 단일 인덱스 / 결합 인덱스



Section 2. 뷰(VIEW)와 시스템 카탈로그

1. 뷰 (VIEW)

  • " 실제 존재하는 테이블에서 사용자가 원하는 제한된 데이터를 추출하여 만들어진 가상 테이블
CREATE VIEW 뷰이름 [(속성이름)]
AS SELECT 실제테이블의속성이름
FROM 실제테이블이름
[WHERE 조건]
[WITH CHECK OPTION]; # 뷰에 대한 데이터 조작 연산시 WHERE 조건에 맞지 않으면 실행 X

CREATE VIEW 3학년연락처(학번, 이름, 전화번호)
AS SELECT 학번, 성명, 연락처
FROM 학생
WHERE 학년 = 3;

DROP VIEW 뷰이름 [RESTRICT | CASCADE];



2. 시스템 카탈로그

  • " 스키마 및 데이터베이스 객체에 대한 모든 정보 (메타데이터)를 저장한 시스템 데이터베이스 "



3. UPDATE

UPDATE 테이블이름
SET 속성이름 = 변경내용
[WHERE 조건];



4. DELETE

DELETE FROM 테이블이름
[WHERE 조건];



Section 3. 다중 테이블 검색

1. 조인 (JOIN)

  • " 둘 이상의 테이블로부터 특정 공통된 값을 갖는 행을 연결하거나 조합하여 검색하는 것 "



2. 조인의 종류

    ① 내부 조인 - 동등 조인, 자연 조인, 비동등 조인
    ② 외부 조인 - 조인 조건에 만족하지 않는 행도 표현
    ③ 셀프 조인 - 한 테이블 내에서 조인
    ④ 교차 조인 - 카티션 곱



3. 동등 조인

  • " 조인 대상이 되는 두 테이블에서 공통 컬럼의 값이 일치되는 공통 행을 연결 "
  • 공통 컬럼 중복 등장
SELECT * FROM 학생 S, 학과 D
WHERE S.학과번호 = D.학과번호;



4. 자연 조인 (Natural Join)

  • " 모든 컬럼을 대상으로 공통 컬럼의 값이 일치되는 공통행을 자동으로 조인 "
  • 공통 컬럼 하나만 등장
SELECT * FROM 학생 NATURAL [INNER] JOIN 학과;



5. 집합(SET) 연산자

    ① UNION - 각 집합의 합
    ② UNION ALL - 각 집합의 합 중복된 결과 포함
    ③ INTERSECT - 각 집합의 공통된 행을 반환
    ④ MINUS - 공통 행을 제외한 행을 반환

SELECT * FROM 데이터베이스
UNION/UNION ALL/INTERSECT/MINUS
SELECT * FROM 인공지능;

좋은 웹페이지 즐겨찾기