WHERE절
- 테이블에 저장된 데이터중에서 원하는 데이터만 선택적으로 검색하는 기능
- WHERE 절의 조건문은 칼럼 이름, 연산자, 상수, 산술 표현식을 결합하여 다양한 형태로 표현 가능
- WHERE 절에서 사용하는 데이터 타입은 문자, 숫자, 날짜 타입 사용 가능
- 문자와 날짜 타입의 상수 값은 작은 따옴표('')로 묶어서 표현하 고 숫자는 그대로 사용
- 상수 값에서 영문자는 대소문자를 구별
비교연산자
- WHERE절에서 숫자, 문자, 날짜의 크기나 순서를 비교하는 연산자
연산자 | 의미 |
= | 같다 |
!=, <> | 같지 않다 |
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
SQL연산자
- SQL 연산자는 SQL 언어에만 제공
- SQL 연산자는 모든 데이터 타입에 대해 사용 가능
연산자 | 의미 |
BETWEEN a AND b | a와b의 사이의 값 a,b도 포함 |
IN(a, b, c, ..., n) | a, b, c, ..., n중의 하나와 일치하면 참 |
LIKE | 문자 패턴과 부분적으로 일치(%, _)하면 참 |
IS NULL, IS NOT NULL | NULL 이면 참, NULL이면 거짓 |
NULL 개념
- NULL은 미확인 값이나 아직 적용되지 않은 값을 의미
- 0도 아니며 스페이스도 아닌 정의되지 않은 값
- NULL은 단독으로 인덱스를 사용할 수 없으므로 가능한 정의가 능한 값(특정값)으로 정한다면 ( '0','99' 등 ) 인덱스를 이용할 수 있다.
- 그렇다고 생각없이 NULL을 특정 값으로 변환하는 것은 향후 큰 문제를 일으킬 수 있으므로 주의 깊게 사용해야 함.
NULL의 정의
- 컬럼에 아무런 값이 없을 경우, 컬럼은 null 상태라고 이야기를 함 또는 null을 포함했다고 정의함
- null 은 어떠한 not null 또는 Primary key 제약조건을 포함하지 않는 경우 모든 컬럼의 모든 데이터 타입에서도 나타날 수 있음
- null은 값을 알 수 없거나 아무런 의미가 없을 경우 사용됨
- null 값을 0(zero)을 나타내는데 사용하지는 말것(null과 0은 동일한 값이 아님)
집합 연산자
- 테이블을 구성하는 행집합에 대해 테이블의 부분 집합을 결과로 반환하는 연산자
- 합병 가능 : 집합 연산의 대상이 되는 두 테이블의 칼럼수가 같고, 대응되는 칼럼끼리 데이터 타입이 동일
집합 연산자 | 의미 |
UNION | 두 집합에 대해 중복되는 행을 제외한 합집합 |
UNION ALL | 두 집합에 대해 중복되는 행을 포함한 합집합 |
MINUS | 두 집합간의 차집합 |
INTERSECT | 두 집합간의 교집합 |
정렬
정렬(sorting)
- SQL 명령문에서 검색된 결과는 테이블에 데이터가 입력된 순서 대로 출력
- 하지만, 데이터의 출력 순서를 특정 컬럼을 기준으로 오름차순(ASC) 또는 내림차순(DESC)으로 정렬하는 경우가 자주 발생
- 여러 개의 칼럼에 대해 정렬 순서를 정하는 경우도 발생
ORDER BY 절
정렬 방법
- ORDER BY : 칼럼이나 표현식을 기준으로 출력 결과를 정렬할 때 사용
- ASC : 오른차순으로 정렬, 기본 값
- DESC : 내림차순으로 정렬하는 경우에 사용, 생략 불가능
- 문자 값은 알파벳순으로 출력됨
- 날짜 타입은 가장 빠른 값 부터 출력됨
- 한글은 가나다순으로 출력됨
- Null값은 오름차순에서는 제일 나중에 그리고 내림차순에서는 제일 먼저 출력됨
- SELECT 절에 포함되지 않는 컬럼도 정렬을 하기 위한 ORDER BY 절에 올수 있음.