3과목 - 데이터베이스 구축
3장. SQL 응용
101. SQL의 개념
SQL (Structured Query Language)의 개요
- 국제 표준 데이터베이스 언어
- 관계대수와 관계해석을 기초로 한 혼합 데이터 언어
SQL의 분류
- DDL (Data Define Language, 데이터 정의어)
- SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용하는 언어
- CREATE : SCHEMA, DOMAIN, TABLE, VIEW, INDEX 정의
- ALTER : TABLE에 대한 정의 변경
- DROP : SCHEMA, DOMAIN, TABLE, VIEW, INDEX 삭제
- DML (Data Manipulation Language, 데이터 조작어)
- 저장된 데이터를 실질적으로 처리하는 데 사용되는 언어
- SELECT : 테이블에서 조건에 맞는 튜플 검색
- INSERT : 테이블에 새로운 튜플 삽입
- UPDATE : 테이블에서 조건에 맞는 튜플의 내용 변경
- DELETE : 테이블에서 조건에 맞는 튜플 삭제
- DCL (Data Control Language, 데이터 제어어)
- 데이터 보안, 무결성, 회복, 등을 정의하는 데 사용되는 언어
- COMMIT : 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장
- ROLLBACK : 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래 상태로 복구
- GRANT : 데이터베이스 사용자에게 사용 권한 부여
- REVOKE : 데이터베이스 사용자의 사용 권한 취소
102. DDL
DDL (Data Define Language, 데이터 정의어)의 개념
- 번역한 결과가 데이터 사전 (Data Dictionary)라는 특별한 파일에 여러 개의 테이블로서 저장
DROP
- CASCADE
- 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
- 외래키와 관계를 맺고 있는 모든 데이터를 제거하는 참조 무결성 제약 조건을 설정하기 위해 사용
- RESTRICTED
- 다른 개체가 제거할 요소를 참조중일 때는 제거 취소
103. DCL
DCL (Data Control Language, 데이터 제어어)의 개념
- 데이터 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어
- 데이터베이스 관리자가 데이터 관리를 목적으로 사용
GRANT / REVOKE
- WITH GRANT OPTION
- 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여
- GRANT OPTION FOR
- 다른 사용자에게 권한을 부여할 수 있는 권한을 취소
- CASCADE
- 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소
104. DML
DML (Data Manipulation Language, 데이터 조작어)의 개념
- 저장된 데이터를 실질적으로 관리하는 데 사용되는 언어
106. DML - SELECT - 2
집합 연산자를 이용한 통합 질의
- 2개 이상 테이블의 데이터를 하나로 통합
- 두 개의 SELECT문에 기술한 속성들은 개수와 데이터 유형이 서로 동일해야함
- 집합 연산자의 종류
- UNION (합집합)
- 두 SELECT문의 조회 결과를 통합하여 모두 출력
- 중복된 행은 한 번만 출력
- UNION ALL (합집합)
- 두 SELECT문의 조회 결과를 통합하여 모두 출력
- 중복된 행도 그대로 출력
- INTERSECT (교집합)
- 두 SELECT문의 조회 결과 중 공통된 행만 출력
- EXCEPT (차집합)
- 첫 번째 SELECT문의 조회 결과에서 두 번째 SELECT문의 조회 결과를 제외한 행 출력
- UNION (합집합)
107. DML - JOIN
JOIN의 개념
- 조인은 2개의 테이블에 대해 연관된 튜플들을 결합하여 하나의 새로운 릴레이션을 반환
- 일반적으로 FROM절에 기술하지만, 릴레이션이 사용되는 어느 곳에서나 사용 가능
INNER JOIN
- 조건 없는 INNER JOIN 수행 시 CROSS JOIN과 동일한 결과
- CROSS JOIN : 두 테이블에 있는 튜플들의 순서쌍을 결과로 반환
- EQUI JOIN
- 조인 대상 테이블에서 공통 속성을 기준으로 같은 값을 갖는 행을 연결하여 결과를 생성
- NATURAL JOIN : 중복된 속성을 제거하여 같은 속성을 한 번만 표기하는 방법
- NON-EQUI JOIN
- '=' 조건이 아닌 나머지 비교 연산자를 사용하는 조인 방법
OUTER JOIN
- 릴레이션에서 조인 조건에 만족하지 않는 튜플도 결과로 출력하기 위한 방법
- LEFT OUTER JOIN
- 우측 항 릴레이션의 어떤 튜플과도 맞지 않는 좌측 항 릴레이션에 있는 튜플들에 NULL 값을 붙여 INNER JOIN 결과에 추가
- RIGHT OUTER JOIN
- 좌측 항 릴레이션의 어떤 튜플과도 맞지 않는 우측 항 릴레이션에 있는 튜플들에 NULL 값을 붙여 INNER JOIN 결과에 추가
- FULL OUTER JOIN
- LEFT OUTER JOIN + RIGHT OUTER JOIN
SELF JOIN
- 같은 테이블에서 2개의 속성을 연결하여 EQUI JOIN을 하는 방법