본문 바로가기
카테고리 없음

조건검색 및 행의정렬

by Real Iron 2007. 3. 29.


조건 검색 및 행의 정렬



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은 맨 처음 출력