조건 검색 및 행의 정렬
1. 조건 검색
2. 집합 연산자
3. 정렬 방법
1. 조건 검색
1-1.WHERE 절을 이용한 조건 검색
WHERE절
-테이블에 저장된 데이터중에서 원하는 데이터만 선택적으로 검색하는 기능
-WHERE 절의 조건문은 칼럼 이름, 연산자, 상수, 산술 표현식을 결합하여 다양한 형태로 표현 가능
-WHERE 절에서 사용하는 데이터 타입은 문자, 숫자, 날짜 타입 사용 가능
-문자와 날짜 타입의 상수 값은 작은 따옴표(‘’)로 묶어서 표현하고 숫자는 그대로 사용
-상수 값에서 영문자는 대소문자를 구별
사용법 * []
SELECT [DISTINCT] {* | column[alias][....}
FROM table
[WHERE condition];
1-2.비교 연산자를 사용한 조건 검색
비교 연산자
-WHERE 절에서 숫자, 문자, 날짜의 크기나 순서를 비교하는 연산자
비교연산자 의미
- 같다
!-,<> 같지 않다
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다
1-3.논리 연산자를 이용한 조건 검색
논리 연산자
-WHERE 절에서 여러 개의 조건을 결합할 경우
-AND, OR, NOT과 같은 논리 연산자를 사용
논리연산자 의미
AND 모든 조건이 참일 때, 참 값을 반환
OR 모든 조건 중에서 하나가 참일 때, 참 값을 반환
NOT 조건과 반대되는 결과를 반환
1-4.SQL 연산자를 이용한 조건 검색
SQL 연산자
-SQL 연산자는 SQL 언어에만 제공
-SQL 연산자는 모든 데이터 타입에 대해 사용 가능
SQL연산자 의미
BETWEEN a AND b a 와 b의 사이 값. a,b도 포함
IN(a,b,c, ... n) a,b,c ... ,n 중의 하나와 일치하면 참
LIKE 문자 패턴과 부분적으로 일치(%,_) 하면 참
IS NULL NULL이면 참
1-4-1. BETWEEN 연산자를 이용한 조건 검색
BETWEEN 연산자
-특정 칼럼의 데이터 값이 하한값 a와 상한값 b사이에 포함되는 행을 검색하기 위한 연산자
-AND 논리 연산자를 사용한 것과 같은 결과 집합 출력
1-4-2. IN 연산자를 이용한 조건 검색
IN(a, b, c, · · ·) 연산자
-IN(a, b, c, · · ·) 연산자는 특정 칼럼의 데이터 값이 a, b, c, · · ·값 중에 하나라도 일치하면 참이 되는 연산자
-OR 논리 연산자를 사용한 것과 같은 결과 집합 출력
1-4-3. LIKE연산자를 이용한 조건 검색
LIKE 연산자
-칼럼에 저장된 문자열중에서 LIKE 연산자에서 지정한 문자 패턴과 부분적으로 일치하면 참이 되는 연산자
1-4-4. ESCAPE 옵션
ESCAPE 옵션
-ESCAPE 옵션은 LIKE 연산자에서 사용하는 와일드 문자(%, _)자체를 포함하는 문자열을 검색할 때, 와일드 문자를 일반 문자처럼 취급하기 위한 옵션
1-5.NULL
NULL 개념
-NULL은 미확인 값이나 아직 적용되지 않은 값을 의미
-예
EX)학생 테이블에서 학생의 몸무게가 NULL인 경우 그 학생의 몸무게가 0이라는 의미가 아니라 현재 시점에서 그 학생의 몸무게를 모른다는 의미
EX)학생 테이블에서 학생의 지도교수 코드가 NULL인 경우에는 그 학생은 아직 지도교수가 배정되지 않았음을 의미
1-5-1.NULL 연산자를 이용한 조건 검색
IS NULL
-IS NULL 연산자는 칼럼 값 중에서 NULL을 포함하는 행을 검색하기 위해 사용하는 연산자
IS NOT NULL 연산자
-IS NOT NULL 연산자는 NULL이 아닌 행을 검색 경우에 사용하는 연산자
1-5-2.산술식에서의 NULL 처리
산술식과 함수에서 NULL 처리
-NULL에 산술식이나 함수를 적용하면 연산 결과도 NULL
1-6.연산자 우선순위
연산자 우선순위 규칙
우선순위
1 비교연산자(=,!=,^=,<>,>,>=,<,<=)
SQL 연산자 (BETWEEN a AND b, IN, LIKE , IS NULL)
2 NOT
3 AND
4 OR
2. 집합 연산자
집합 연산자
-테이블을 구성하는 행집합에 대해 테이블의 부분 집합을 결과로 반환하는 연산자
-합병 가능 : 집합 연산의 대상이 되는 두 테이블의 칼럼수가 같고, 대응되는 칼럼끼리 데이터 타입이 동일
집합 연산자 종류
집합연산자 의미
UNION 두 집합에 대해 중복되는 행을 제외한 합집합
UNION ALL 두 집합에 대해 중복되는 행을 포함한 합집합
MINUS 두 집합간의 차집합
INTERSECT 두 집합간의 교집합
2-1.UNION, UNION ALL 연산
UNION, UNION ALL 연산
-UNION 연산은 수학의 집합 연산에서 합집합을 의미
-UNION 연산은 두 개의 테이블에 속하면서 중복되는 행을 제외한 행 집합을 결과 집합으로 반환
-UNION ALL 연산은 중복되는 행을 제외하지 않고 모두 출력
2-2.INTERSECT 연산
INTERSECT 연산
-수학의 집합 연산에서 교집합을 의미
-INTERSECT 연산은 두 개의 테이블에 모두 속하는 행 집합을 결과 집합으로 반환
2-3.MINUS 연산
MINUS 연산
-수학의 집합 연산에서 차집합을 의미
-MINUS 연산은 데이블 A, B에서 A테이블에 속하지만 B 테이블에는 속하지 않는 행 집합을 결과 집합으로 반환
3. 정렬방법
정렬(sorting)
-SQL 명령문에서 검색된 결과는 테이블에 데이터가 입력된 순서대로 출력
-하지만, 데이터의 출력 순서를 특정 컬럼을 기준으로 오름차순 또는 내림차순으로 정렬하는 경우가 자주 발생
-여러 개의 칼럼에 대해 정렬 순서를 정하는 경우도 발생
-예 학생 테이블에서 학번순이나 교수 테이블에서 급여순으로 정렬하는 경우
3-1.ORDER BY절
기본적인 정렬 방법
사용법 []생략가능 {} 꼭필요
SELECT [DISTINCT]{+ | column[alias]....}
FROM table
[WHERE condition]
[ORDER BY {colmn, expression} [ ASC | DESC ]]
- ORDER BY : 칼럼이나 표현식을 기준으로 출력 결과를 정렬할 때 사용
- ASC : 오름차순으로 정렬하는 경우에 사용함, 기본 값
- DESC : 내림차순으로 정렬하는 경우에 사용함, 생략 불가능
3-2.NULL의 정렬
NULL의 정렬
-오름차순에서 NULL은 맨 마지막에 출력되지만, 내림차순에서는 NULL은 맨 처음 출력