IN 연산자를 이용한 조건 검색

Download Report

Transcript IN 연산자를 이용한 조건 검색

조건 검색 및 행의 정렬
조건 검색, 정렬
목차
I. Where 절을 이용한 조건 검색
II. 집합 연산자
III. 정렬 방법
2
WHERE 절을 이용한 조건 검색
• WHERE절
– 테이블에 저장된 데이터중에서 원하는 데이터만 선택적으로 검색
하는 기능
– WHERE 절의 조건문은 칼럼 이름, 연산자, 상수, 산술 표현식을
결합하여 다양한 형태로 표현 가능
– WHERE 절에서 사용하는 데이터 타입은 문자, 숫자, 날짜 타입
사용 가능
– 문자와 날짜 타입의 상수 값은 작은 따옴표(‘’)로 묶어서 표현하고
숫자는 그대로 사용
– 상수 값에서 영문자는 대소문자를 구별
• 사용법
SELECT
FROM
[WHERE
[DISTINCT]{* | column[alias]…}
table
condition];
3
WHERE 절을 이용한 조건 검색
• 사용 예
– 학생 테이블에서 1학년 학생만 검색하여 학번, 이름, 학과 번호를
출력하여라
4
비교 연산자를 사용한 조건 검색
• 비교 연산자
– WHERE 절에서 숫자, 문자, 날짜의 크기나 순서를 비교하는 연산
자
[표5.1] 비교 연산자
연산자
=
!=, <>
의미
같다
같지 않다
>
크다
>=
크거나 같다
<
작다
<=
작거나 같다
5
비교 연산자를 사용한 조건 검색 예
• 사용 예
– 학생 테이블에서 몸무게가 70kg 이하인 학생만 검색하여 학번, 이
름, 학년, 학과번호, 몸무게를 출력하여라.
6
논리 연산자를 이용한 조건 검색
• 논리 연산자
– WHERE 절에서 여러 개의 조건을 결합할 경우
– AND, OR, NOT과 같은 논리 연산자를 사용
[표5.2] 논리 연산자
연산자
AND
OR
NOT
의미
모든 조건이 참일 때, 참 값을 반환
모든 조건 중에서 하나가 참일 때, 참 값을 반환
조건과 반대되는 결과를 반환
7
AND 논리 연산자를 이용한 조건 검색 예
• 사용 예
– 학생 테이블에서 1학년 이면서 몸무게가 70kg 이상인 학생만 검
색하여 이름, 학년, 몸무게, 학과번호를 출력하여라.
8
SQL 연산자를 이용한 조건 검색
• SQL 연산자
– SQL 연산자는 SQL 언어에만 제공
– SQL 연산자는 모든 데이터 타입에 대해 사용 가능
[표5.3] SQL 연산자
연산자
BETWEEN a AND b
IN(a, b, c,…, n)
LIKE
IS NULL
의미
a와 b의 사이의 값, a, b 도 포함
a, b, c, …, n 중의 하나와 일치하면 참
문자 패턴과 부분적으로 일치(%, _)하면 참
NULL 이면 참
9
BETWEEN 연산자를 이용한 조건 검색
• BETWEEN 연산자
– 특정 칼럼의 데이터 값이 하한 값 a와 상한 값 b사이에 포함되는
행을 검색하기 위한 연산자
– AND 논리 연산자를 사용한 것과 같은 결과 집합 출력
a
b
10
BETWEEN 연산자를 이용한 조건 검색 예
• 사용 예
– BETWEEN 연산자를 사용하여 몸무게가 50kg에서 70kg 사이인
학생의 학번, 이름, 몸무게를 출력하여라.
11
IN 연산자를 이용한 조건 검색
• IN(a, b, c, · · ·) 연산자
– IN(a, b, c, · · ·) 연산자는 특정 칼럼의 데이터 값이 a, b, c, · · ·값
중에 하나라도 일치하면 참이 되는 연산자
– OR 논리 연산자를 사용한 것과 같은 결과 집합 출력
a
b
c
12
IN 연산자를 이용한 조건 검색 예
• 사용 예
– IN 연산자를 사용하여 102번 학과와 201번 학과 학생의 이름, 학
년, 학과번호를 출력하여라
13
LIKE연산자를 이용한 조건 검색
• LIKE 연산자
– 칼럼에 저장된 문자열중에서 LIKE 연산자에서 지정한 문자 패턴
과 부분적으로 일치하면 참이 되는 연산자
• 사용 예
– 학생 테이블에서 성이 ‘김’씨인 학생의 이름, 학년, 학과 번호를 출
력하여라.
이름의 길이와 상관없이 성이 ‘김’씨인
학생을 모두 검색
14
ESCAPE 옵션
• ESCAPE 옵션
– ESCAPE 옵션은 LIKE 연산자에서 사용하는 와일드 문자(%, _)자
체를 포함하는 문자열을 검색할 때, 와일드 문자를 일반 문자처럼
취급하기 위한 옵션
15
NULL
• NULL 개념
– NULL은 미확인 값이나 아직 적용되지 않은 값을 의미
– 예
• 학생 테이블에서 학생의 몸무게가 NULL인 경우 그 학생의 몸무게가
0이라는 의미가 아니라 현재 시점에서 그 학생의 몸무게를 모른다는
의미
• 학생 테이블에서 학생의 지도교수 코드가 NULL인 경우에는 그 학생
은 아직 지도교수가 배정되지 않았음을 의미
16
NULL 연산자 예
• 사용 예
– 교수 테이블에서 이름, 직급, 보직수당을 출력하여라
NULL
17
NULL 연산자를 이용한 조건 검색
• IS NULL
– IS NULL 연산자는 칼럼 값 중에서 NULL을 포함하는 행을 검색하
기 위해 사용하는 연산자
• IS NOT NULL 연산자
– IS NOT NULL 연산자는 NULL이 아닌 행을 검색 경우에 사용하는
연산자
18
NULL 연산자를 이용한 조건 검색 예
• 사용 예
– 교수 테이블에서 보직수당이 없는 교수의 이름, 직급, 보직수당을
출력하여라.
comm칼럼에 ‘NULL’문자열이 있는지
비교 검색
comm칼럼 값이 NULL인 행 검색
19
산술식에서의 NULL 처리
• 산술식과 함수에서 NULL 처리
– NULL에 산술식이나 함수를 적용하면 연산 결과도 NULL
• 사용 예
– 교수 테이블에서 급여에 보직수당을 더한 값은 sal_com이라는 별
명으로 출력하여라.
comm이 ‘NULL’이면
sal+comm도 NULL이다
20
연산자 우선순위
[표5.4] 연산자 우선 순위 규칙
우선순위
연산자
1
비교 연산자(=, !=, ^=, <>, <, <=, >, >= )
SQL 연산자(BETWEEN, IN, LIKE, IS NULL)
2
NOT
3
AND
4
OR
21
연산자 우선순위 예
• 사용 예
– 102번 학과의 학생 중에서 1학년 또는 4학년 학생의 이름, 학년,
학과 번호를 출력하여라.
22
연산자 우선 순위 예
• 사용 예
– 102번 학과의 학생 중에서 4학년 학생이거나 소속학과에 상관없
이 1학년 학생의 이름, 학년, 학과 번호를 출력하여라.
23
목차
I. Where 절을 이용한 조건 검색
II. 집합 연산자
III. 정렬 방법
24
집합 연산자
• 집합 연산자
– 테이블을 구성하는 행집합에 대해 테이블의 부분 집합을 결과로
반환하는 연산자
– 합병 가능 : 집합 연산의 대상이 되는 두 테이블의 칼럼수가 같고,
대응되는 칼럼끼리 데이터 타입이 동일
• 사용법
SELECT
명령문1
[UNION | UNION ALL | INTERSECT | MINUS]
SELECT
명령문2;
[표5.5] 집합 연산자 종류
집합 연산자
의미
UNION
두 집합에 대해 중복되는 행을 제외한 합집합
UNION ALL
두 집합에 대해 중복되는 행을 포함한 합집합
MINUS
두 집합간의 차집합
INTERSECT
두 집합간의 교집합
25
UNION, UNION ALL 연산
• UNION, UNION ALL 연산
– UNION 연산은 수학의 집합 연산에서 합집합을 의미
– UNION 연산은 두 개의 테이블에 속하면서 중복되는 행을 제외한
행 집합을 결과 집합으로 반환
– UNION ALL 연산은 중복되는 행을 제외하지 않고 모두 출력
A
B
A UNION ALL B
A
B
A UNION B
26
집합 연산을 위한 테이블 생성
• 사용 예
– 1학년 이면서 몸무게가 70kg 이상인 학생의 집합(stud_heavy)과
1학년 이면서 101번 학과에 소속된 학생(stud_101)으로 구성된
두 개의 테이블 생성
집합 A
박동진, 서재진
집합 B
서재진, 박민경
27
합병 불가능한 경우
• UNION 연산을 실행하는 두 테이블이 합병 불가능한 경우,
– 두 질의의 칼럼수가 다르므로 오류 발생
28
UNION, UNION ALL 연산의 비교
• 사용 예
– stud_heavy와 stud_101테이블에 대해 UNION, UNION ALL 연산
을 각각 수행한 결과를 출력하여라
29
INTERSECT 연산
• INTERSECT 연산
– 수학의 집합 연산에서 교집합을 의미
– INTERSECT 연산은 두 개의 테이블에 모두 속하는 행 집합을 결
과 집합으로 반환
30
MINUS 연산
• MINUS 연산
– 수학의 집합 연산에서 차집합을 의미
– MINUS 연산은 데이블 A, B에서 A테이블에 속하지만 B 테이블에
는 속하지 않는 행 집합을 결과 집합으로 반환
A
A MINUS B
B
A
B
B MINUS A
31
MINUS 연산의 예
stud_heavy – stud_101
stud_101 – stud_heavy
32
목차
I. Where 절을 이용한 조건 검색
II. 집합 연산자
III. 정렬 방법
33
정렬
• 정렬(sorting)
– SQL 명령문에서 검색된 결과는 테이블에 데이터가 입력된 순서
대로 출력
– 하지만, 데이터의 출력 순서를 특정 컬럼을 기준으로 오름차순 또
는 내림차순으로 정렬하는 경우가 자주 발생
– 여러 개의 칼럼에 대해 정렬 순서를 정하는 경우도 발생
– 예
• 학생 테이블에서 학번순이나 교수 테이블에서 급여순으로 정렬하는
경우
34
ORDER BY 절
• 기본적인 정렬 방법
– 문자 값은 알파벳순으로 출력되고, 한글은 가나다순으로 출력된
다
– 숫자 값은 가장 작은 값으로 먼저 출력된다
– 날짜 값은 과거의 날짜순으로 출력된다
• 사용법
SELECT
FROM
[WHERE
[ORDER BY
[DISTINCT]{* | column[alias]…}
table
condition]
{column, expression}[ASC|DESC]]
– ORDER BY : 칼럼이나 표현식을 기준으로 출력 결과를 정렬할 때
사용
– ASC : 오른차순으로 정렬, 기본 값
– DESC : 내림차순으로 정렬하는 경우에 사용, 생략 불가능
35