데이터 제한 및 정렬
Oracle/OracleDB_SQL 2016. 5. 21. 04:11
[WHERE절]
- SELECT *|{DISTINCT] column|expression [alias],... }
FROM table
[WHERE condition(s)];
- condition : 열 이름, 표현식 상수 및 비교 연산자로 구성된다.
조건은 하나 이상의 표현식과 논리 연산자의 조합을 지정하고
TRUE, FALSE, UNKNOWN의 값을 반환한다.
** WHERE절에서는 열 alias를 사용할 수 없다.
[문자열 및 날짜]
- 문자열 및 날짜 값은 작은 따옴표로 묶는다.
- 문자 값은 대소문자를 구분하고 날짜 값은 형식을 구분한다.
- 기본 날짜 표시 형식은 DD-MON-RR이다.
** WHERE절에서 문자열과 날짜는 ' '로 묶어야 한다.
그러나 숫자 상수는 따옴표로 묶을 필요가 없다.
** 문자검색은 대소문자를 구분한다.
= , <= , BETWEEN, IN, LIKE 및 NULL 조건 사용하는 비교 조건
AND, OR 및 NOT 연산자 사용하는 논리 조건
[비교 연산자]
** != 및 ^= 도 같지 않음을 의미한다.
[IN 연산자]
- 지정된 값 집합에서 값을 테스트하려면 IN 연산자를 사용한다.
- IN 연산자를 사용하여 정의한 조건을 멤버 조건이라고도 한다.
- Oracle 서버 내부에서 OR조건의 집합으로 평가된다.
성능상의 이점은 없고 논리적으로 간결하게 작성하려는 경우에 사용된다.
[LIKE 연산자를 사용하여 패턴 일치]
- LIKE 연산자를 사용하여 유효한 검색 문자열 값의 대체 문자 검색을 수행한다.
- 검색 조건에는 리터럴 문자나 숫자가 포함될 수 있다.
* % : 글자수는 제한이 없고(0개 포함) 글자 종류도 상관 없다.
* _(Underscore) : 글자수는 한 글자만 올 수 있고 글자 종류는 상관없다.
[대체 문자 결합]
- 패턴 일치를 위해서 두 대체 문자(%, _ )를 리터럴 문자와 결합할 수 있다.
- 실제 % 및 _ 문자와 정확히 일치해야 하는 경우에는 ESCAPE 식별자를 사용한다.
NULL 조건 사용
- NULL 조건은 IS NULL 조건과 IS NOT NULL 조건을 포함한다.
- IS NULL 조건은 NULL값을 찾고 싶을 때
- IS NOT NULL은 NULL값이 아닌 값을 찾고 싶을 때
[논리 연산자를 사용하여 조건 정리하기]
AND : 구성 요소 조건이 모두 참인 경우 TRUE를 반환
OR : 구성 요소 조건 중 하나가 참인 경우 TRUE를 반환한다.
NOT : 조건이 거짓인 경우에 TRUE를 반환한다.
[표현식의 연산자 우선 순위 규칙]
** 괄호 사용하여 우선 순위 규칙을 재정의할 수 있다.
[ORDER BY 절 사용]
- ORDER BY 절을 사용하여 검색된 행을 정렬한다.
* ASC : 오름차순, default이다.
* DESC : 내림차순
- ORDER BY 절은 SELECT 문의 맨 마지막에 온다.
- NULL 값은 오름차순에서는 맨 뒤에 표시, 내림차순에서는 맨 위에 온다.
ex) ORDER BY employee_id ASC(default값)
ORDER BY employee_id DESC;
ex) ORDER BY employee_id, salary DESC;
이 경우에는 employee_id는 오름차순으로 정렬, salary는 내림차순으로 정렬된다.
[치환 변수]
- 반환되는 데이터의 범위를 제한하는 값을 유저가 직접 입력할 수 있다.
- 단일 앰퍼샌드(&) 및 이중 앰퍼샌드 && 사용하여 값을 임시로 저장한다.
- 치환 변수로 WHERE 조건, ORDER BY 절, 열 표현식, 테이블 이름, 전체 SELECT문 보완 가능
& 사용하여 치환 변수를 사용하여 값을 임시로 저장할 수 있다.
DEFINE 명령 사용하여 변수를 미리 정의할 수도 있다.
DEFINE은 변수를 생성하고 값을 할당한다.
ex) WHERE employee_id=&employee_num;
- 날짜 값 및 문자 값에 대해서 작은 따옴표를 사용한다.
ex) job_id = '&job_title';
[이중 앰퍼샌드 치환 변수 사용하기]
- 매번 값을 입력할 필요없이 변수 값을 재사용하려는 경우 이중 앰퍼샌드(&&)를 사용한다.
ex) SELECT employee_id &&column_name
FROM employees
ORDER BY &column_name;
[DEFINE 및 VERIFY]
- DEFINE 명령을 사용해서 변수를 생성하고 값을 할당할 수 있다.
- UNDEFINE 명령을 사용하여 변수를 제거한다.
'Oracle > OracleDB_SQL' 카테고리의 다른 글
오라클 nls_character (0) | 2016.05.24 |
---|---|
단일 행 함수 (0) | 2016.05.21 |
[조건식,그룹 함수] (0) | 2016.05.18 |
변환 함수 및 조건부 표현식 (0) | 2016.05.18 |
SQL 함수 (0) | 2016.05.16 |