DML
1. SELECT 20년 1, 2, 3회 ,21년 2회 ,22년 1회 실기
(1) WHERE절: 검색할 조건을 기술
(2) ORDER BY절: 특정 속성을 기준으로 정렬해 검색할 때 사용
- ASC(오름차순), DESC(내림차순) – 따로 설정이 없는 경우 기본적으로 ASC 정렬
(3) GROUP BY절: 특정 속성을 기준으로 그룹화해 검색할 때 사용, 일반적으로 그룹 함수와 함께 사용
(4) HAVING절: GROUP BY와 함께 사용되며, 그룹에 대한 조건 지정
작성 순서
작성순서와 실행순서는 상이하다.
SELECT 열
FROM 테이블
WHERE 열 조건
GROUP BY 열
HAVING 그룹 조건
ORDER BY 열 ASC
1.1 DISTINCT
중복 튜플 제거하는 키워드
SELECT DISTINCT([컬럼명]) FROM [테이블명];
1.2 집계함수
값들의 집합을 계산해서 하나의 값을 리턴하는 함수
- COUNT() 개수
- SUM() 합
- AVG() 평균
- MAX() 최댓값
- MIN() 최솟값
COUNT를 제외하고 는 DISTINCT, ALL 키워드 사용 가능하고 계산에서 NULL(결측치) 제외함
1.3 그룹 함수
GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 함수를 기술함
(1) ROLLUP(속성명, 속성명, …) 인수로 주어진 속성을 대상으로 그룹별 소계를 구하는 함수
- 속성의 개수가 n개면, n+1 레벨까지(하위 레벨에서 상위 레벨 순)
(2) CUBE(속성명, 속성명, …) 인수로 주어진 속성을 대상으로 모든 조합의 그룹별 소계를 구하는 함수
- 속성의 개수가 n개면, n2 레벨까지(상위 레벨에서 하위 레벨 순)
1.3 윈도우 함수
GROUP BY 절을 이용하지 않고 속성의 값을 집계할 함수를 기술함
-함수의 인수로 지정한 속성이 대상 레코드의 범위가 되는데, 이를 WINDOW라 함
(1) 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
1) WHERE 조건 20년 3회 기출문제
자주 나오는 유형으로 예시는 완벽하게 외워야 합니다!
구분 | 연산자 | 예시 |
비교 | =, <>, != <, <=, >, >= |
가격(PRICE)이 10000 미만 → PRICE < 10000 |
범위 | BETWEEN AND | 가격(PRICE)이 50000 보다 크거나 같고 80000 보다 작거나 같음 → PRICE BETWEEN 50000 AND 80000 → PRICE >= 50000 AND PRICE <=80000 |
집합 | IN, NOT IN( ) | 가격(PRICE)이 40000 또는 50000 또는 60000 → PRICE IN (40000, 50000, 60000) * OR을 사용하는 것과 동일 → Price ==4000 OR Price ==5000 OR Price ==6000 |
패턴 | LIKE | 이름(NAME)이 ‘정보’로 시작되는 문자열 → NAME LIKE ‘정보%’ 21년 2회 실기 이름(NAME)이 ‘정보’가 포함되는 문자열 → NAME LIKE ‘%정보%’ |
NULL | IS NULL, IS NOT NULL |
가격(PRICE)이 NULL 값인 경우 → PRICE IS NULL == NULL, <> NULL 아님( NULL은 값이 없음을 의미하므로 비교 연산자로 불가) |
복합조건 | AND, OR, NOT | 가격(PRICE)이 50000 미만이고 이름(NAME)이 ‘정보’로 시작되는 문자열 → PRICE < 50000 AND NAME LIKE ‘정보%’ |
2.1) LIKE와 사용하는 와일드 문자
+ 문자열을 연결 → ‘김치’ + ‘국’ = “김치국”
% 0개 이상의 문자열과 일치 → LIKE ‘% 국’ = 김치’국’, 된장'국', 무’국’
→ LIKE ‘%구%’ = 축’구’선수, 농’구’코트, ‘구’심력, 피’구’
_ 특정 위치의 1개의 문자와 일치 → ‘_구%’ = 축’구’, 축’구’선수
[ ] 1개의 문자와 일치 → ‘[0-8]%’ = 0-8 사이 숫자로 시작하는 문자열
[ ^ ] 1개의 문자와 불일치 → ‘[^0-8]%’ = 0-8 사이 숫자로 시작하지 않는 문자열
'Challenges > 정보처리기사' 카테고리의 다른 글
[정보처리기사]3.데이터베이스 구축/SQL 활용/절차형 SQL (0) | 2022.06.15 |
---|---|
[정보처리기사]3.데이터베이스 구축/SQL응용/조인, 집합연산 (0) | 2022.06.14 |
[정보처리기사]3.데이터베이스 구축/SQL응용/SQL :DDL, DCL, DML (0) | 2022.06.12 |
[정보처리기사]3.데이터베이스 구축/물리 데이터베이스 설계/스토리지,논리 데이터 모델의 물리 데이터 모델 변환 및 품질 검토 (0) | 2022.06.11 |
[정보처리기사]3.데이터베이스 구축/물리 데이터베이스 설계/데이터베이스 이중화, 서버 클러스터링 (0) | 2022.06.10 |