저번에 이어서 dml 문법들을 공부해보자
point5. WHERE문 사용
- WHERE문이 사용하는 연산자
비교 연산자
- 그냥 등호 부등호
부정 비교 연산자
부정 비교 연산자 | 설명 |
!= | 같지 않은 것 조회 |
^= | 같지 않은 것 조회 |
<> | 같지 않은 것 조회 |
NOT 칼렴명= | 같지 않은 것 조회 |
NOT 칼렴명 > | 크지 않은 것 조회 |
논리 연산자
- AND, OR, NOT
SQL연산자
SQL 연산자 | 설명 |
LIKE '%비교 문자열%' | 비교 문자열을 조회한다. '%'는 모든 값을 의미한다. |
BETWEEN A AND B | A와 B 사이의 값을 조회한다. |
IN (list) | OR 을 의미하며 list 값 중에 하나만 일치해도 조회된다. |
IS NULL | NULL 값을 조회한다. |
부정 SQL 연산자
부정 SQL 연산자 | 설명 |
NOT BETWEEN A AND B | A와 B 사이에 해당되지 않는 값 조회 |
NOT IN (list) | list 와 불일치한 것을 조회한다. |
IS NOT NULL | NULL 값이 아닌 것을 조회한다. |
위의 예는 emp 테이블에서 empno가 1001이고 sal 이 1000보다 크거나 같은 것을 조회한 것이다,
- Like 문 사용
- like 문은 와일드 카드를 사용해서 데이터를 조회할 수 있다.
와일드카드
와일드카드 | 설명 |
% | - 어떤 문자를 포함한 모든 것을 조회한다. - 예를 들어 '조%'는 '조' 로 시작하는 모든 문자를 조회한다. |
_ (underscore) | 한 개인 다닝ㄹ 문자를 의미한다. |
like '주다_' 는 '주다' 다음에 1개의 글자만 더 있는 것을 조회하는 것이다.
- BETWEEN 문 사용
- between 문은 지정된 범위에 있는 값을 조회한다.
sal(급여) 가 21000 이상 25000 이하인 행을 조회한 것
sal(급여) 가 21000 미만 25000 초과인 행을 조회한 것
- IN문 사용
- IN 문은 "OR"의 의미를 가지고 있어서 하나의 조건만 만족해도 조회가 된다.
괄호를 사용해서 원하는 데이터를 칼럼명에 대응되도록 입력함으로서, in문으로 여러개의 칼럼에 대한 조건을 지정할 수 있다.
- NULL 값 조회
- NULL 을 조회할 경우 IS NULL 을 사용하고 NULL 값이 아닌 것을 조회할 경우는 IS NOT NULL을 사용한다.
null 관련 함수
null 함수 | 설명 |
NVL 함수 | - NULL이면 다른 값으로 바꾸는 함수이다 - NVL(SAL, 0) 은 SAL 칼럼이 NULL 이면 0으로 바꾼다 |
NVL2 함수 | - NVL 함수와 DECLODE 함수를 하나로 만든것이다. - NVL2(SAL, 1, 0) 은 SAL 칼럼이 NULL 이 아니면 1을, NULL 이면 0을 반환한다. |
NULLIF 함수 | - 두 개의 값이 같으면 NULL을, 같지 않으면 첫번째 값을 반환한다. - NULLIF(exp1, exp2) 는 exp1 과 exp2 가 같으면 null을, 다르면 exp1 을 반환한다. |
COALESCE | - NULL이 아닌 최초의 인자 값을 반환한다. - COALESCE(exp1, exp2, exp3 ... ) 는 exp1이 null 이 아니면 exp2 를, 그렇지 않으면 그 뒤의 값의 null 여부를 판단하여 값을 반환한다. |
point6. GROUP 연산
- GROUP BY 문
- GROUP BY 는 테이블에서 소규모 행을 그룹화하여 합계, 평균, 최댓값, 최솟값 등을 계산할 수 있다.
- HAVING구에 조건문을 사용한다
- ORDER BY 를 사용해서 정렬을 할 수 있다.
- deptno 로 그룹을 만들고 그룹별 합계를 계산해 나온다.
- HAVING문 사용
group by 에 조건절을 사용하려면 having 으로 해야한다.
where 절에 조건을 사용하게 되면 조건을 충족하지 못하는 데이터들은 group by 대상에서 제외되어서 제대로된 합계가 나오지 않을 수 있다.
- 집계 함수 종류
집계 함수
집계 함수 | 설명 |
COUNT() | 행 수를 조회한다. |
SUM() | 합계를 계산한다. |
AVG() | 평균을 계산 |
MAX(), MIN() | 최댓값과 최솟값을 계산 |
STDDEV() | 표준편차를 계산 |
VARIAN() | 분산을 계산 |
- COUNT 함수
COUNT() 는 행 수를 세주는데
COUNT(*) 는 NULL 값을 포함한 모든 행 수를 계산하지만 COUNT(칼럼명) 은 NULL 값을 제외한 행 수를 계산한다.
- GROUP BY 사용 예제
서버+무기레벨 별 아이템레벨 평균 계산
클래스별 아이템레벨 평균이 1510 이상인 직업
무기 레벨이 17 이상인 서버별 아이템레벨 평균
'파이썬 > SQLD' 카테고리의 다른 글
[SQLD] 시험준비 3주 3일차 - DML4, DCL, TCL (0) | 2022.05.19 |
---|---|
[SQLD] 시험준비 3주 2일차 - DML3 (0) | 2022.05.18 |
[SQLD] 시험준비 2주 5일차 - DML (0) | 2022.05.14 |
[SQLD] 시험준비 2주 4일차 - DDL (0) | 2022.05.11 |
[SQLD] 시험준비 2주 3일차 - SQL 기본 및 활용 - SQL 종류 (0) | 2022.05.10 |