Download presentation
Presentation is loading. Please wait.
1
Restricting and Sorting Data
2
Limiting Rows Using Selection
일반적으로 테이블의 모든 자료를 조회하지 않고 사용자가 원하는 자료를 조회하는 경우가 대부분임 SQL의 WHERE절을 사용하여 행 제한 부서10인 직원을 조회!
3
Limiting Row Selected WHERE을 사용하여 반환되는 행을 제한 WHERE절은 FROM절 다음에 위치함
열이름 비교연산자 열이름 , 상수 또는 값의 목록 Tip) Sigle Quation 사용 문자, 날짜 대소문자 구분 SELECT [DISTINCT] {*, column [alias], . . .} FROM table_name [WHERE condition]
4
Using the WHERE Clause 문) EMP테이블에서 업무가 CLERK인 사원의 이름, 업무, 부서번호를 조회하시오
SELECT ename, job, deptno FROM emp WHERE job = 'Clerk'; 오류! Why? SELECT ename, job, deptno FROM emp WHERE job = 'CLERK';
5
Character String and Dates
문자 스트링과 날짜 값은 단일 인용부호(' ')로 둘러 싸여 있음 문자값은 대소문자를 구분 날짜값은 날짜 형식을 구분 디폴트 날짜 형식은 'DD-MON-YY'
6
Comparison Operators 비교 연산자 Operator Meaning = 같다 > 보다 크다 >=
보다 크거나 같다 < 보다 작다 <= 보다 작거나 같다 <> , != 같지 않다
7
Using Comparison Operators
문) 보너스가 급여보다 같거나 큰 사원의 이름, 급여, 보너스 조회하시오 Where절에 명확한 값이 지정되지 않고, 두 값은 EMP테이블의 sal과 comm열이 비교됨 SELECT ename, sal, comm FROM emp WHERE sal <= comm
8
Other Comparison Operators
다른 비교 연산자 Operator Meaning BETWEEN a AND b a와 b 사이에 있음.(a,b값포함) IN (list) list의 값중 어느 하나와 일치함 LIKE 문자 패턴과 일치 IS NULL NULL값을 가짐
9
Using the BETWEEN Operator
두 값의 범위에 해당하는 행을 출력하기 위해 사용 명시한 범위는 하한값과 상한 값을 포함 작은 값을 앞에 기술하고 큰 값은 뒤에 기술해야함 문) 급여가 $1000에서 $1500 사이에 직원에 대한 사원이름과 급여를 조회하시오 SELECT ename, sal FROM emp WHERE sal BETWEEN 1000 AND 1500; sal BETWEEN 1500 AND 1000; ?? WHERE sal >= 1000 and sal <= 1500
10
Using the IN Operator 목록에 있는 값들과 비교하기 위해 IN연산자를 사용 어떤 데이터 형과도 사용될수 있음
문) 관리자의 사원 번호가 7902,7566,7788인 모든 직원의 직원번호, 이름, 급여 그리고 관리자의 직원번호를 조회하시오 SELECT empno, ename, sal, mgr FROM emp WHERE mgr IN (7902,7566, 7788)
11
Using the IN Operator 문) EMP테이블에 사원이름이 FORD, ALLEN가 존재하면 사원번호, 사원이름, 관리자 사원번호, 부서번호를 조회하시오 SELECT empno, ename, mgr,deptno FROM emp WHERE ename IN ('FORD', 'ALLEN') 리스트안에 문자, 날짜사용시 SINGLE QUATION ('') 사용
12
Using the LIKE Operator
검색값을 항상 정확하게 알수는 없으므로 검색 STRING 값에 대한 문자 패턴 일치 연산 (와일드 카드 검색)을 위해 사용 검색 조건은 LITERAL 문자나 숫자를 포함할 수 있음 ‘%’ : 문자가 없거나 하나 이상의 문자 ‘_’ : 단일 문자를 나타냄 패턴 일치 문자(_, %)를 조합할 수 있음 ‘%’나 ‘_’에 대해서 검색하기 위해서는 Escape 식별자를 이용 A% : 첫글자 A %A : 마지막 글자 A %A% : 중간에 글자 A _A% : 두번째 글자 A
13
Using the LIKE Operator
SELECT ename FROM emp WHERE ename LIKE 'S%'; SELECT ename FROM emp WHERE ename LIKE '_A%';
14
Using the IS NULL Operator
문) 관리자가 없는 모든 종업원의 이름과 관리자의 사원번호를 조회하시오 SELECT ename, mgr FROM emp WHERE mgr IS NULL;
15
Logical Operators Operator Meaning AND
양쪽 컴포넌트의 조건이 TRUE이면 TRUE를 RETURN OR 한쪽 컴포넌트의 조건만이 TRUE이면 TRUE를 RETURN NOT 이후의 조건이 FALSE이면 TRUE를 RETURN
16
Using the AND Operator 양쪽의 조건이 참이어야 TRUE를 RETURN
문) 업무가 CLERK이고 급여가 $1100이상인 직원의 사번, 이름, 업무, 급여를 조회하시오 AND TRUE FALSE NULL SELECT empno,ename,job,sal FROM emp WHERE sal >= 1100 AND job = 'CLERK';
17
Using the OR Operator 한쪽의 조건만 참이면 TRUE를 RETURN
문) 업무가 CLERK이거나 급여가 $1100이상인 직원의 사번, 이름, 업무, 급여를 조회하시오 OR TRUE FALSE NULL SELECT empno,ename,job,sal FROM emp WHERE sal >= 1100 AND job = 'CLERK';
18
Using the NOT Operator 문) 업무가 CLERK, MANAGER, ANALYST가 아닌 모든 직원의 이름과 업무를 조회하시오 SELECT ename,job FROM emp WHERE job NOT IN ('CLERK', 'MANAGER', 'ANALYST');
19
Rules of Precedence 우선순위 규칙 Order Evaluated Operator 1 괄호 2
모든 비교연산자 ( =, >=, <>) 3 NOT 4 AND 5 OR
20
Rules of Precedence 문) 아래 조건을 만족하는 직원의 이름, 업무, 급여를 조회하시오
첫번째 조건 : 업무가 PRESIDENT이고 급여가 1500보다 큼 두번째 조건 : 업무가 SALESMAN SELECTename,job,sal FROM emp WHERE job = 'SALESMAN' OR job = 'PRESIDENT' AND sal > 1500;
21
Rules of Precedence 우선순위를 강제로 변경하기위해 괄호 사용
문) 아래 조건을 만족하는 직원의 이름, 업무, 급여를 조회하시오 첫번째 조건 : 업무가 PRESIDENT이거나 SALESMAN 두번째 조건 : 급여가 1500보다 큼 SELECTename,job,sal FROM emp WHERE (job = 'SALESMAN' OR job = 'PRESIDENT' ) AND sal > 1500;
22
ORDER BY Clause 질의 결과에 RETURN되는 행의 순서는 정의되지 않음 ORDER BY 절로 행을 정렬
ASC : 오름차순, 디폴트 DESC : 내림차순 ORDER BY절은 SELECT문장의 가장 뒤에 기술 정렬을 위한 표현식이나 alias(별칭) 명시할수 있음 SELECT [DISTINCT] {*, column [alias], . . .} FROM table_name [WHERE condition] [ORDER BY {column, expression} [ASC | DESC]];
23
ORDER BY Clause 디폴트 정렬은 오름차순 숫자 값 : 가장 적은 값이 먼저 출력(예 : 1 ~ 999)
날짜 값 : 가장 빠른 값이 먼저 출력(예 : 01-JAN-92 ~ 01-JAN-95) 문자 값 : 알파벳 순서로 출력(예 : A ~ Z ~ a ~ z) Null값:오름차순에서는 제일 나중에, 내림차순에서는 제일 먼저 위치 문) 사원의 고용일을 오름차순으로 이름, 업무, 고용일을 조회하시오 SELECT ename, job, hiredate FROM emp ORDER BY hiredate;
24
Sorting in Descending Order
디폴트 순서 변경 ORDER BY절에서 열 이름 뒤에 DESC키워드를 명시해야 함 SELECT ename, job, hiredate FROM emp ORDER BY hiredate DESC;
25
Sorting by Column Alias
SELECT empno,ename,job,sal,sal*12 annsal FROM emp ORDER BY annsal; ORDER BY 5; ORDER BY sal*12;
26
Sorting by Multiple Columns
다중 열에 의한 정렬 하나 이상의 열로 질의 결과를 정렬 ORDER BY절에서 열을 명시하고, 열 이름은 콤마로 구분 열의 순서를 바꾸고자 한다면 열 이름 뒤에 DESC를 명시 문) EMP 테이블에서 부서번호로 정렬한 후 부서번호가 같을 경우 급여가 많은 순으로 정렬하여 이름, 부서번호, 급여를 조회하시오 SELECT ename, deptno,sal FROM emp ORDER BY deptno, sal DESC;
Similar presentations