[정보처리기사] DML - SELECT문 형식 (SELECT/FROM/WHERE/GROUP BY/HAVING절)
- 자격증,이론/정보처리기사
- 2020. 5. 29. 17:28
반응형
SELECT문 일반 형식
SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭]... FROM 테이블명1, 테이블2,... [WHERE 조건] [GROUP BY 속성명1, 속성명2,...] [HAVING 조건] [ORDER BY 속성명 [ASC | DESC]]; |
SELECT절
PREDICATE
- All
- DISTINCT : 중복된 튜플이 있으면 그 중 첫번째 한개만 검색
- DISTINCTROW
SELECT DISTINCT 주소 FROM 사원;
속성명
- 두개 이상의 테이블을 대상으로 검색할 때는 테이블명.속성명으로 표현
그룹함수
- GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 함수를 기술
- 그룹 함수 : COUNT, SUM, AVG, MAX, MIN, STDDEV(표준편차), VARIANCE(분산), ROLLUP, CUBE
SELECT 부서, AVG(상여금) AS 평균
FROM 상여금
GROUP BY 부서;
WINDOW 함수
- GROUP BY 절을 사용하지 않고 속성의 값을 집계할 함수를 기술
- 윈도우 함수 : ROW_NUMBER(일련번호 반환), RANK(순위반환), DENSE_RANK(순위반환, 공동순위 무시)
ex. 상여금 테이블에서 상여내역별로 상여금에 대한 일련 번호를 구하기 (순서는 내림차순, 속성명은 NO)
SELECT 상여내역, 상여금,
ROW_NUMBER() OVER (PARTITION BY 상여내역 ORDER BY 상여금 DESC) AS NO
FROM 상여금;
FROM절
- 검색될 데이터들을 포함하는 테이블명을 기술
WHERE절
- 검색할 조건을 기술
- LINK 연산자 : %(모든 문자), _(문자 하나), #(숫자 하나)
ex. 사원 테이블에서 성이 '김'인 사람의 튜플을 검색
SELECT *
FROM 사원
WHERE 이름 LIKE "김%";
GROUP BY절
- 특정 속성을 기준으로 그룹화하여 검색할 때 사용
- 일반적으로 그룹 함수와 함께 사용함
ex. 상여금 테이블에서 부서별 튜플 수를 검색
SELECT 부서, COUNT(*) AS 사원수
FROM 상여금
GROUP BY 부서;
HAVING절
- GROUPT BY와 함께 사용됨, 그룹에 대한 조건을 지정
ex. 상여금 테이블에서 상여금이 100 이상인 사원이 2명 이상인 부서의 튜플수를 구하기
SELECT 부서, COUNT(*) AS 사원수
FROM 상여금
WHERE 상여금>=100
GROUP BY 부서
HAVING COUNT(*) >= 2;
'자격증,이론 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 운영체제의 개념 (정의/목적/기능/종류) (0) | 2020.05.31 |
---|---|
[정보처리기사] 주요 정렬 알고리즘의 이해 (삽입/버블/선택정렬) (2) | 2020.05.30 |
[정보처리기사] SQL 분류 (DDL/DML/DCL) (0) | 2020.05.28 |
[정보처리기사] 분산 데이터베이스 정의/목표(투명성)/장단점/설계 (0) | 2020.05.28 |
[정보처리기사] 자동 반복 요청 (ARQ), 오류 검출 방식(패리티/CRC/해밍) (0) | 2020.05.28 |