p.426~4, 3-8
- 1974년 IBM 연구소에서 개발한 SEQUEL에서 유래함
- 관계대수와 관계해석을 기초로 한 혼합 데이터 언어
1) SQL(Structured Query Language)의 분류 ★★ __ 20년 1, 2회 기출문제
▶ DDL(Data Define Language, 데이터 정의어) __ 3-26
-DOMAIN(도메인), SCHEMA(스키마), TABLE(테이블), VIEW(뷰), INDEX(인덱스)를 정의하거나 변경 또는 삭제할 때 사용하는 언어
#도스테뷰인
명령어 |
기능 |
CREATE |
DOMAIN, SCHEMA, TABLE, VIEW, INDEX 정의 → CREATE DOMAIN, SCHEMA, TABLE, VIEW, INDEX 도스테뷰인명; |
ALTER |
TABLE에 대한 정의 변경 → ALTER TABLE 테이블명; |
DROP |
DOMAIN, SCHEMA, TABLE, VIEW, INDEX 삭제 → DROP DOMAIN, SCHEMA, TABLE, VIEW, INDEX 도스테뷰인명; * CASCADE: 참조하는 모든 개체 함께 제거 ★ *RESTRICTED: 다른 개체가 제거할 요소를 참조 중이면 제거 취소 |
▶ DML(Data Manipulation Language, 데이터 조작어) ★ __ 3-13, 1, 2회 기출문제
-데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 처리하는 데 사용하는 언어
명령어 |
기능 |
SELECT |
테이블에서 조건에 맞는 튜플 검색 → SELECT FROM 테이블명 [WHERE 조건]; |
INSERT |
테이블에 새로운 튜플 삽입 → INSERT INTO 테이블명 VALUES 데이터; |
DELETE |
테이블에서 조건에 맞는 튜플 삭제 → DELETE FROM 테이블명 [WHERE 조건]; |
UPDATE |
테이블에서 조건에 맞는 튜플의 내용 갱신(변경) → UPDATE 테이블명 SET 속성명=데이터 [WHERE 조건]; |
▶ DCL(Data Control Language, 데이터 제어어) __ 3-15, 20년 1, 2, 3회 기출문제
-데이터의 무결성, 보안, 회복, 병행수행 제어 ★ 등을 정의하는 데 사용되는 언어
-데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용
명령어 |
기능 |
COMMIT |
명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고, 데이터베이스 조작 작업이 정상적으로 완료됐음을 알려주는 명령어 |
ROLLBACK |
아직 COMMIT되지 않은 변경된 모든 내용들을 취소하고, 데이터베이스를 이전 상태로 되돌리는 명령어 *SAVEPOINT: 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어 |
GRANT |
데이터베이스 사용자에게 사용 권한 부여 → GRANT 권한 리스트 ON 개체 TO 사용자 [WITH GRANT OPTION]; *WITH GRANT OPTION: 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한 |
REVOKE |
데이터베이스 사용자의 사용 권한 취소 → REVOKE [GRANT OPTION FOR] 권한 리스트 ON 개체 FROM 사용자 [CASCADE]; *GRANT OPTION FOR: 다른 사용자에게 권한을 부여할 수 있는 권한을 취소 |
ex) GRANT UPDATE ON 고객(테이블) TO 홍길동 WITH GRANT OPTION;
ex) REVOKE GRANT OPTION FOR UPDATE ON 고객(테이블) FROM 홍길동 CASCADE;
2) SELECT __ p.444~453 ★ __ 20년 1, 2, 3회 기출문제
▶ WHERE절: 검색할 조건을 기술
▶ ORDER BY절: 특정 속성을 기준으로 정렬해 검색할 때 사용
# ASC(오름차순), DESC(내림차순) – 따로 설정이 없을 때는 기본적으로 ASC 사용
▶ GROUP BY절: 특정 속성을 기준으로 그룹화해 검색할 때 사용, 일반적으로 그룹 함수와 함께 사용
▶ HAVING절: GROUP BY와 함께 사용되며, 그룹에 대한 조건 지정
* DISTINCT: 중복 튜플 제거 ★
▶ 집계/그룹함수: GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 함수를 기술함
종류 |
설명 |
COUNT(속성명) |
그룹별 튜플 수를 구하는 함수 |
SUM(속성명) |
그룹별 합계를 구하는 함수 |
AVG(속성명) |
그룹별 평균을 구하는 함수 |
MAX(속성명) |
그룹별 최대값을 구하는 함수 |
MIN(속성명) |
그룹별 최소값을 구하는 함수 |
STDDEV(속성명) |
그룹별 표준편차를 구하는 함수 |
VARIANCE(속성명) |
그룹별 분산을 구하는 함수 |
ROLLUP(속성명, 속성명, …) |
인수로 주어진 속성을 대상으로 그룹별 소계를 구하는 함수, 속성의 개수가 n개면, n+1레벨까지, 하위 레벨에서 상위 레벨 순으로 데이터 집계 |
CUBE(속성명, 속성명, …) |
인수로 주어진 속성을 대상으로 모든 조합의 그룹별 소계를 구하는 함수, 속성의 개수가 n개면, n2 레벨까지, 상위 레벨에서 하위 레벨 순으로 데이터 집계 |
▶ 윈도우 함수: GROUP BY절을 이용하지 않고 속성의 값을 집계할 함수를 기술함
-함수의 인수로 지정한 속성이 대상 레코드의 범위가 되는데, 이를 WINDOW라 함
# PARTITION BY: 윈도우 함수가 적용될 범위로 사용할 속성 지정
→ WINDOW 함수 OVER (PARTITION BY 속성 ORDER BY 속성) [AS 바꾸고 싶은 이름]
종류 |
설명 |
ROW NUMBER( ) |
WINDOW별로 각 레코드에 대한 일련 번호를 반환함 ex) 1, 2, 3, 4, 5 |
RANK( ) |
WINDOW 별로 순위를 반환하며, 공동 순위를 반영함 ex) 1, 1, 1, 4, 5 |
DENSE_RANK( ) |
WINDOW 별로 순위를 반환하며, 공동 순위를 무시하고 순위를 부여함 ex) 1, 1, 1, 2, 3 |
3) 조인(JOIN) __ p.461, 3-43
- 결합을 의미하며, 관계형 데이터베이스에서의 조인은 교집합 결과를 가지는 결합 방법을 의미
- 두 릴레이션으로부터 연관된 튜플들을 결합해, 하나의 새로운 릴레이션을 반환
▶ 논리적 조인
구분 |
조인 유형 |
설명 |
INNER JOIN (내부 조인) |
EQUI JOIN (동등 조인) |
공통 존재 컬럼의 값이 같은 경우를 추출 |
NATURAL JOIN (자연 조인) |
두 테이블의 모든 컬럼을 비교해, 같은 컬럼 명을 가진 값이 같은 경우를 추출 |
|
CROSS JOIN (교차 조인) |
조인 조건이 없는 모든 데이터 조합을 추출 ★ |
|
OUTER JOIN (외부 조인) |
LEFT OUTER JOIN (왼쪽 외부 조인) |
왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 동일 데이터를 추출 |
RIGHT OUTER JOIN (오른쪽 외부 조인) |
오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 동일 데이터를 추출 |
|
FULL OUTER JOIN (완전 외부 조인) |
양쪽의 모든 데이터를 추출 |
#동자교
▶ 물리적 조인
종류 |
설명 |
NESTED-LOOP JOIN (중첩 반복 조인) |
2개 이상의 테이블에서 하나의 집합을 기준으로 순차적으로 상대방 Row를 결합해 원하는 결과를 조합하는 방식 |
SORT-MERGE JOIN (정렬 합병 조인) |
양쪽 테이블의 정렬한 결과를 차례로 검색하면서 연결고리 형태로 합병하는 방식 |
HASH JOIN (해시 조인) |
해싱 함수 기법을 활용하여 조인을 수행하는 방식 |
#네소해
'정보처리기사 필기 총정리 > 3과목: 데이터베이스 구축' 카테고리의 다른 글
DMBS 접속 기술 ★ (0) | 2020.10.03 |
---|---|
SQL 활용 ★★ (0) | 2020.10.03 |
논리 데이터 모델의 물리 데이터 모델 변환 및 품질 검토 ★ (0) | 2020.10.03 |
데이터베이스 보안 / 스토리지 ★★ (0) | 2020.10.03 |
데이터베이스 이중화 / 서버 클러스터링 ★ (0) | 2020.10.03 |
댓글