1. WHERE 조건절 개요
원하는 자료만 검색하기 위해서나 두 개 이상의 테이블에 대한 조건을 기술하거나 결과를 제한하기 위한 조건을 기술
SELECT [DISTINCT/ALL] 칼럼명 [ALIAS명]
FROM 테이블명
WHERE 조건식;
- 컬럼명
- 비교연산자
- 문자, 숫자, 표현식
- 비교칼럼 (조인 사용시)
2. 연산자의 종류
구분 |
연산자 |
비교연산자 |
= , >= , >, <, <= |
부정 비교 연산자 |
!=, ^=, <>(표준), NOT칼럼명=, NOT칼럼명 > |
SQL연산자 |
Between A and B, In(list), Like'비교문자열', IS NULL |
부정 SQL 연산자 |
NOT Between A and B, NOT In(list), NOT IS NULL |
논리연산자 |
AND, OR, NOT |
처리 우선순위
괄호 → NOT 연산자 → 비교연산자, SQL연산자 → AND → OR
3. 비교연산자
Char나 varchar2 같은 문자형 타입을 가진 칼럼은 인용부호( ' ' , " ")로 묶어서 비교 처리 해야함
문자 유형 비교 방법
구분 |
비교방법 |
양쪽 모두가 CHAR |
서로 다른 CHAR형이면 작은쪽에 SPACE 추가하려 길이를 같게 한 후 비교 서로 다른 문자가 나올때까지 비교 달라진 첫번쨰 문자의 값에 따라 크기 결정 BLANK의 수만 다르면 서로 같은 값으로 결정 |
한쪽이 VARCAHR2 |
서로 다른 문자가 나올때까지 비교 길이가 다르면 짧은것이 끝날떄까지만 비교 후 길기가 긴것이 크다고 판단 길이가 같고 다른것이 없으면 같음 NOT NULL까지 길이 포함 |
상수값과 비교시 |
상수를 변수타입으로 바꾸고 비교 |
4. SQL연산자
- IN 연산자 : SQL 문장을 짧게 만들어주면서도 성능측면에서도 장점을 가질수 있는 매우 유용한 연산자, 사용 권장
Ex) WHERE (JOB, DEPTNO) IN (('MANAGER',20),('CLERK',30));
- LIKE 연산자 : % (0개 이상의 어떤 문자를 의미), _ (1개인 단일 문자 의미)
- Between A and B 연산자
- IS NULL 연산자 : 값이 존재하지 않는 것, 확정되지 않은 값 표현할때 사용
NULL값과의 수치연산은 NULL, NULL과의 비교연산은 FALSE, 어떤 값과도 비교 할 수 없음
5. 논리연산자
우선순위 : ( ) → NOT → AND → OR
6. 부정 연산자
7. ROWNUM, TOP
가. ROWNUM
오라클의 ROWNUM은 임시로 부여되는 일련번호, 원하는 만큼만 가지고 올 때는 where 절에서 행 개수 제한 가능
SELECT 컬럼명 FROM 테이블명 WHERE ROWNUM = N;
SELECT 컬럼명 FROM 테이블명 WHERE ROWNUM <= N+1;
고유한 키나 인덱스 값 만들수 있음
UPDATE 테이블명 SET COLUMN1 = ROWNUM;
나. TOP
SQL server 행 수 제한
TOP (Expression) [PERCENT] [WITH TIES]
- Expression : 반환할 행수
- Rercent : 쿼리 결과 집합에서 처음 Expression의 %에 포함된 행만 반환(백분율 환산)
- With Ties : order by 절이 지정된 경우에만 사용, 같은 값이 있다면 추가 행을 출력할 수 있도록 지정
'자격증 공방 > SQLD' 카테고리의 다른 글
제 3-7절 GROUP BY, HAVING 절 (0) | 2018.07.07 |
---|---|
제 3-6절 함수 (0) | 2018.07.07 |
제 3-4절 TCL (TRANSACTION CONTROL LANGUAGE) (0) | 2018.07.07 |
제 3-3절 DML (DATA MANIPULATION LANGUAGE) (0) | 2018.07.07 |
제 3-2절 DDL (0) | 2018.07.07 |