데이터 제한 및 정렬

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
admin