공부하기싫어
article thumbnail

저번에 이어서 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
like문 사용2
like문 사용3

like '주다_' 는 '주다' 다음에 1개의 글자만 더 있는 것을 조회하는 것이다.

 

 

 

  • BETWEEN 문 사용

- between 문은 지정된 범위에 있는 값을 조회한다.

between문 사용1

sal(급여) 가 21000 이상 25000 이하인 행을 조회한 것

 

between문 사용2

sal(급여) 가 21000 미만 25000 초과인 행을 조회한 것

 

 

 

 

  • IN문 사용

- IN 문은 "OR"의 의미를 가지고 있어서 하나의 조건만 만족해도 조회가 된다.

in문 사용1
in문 사용2

괄호를 사용해서 원하는 데이터를 칼럼명에 대응되도록 입력함으로서, in문으로 여러개의 칼럼에 대한 조건을 지정할 수 있다.

 

 

 

  • NULL 값 조회

- NULL 을 조회할 경우 IS NULL 을 사용하고 NULL 값이 아닌 것을 조회할 경우는 IS NOT NULL을 사용한다.

is 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 를 사용해서 정렬을 할 수 있다.

테스트 테이블
select all
group by

- deptno 로 그룹을 만들고 그룹별 합계를 계산해 나온다.

 

 

 

  • HAVING문 사용

having 절 사용

group by 에 조건절을 사용하려면 having 으로 해야한다.

where 절에 조건을 사용하게 되면 조건을 충족하지 못하는 데이터들은 group by 대상에서 제외되어서 제대로된 합계가 나오지 않을 수 있다.

 

 

 

 

  • 집계 함수 종류

집계 함수

집계 함수 설명
COUNT() 행 수를 조회한다.
SUM() 합계를 계산한다.
AVG() 평균을 계산
MAX(), MIN() 최댓값과 최솟값을 계산
STDDEV() 표준편차를 계산
VARIAN() 분산을 계산

 

 

 

  • COUNT 함수

COUNT() 는 행 수를 세주는데

COUNT(*) 는 NULL 값을 포함한 모든 행 수를 계산하지만 COUNT(칼럼명) 은 NULL 값을 제외한 행 수를 계산한다.

count

 

 

 

 

  • GROUP BY 사용 예제

예시 테이블 생성
예시 테이블

 

서버+무기레벨 별 아이템레벨 평균 계산

group by 예시

클래스별 아이템레벨 평균이 1510 이상인 직업

group by + having

 

 

무기 레벨이 17 이상인 서버별 아이템레벨 평균

group by + where