📘 certificate/📘⭕️ 정보처리기사

[정리] 정보처리기사 실기 - 3장 : SQL 응용 ★★★

천재강쥐 2022. 10. 4. 20:21

3장 : SQL 응용(3과목)


1. SQL (Structured Query Language, 구조화된 질의어)

  • 국제 표준 데이터베이스 언어
  • 관계대수와 관계해석을 기초로 한 혼합 데이터 언어

2. SQL의 분류

  • DDL (Data Define Language, 데이터 정의어)
  • DML (Data Manipulation Language, 데이터 조작어)
  • DCL (Data Control Language, 데이터 제어어)

3. DDL (Data Define Language, 데이터 정의어) CAD

  • 논리적 데이터 구조와 물리적 데이터 구조의 사상을 정의
  • CREATE : 정의 시 사용
  • 기출 기준 예시) CREATE INDEX 인덱스명 ON 테이블명
  • ALTER : 변경 시 사용
  • 기출 기준 예시) ALTER TABLE 테이블명 ADD 속성명 데이터타입; 
  •                              ALTER TABLE 테이블명 ALTER 속성명
  • DROP

       기출 기준 예시) DROP TABLE 테이블명 CASCADE;

  • 제거 시 사용
  • CASCADE : 제거될 테이블을 참조하는 모든 제약과 뷰도 자동으로 제거된다. 
  • RESTRICT : 대상 테이블이 제약이나 뷰로부터 참조되지 않은 경우에만 제거된다.

4. DML (Data Manipulation Language, 데이터 조작어) SIDU

  • 실질적으로 처리하는 데 사용
  • SELECT (+FROM WHERE) : 튜플 검색 (중복 없이 조회하고자 한다면 DISTICT)
  • INSERT (+INTO VALUES) : 튜플 삽입
  • 기출 기준 예시) INSERT INTO 테이블명(속성명1, 속성명2, ...) VALUES (데이터1, 데이터2, ...);
  • DELETE (+ FROM WHERE) : 튜플 삭제, 한 개의 delete에는 한 개의 테이블만 가능 
  • 기출 기준 예시) DELETE FROM 테이블명;
  • UPDATE (+ SET WHERE) : 튜플 내용 변경
  • 기출 기준 예시) UPDATE 테이블명 SET 속성명 =  새로운데이터값 WHERE 속성명 = 기존데이터값;

5. DCL (Data Control Language, 데이터 제어어) CRGR(S)

  • 관리자가 관리를 목적으로 사용
  • 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용
  • COMMIT : 실제 물리 디스크에 저장, 조작의 완료를 알림
  • ROLLBACK : 비정상적 종료에 대해 원래 상태로 복구(아직 COMMIT 되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌림)
  • GRANT : 권한 부여
  • 기출 기준 예시) GRANT RESOURCE TO 유저명; => 데이터베이스 및 테이블을 생성할 수 있는 권한
  • 기출 기준 예시) GRANT CONNECT TO 유저명; => 단순히 데이터베이스에 있는 정보를 검색할 수 있는 권한 부여
  • REVOKE : 권한 취소
  • SAVEPOINT : Rollback 할 위치 지정

6. SQL에서 사용하는 테이블의 종류 ★★★

  • 기본 테이블 (Basic Table) : 이름을 가지고 있으며, 독자적으로 존재함
  • 뷰 테이블 (View Table) : 독자적으로 존재하지 못하고 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블로써 사용자에게 보여 주고 싶은 정보만을 취합할 때 주로 사용
  • 임시 테이블 (Temporary Table) : 질의문 처리 결과로 만들어진, 이름을 가지지 않는 테이블

7. JOIN

  • JOIN은 2개의 테이블에 대해 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션을 반환한다.
  • JOIN은 INNER JOIN 과 OUTER JOIN으로 구분된다. 
  • JOIN은 일반적으로 FROM절에 기술하지만 릴레이션이 사용되는 어느 곳에서나 사용 가능하다. 

8. INNER JOIN

  • INNER JOIN은 EQUI JOIN 과 NON-EQUI JOIN으로 구분
  • 조건 없는 INNER JOIN을 수행하면, CROSS JOIN 과 동일한 결과를 얻음

SELECT 테이블명1.공통속성명, 테이블명2.공통속성명

FROM 테이블명1

JOIN 테이블명2 USING 공통속성명;

 

SELECT 테이블명1.속성명1, 테이블명2.속성명2

FROM 테이블명1

JOIN 테이블명2 ON (테이블명1.공통속성명 = 테이블명2.공통속성명);


8-1. EQUI JOIN 

  • JOIN 대상 테이블에서 공통 속성을 기준으로 "=" 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성
  • JOIN 조건이 "="일 때, 동일한 속성이 두 번 나타남
  • 이 중 중복된 속성을 제거하여, 같은 속성을 한 번만 표기하는 방법을 NATURAL JOIN

SELECT 테이블명1.속성명, 테이블명2.속성명

FROM 테이블명1, 테이블명2

WHERE 테이블명1.속성명 = 테이블명2.속성명;


 

8-2. NON-EQUI JOIN

  • JOIN 조건에 "="가 아닌 나머지 비교 연산자를 사용하는 JOIN 방법

SELECT 테이블명1.속성명, 테이블명2.속성명

FROM 테이블명1, 테이블명2

WHERE 조건절;


9. OUTER JOIN 

  • 릴레이션에서 JOIN 조건에 만족하지 않는 튜플도 결과로 출력하기 위한 JOIN 방법
  • LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN이 있음
  • LEFT, RIGHT 등 OUTER 앞에 붙는 위치 기준으로 해당 위치의 값은 NULL이라도 모두 출력