일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 자바연산자
- CRUD게시판만들기
- 오버라이딩
- crud게시판
- 스프링게시판만들기
- 자바기초
- html기초
- 게시판만들기
- spring crud게시판
- jsp게시판만들기
- jsp 팝업띄우기
- 프로그래머스 MYSQL
- 자바 정규표현식 예제
- 2020정보처리기사실기요약
- 스프링 CRUD게시판
- jsp 날짜팝업
- 정처기실기정리
- 스프링 crud
- 정보처리기사실기정리
- Oracle기초
- 프로그래머스 SQL
- 오라클설치
- 프로그래머스 쿼리문
- js datepicker
- spring crud
- 2020정보처리기사실기
- PLSQL
- 자바배열예제
- 2020정보처리기사실기정리
- 날짜지정팝업
Archives
- Today
- Total
영보의 SystemOut.log
[Oracle] WHERE 조건절 / SQL 연산자 / SQL 예제 본문
반응형
#WHERE : 원하는 조건만 골라내기
* 문법
1
2
3
|
SELECT [Column or Expression]
From [테이블 or View]
WHERE 원하는 조건 ;
|
cs |
* 특징
- 문자/날짜 : ' ' 작은따옴표
- 숫자 : 그대로 표기
- 반드시 FROM 절 아래 와야함
#Oracle 다양한 연산자
연산자 종류 |
설명 |
= |
비교 대상 중 같은 조건 검색 |
!=, <> |
비교 대상 중 같지 않은 조건 검색 |
> |
비교 대상 중 큰 조건을 검색 |
>= |
비교 대상 중 크거나 같은 조건을 검색 |
< |
비교 대상 중 작은 조건을 검색 |
<= |
비교 대상 중 작거나 같은 조건을 검색 |
BTWEEN a AND b |
a와 b 사이에 있는 범위 값을 모두 검색 |
IN |
여러가지 조건 검색 |
LIKE |
특정 패턴을 가지고 있는 조건 검색 |
IS NULL / IS NOT NULL |
NULL 값을 검색 / NULL이 아닌 값을 검색 |
AND |
a조건과 b조건을 모두 만족하는 값만 검색 |
OR |
a조건이나 b조건 중 한 가지라도 만족하는 값 검색 |
NOT |
a가 아닌 모든 조건을 검색 |
#예제1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
--사원중에 급여가 3000인 사원의 모든 정보 출력(*)
SELECT * FROM emp WHERE sal=3000;
--사원중에 급여가 15000인 사원의 이름, 입사일, 급여 출력
SELECT ename, hiredate, sal FROM emp WHERE sal=1500;
--사원중에 이름이 SCOTT인 사원의 이름, 입사일, 직위(job), 급여 출력
SELECT ename, hiredate, job, sal FROM emp WHERE ename='SCOTT';
--사원중에 직위(job)가 MANAGER인 사원의 모든 정보 출력
SELECT * FROM emp WHERE job='MANAGER';
--입사일이 1982-12-9에 입사한 사원의 이름, 입사일, 급여 출력
SELECT ename, hiredate, sal FROM emp WHERE hiredate='82/12/09';
|
cs |
#예제2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
--문자열일 경우에 대소문자를 구분한다
SELECT ename, hiredate, job, sal FROM emp WHERE ename='scott';
-- !=, <>
-- job이 CLERK이 아닌 사원의 이름, 직위만 출력
SELECT ename, job FROM emp WHERE job!='CLERK';
SELECT ename, job FROM emp WHERE job<>'CLERK';
-- < (작다)
-- 사원중에 급여가 1500보다 작은 사원의 이름, 급여 출력
SELECT ename, sal FROM emp WHERE sal < '1500';
--입사일이 82/12/09보다 먼저 입사한 사원의 모든 정보 출력
SELECT * FROM emp WHERE hiredate < '82/12/09';
|
cs |
#예제3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
--AND : 범위, 기간이 포함하는 경우 / 급여가 1500보다 크다 3000이하
SELECT * FROM emp WHERE sal>1500 AND sal<3000;
--NULL
-- WHERE comm=NULL; IS NULL
-- 성과급이 없는 사원의 모든 정보
SELECT * FROM emp WHERE comm IS NULL;
--성과급이 있는 사원의 모든 정보
SELECT * FROM emp WHERE comm IS NOT NULL;
--사원중에 사수(mgr)이 없는 사람의 이름, 입사일, 직위 출력
SELECT ename, hiredate, job FROM emp WHERE mgr IS NULL;
--IN
--사원중에 부서(deptno)가 10이거나 20인 사원의 모든 정보를 출력
SELECT * FROM emp WHERE deptno=10 OR deptno=20;
SELECT * FROM emp WHERE deptno IN(10,20);
--사원중에 직위(job)가 MANAGER이거나 CLERK인 사원의 모든 정보 출력
SELECT * FROM emp WHERE job IN('MANAGER', 'CLERK');
-81/06/09, 81/11/17, 82/01/23 사원의 모든 정보 출력
SELECT * FROM emp WHERE hiredate IN ('81/06/09','81/11/17','82/01/23');
--부서가 10이거나 20번인 사람을 제외하고 모든 정보 출력(포함되지않은걸 가져옴)
SELECT * FROM emp WHERE deptno NOT IN(10,20);
--BETWEEN ~ AND => 기간, 범위, 포함
--BETWEEN 10 AND 100 ==> 10, 100이 포함 >=10 AND <=100
-- 1981년에 입사한 모든 사원의 정보 출력
SELECT * FROM emp WHERE hiredate NOT BETWEEN '81/01/01' AND '81/12/31';
SELECT * FROM emp WHERE ename BETWEEN 'ADAMS' AND 'KING';
|
cs |
#예제4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
--문자, 날짜를 포함해서 처리가 가능
-- LIKE : 포함문자, 시작, 끝, 글자수 찾는 경우 사용
--형식) WHERE 컬럼명 LIKE '%A%' => 검색기
--% => 문자의 갯수를 모르는 경우
-- _ => 한글자
-- 이름중에 A로 시작하는 사원의 모든 정보
SELECT * FROM emp WHERE ename LIKE 'A%';
--82년도에 입사한 사원의 모든 정보
SELECT * FROM emp WHERE hiredate LIKE '82%';
--이름중에 S로 끝나는 사원의 모든 정보
SELECT * FROM emp WHERE ename LIKE '%S';
--이름중에 K를 포함하고 있는 사원의 모든 정보
SELECT * FROM emp WHERE ename LIKE '%K%';
--주소중에 신촌을 포함하고 있는 모든 주소를 출력
SELECT * FROM zipcode WHERE dong LIKE '%신촌%';
--글자가 5글자 가운데 C가 있는 사원의 정보를 출력
SELECT * FROM emp WHERE ename LIKE '__O__';
-- 이름이 4글자인 사원의 모든 정보출력
SELECT * FROM emp WHERE ename LIKE '____';
SELECT * FROM emp WHERE LENGTH(ename)=4;
|
cs |
#예제5
1
2
3
|
--ORDER BY : 정렬
--ORDER BY 컬럼명 ASC|DESC
SELECT ename, sal FROM emp ORDER BY sal DESC, ename DESC;
|
cs |
반응형
'Database > Oracle' 카테고리의 다른 글
[Oracle] 집합연산자 / 집합연산자 예제 (0) | 2020.08.06 |
---|---|
[Oracle] 오라클의 데이터형 (1) | 2020.08.05 |
[Oracle] SQL연산자 / Oracle연산자 / WHERE 조건절 (0) | 2020.08.05 |
[DB] SQL문 정리/ SQL형식 / DQL / DML / DDL / TCL / DCL / SELECT (0) | 2020.08.04 |
[Oracle] Oracle 글꼴 / 글자 크기 변경하기 (0) | 2020.08.03 |