Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 추상 메서드
- 다중 모달창
- oracle 연동
- 템플릿
- SUB Query
- 스프링 모달창
- IP
- singleton
- Java
- Servlet 맵핑
- 리스트 모달창
- static메서드
- GROUP BY
- react
- 객체협력
- 사용자 데이터그램 프로토콜
- static 예제
- 이클립스 오라클 연동
- 모달창 여러개
- order by
- 싱클톤패턴
- 상속
- 깃 명령어
- AOP란?
- 형변환
- downcasting
- spring annotation
- 오라클 비교연산자
- static
- 다운캐스팅
Archives
- Today
- Total
모든지 기록하자!
[Oracle] WHERE절과 비교연산자와 예제 본문
728x90
이번 게시물에 핵심 기능을 알아보자
--WHERE절 형태
SELECT 컬럼명
FROM 테이블명
WHERE 조건식 -> 자바의 IF와 같다.
비교연산자
( >, <, >=, <=, =, !=, <> )
NULL, IS NULL(= NULL), IS NOT NULL( != NULL )
AND(&&), OR(||),
처리 우선순위 : NOT > AND > OR
-- ALL (=AND)
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 = ALL('값', '값'); ex 이름
-- WHERE 컬럼명 = '값' AND 컬럼명 '값' 이랑 동일한 내용
--활용 예시
SELECT
*
FROM employees
WHERE first_name = ALL('Julia', 'John');
-- WHERE first_name = 'Julia' AND first_name 'John'
-- ANY (=OR)
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 = ANY(값, 값, 값);
-- 활용 예시
SELECT first_name, salary
FROM employees
WHERE salary = ANY(8000, 3200, 6200);
-- IN --IN()에 있는 값 중에서 어느 하나라도 일치하면 TRUE
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 IN(값, 값, 값);
-- NOT IN --IN()에 있는 값을 제외한 나머지 값
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 NOT IN(값, 값, 값);
-- BETWEEN 범위 연산자 A~B사이의 값을 나타낸다.
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 BETWEEN A AND B;
--WHERE 컬럼명 >= A AND 컬럼명 <= B; 위와 동일하다
-- NOT BETWEEN
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 NOT BETWEEN A AND B;
--WHERE 컬럼명 >= A AND 컬럼명 <= B; 위와 동일하다.
LIKE에서는 '와일드카드'를 사용할 수 있다.
와일드카드 : 한 개 혹은 0개 이상의 문자를 대신해서 사용하기 위한 특수문자
% : 0개 이상의 어떤 문자를 의미
_ : 1개의 단일 문자를 의미
-- LIKE --자바의 contains와 동일
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 LIKE 'A_CD_F'; -- _ 는 한글자가 어떠한 문자든 허용
SELECT 컬럼명
FROM 테이블명
WHERE 컬럼명 LIKE 'K%y';
%는 글자수에 제한 없이 모두 허용
%에 위치에 따라 의미가 다르다.
ex) 'K%' -- 첫글자가 K
'%a%' -- a가 앞뒤 상관없이 포함
WHERE hire_date >= '06/01/01' AND hire_date <= '06/12/31';
WHERE hire_date LIKE '06%'; --위보다 훨씬 간결함
활용 예시와 실습 문제
/*
SELECT
FROM
WHERE 조건절 -> IF
비교연산자 ( >, <, >=, <=, =, !=, <> )
NULL, IS NULL(= NULL), IS NOT NULL( != NULL )
AND(&&), OR(||),
*/
-- 이름 -> Julia
SELECT first_name, last_name
FROM employees
WHERE first_name = 'Julia';
-- 급여가 $9000 이상인 사원
SELECT first_name, salary
FROM employees
WHERE salary >= 9000;
-- 이름이 Shanta 보다 큰 이름
SELECT first_name
FROM employees
WHERE first_name > 'Shanta';
-- 이름의 첫 스팰링이 J보다 큰 이름
SELECT first_name
FROM employees
WHERE first_name > 'J';
-- 매니저가 없는 사원
SELECT first_name
FROM employees
WHERE manager_id IS NULL;
-- WHERE manager_id = NULL;
-- WHERE manager_id = '';
-- AND, OR
SELECT first_name
FROM employees
WHERE first_name = 'Shanta'
AND first_name = 'Julia';
SELECT first_name
FROM employees
WHERE first_name = 'Shanta'
OR first_name = 'Julia';
-- 이름 John, 월급은 5000이상
SELECT first_name, salary
FROM employees
WHERE first_name = 'John'
AND salary >= 5000;
-- 2007년 12월 31일 이후에 입사한 사원 출력
SELECT first_name, hire_date
FROM employees
WHERE hire_date > '07/12/31';
SELECT first_name, hire_date
FROM employees
WHERE hire_date > TO_DATE('20071231', 'YYYYMMDD');
-- ALL (=AND), ANY(=OR)
SELECT
*
FROM employees
WHERE first_name = ALL('Julia', 'John');
-- WHERE first_name = 'Julia' AND first_name 'John'
SELECT
*
FROM employees
WHERE first_name = ANY('Julia', 'John');
-- 8000, 3200, 6000
SELECT first_name, salary
FROM employees
WHERE salary = ANY(8000, 3200, 6200);
-- IN, NOT IN
SELECT first_name, salary
FROM employees
WHERE salary IN(8000, 3200, 6200);
SELECT first_name, salary
FROM employees
WHERE salary NOT IN(8000, 3200, 6200);
SELECT first_name
FROM employees
WHERE first_name IN('Julia', 'John');
-- BETWEEN 범위 연산자
SELECT first_name, salary
FROM employees
--WHERE salary >= 3200 AND salary <= 9000;
WHERE salary BETWEEN 3200 AND 9000;
SELECT first_name, salary
FROM employees
--WHERE salary >= 3200 AND salary <= 9000;
WHERE salary NOT BETWEEN 3200 AND 9000;
-- LIKE == contains
SELECT first_name
FROM employees
WHERE first_name LIKE 'G_ra_d'; -- _ 한글자가 어떠한 문자든 허용
SELECT first_name
FROM employees
WHERE first_name LIKE 'K%y'; -- % 글자수에 제한 없이 모두 허용
SELECT first_name
FROM employees
WHERE first_name LIKE 'K%'; -- 첫글자가 K
SELECT first_name
FROM employees
WHERE first_name LIKE '%a%'; -- a가 앞뒤 상관없이 포함
SELECT first_name, hire_date
FROM employees
WHERE hire_date >= '06/01/01' AND hire_date <= '06/12/31';
SELECT first_name, hire_date
FROM employees
WHERE hire_date LIKE '06%'; --위보다 훨씬 간결함
SELECT first_name, phone_number
FROM employees
WHERE phone_number LIKE '590%';
728x90
'Database' 카테고리의 다른 글
[Oracle] SELECT문, WHERE절, 비교연산자 기초 예제 (0) | 2021.05.26 |
---|---|
[Oracle] ORDER BY , GROUP BY 와 예제 (0) | 2021.05.26 |
[Oracle] SELECT문과 예제 (0) | 2021.05.26 |
[Oracle] Standard Function (0) | 2021.05.25 |
[Oracle] 기본 입출력 (0) | 2021.05.25 |
Comments