Oracle에서 교육용으로 제공하는 HR계정으로 실습 [EMPLOYEES 테이블]
SELECT
FROM
WHERE 조건절 -> IF
비교연산자( > < >= <= != <>)
NULL, IS NULL( =NULL) -> 문법상 Oracle에선 사용이 안된다
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 = '';
조건이 2개 이상일 경우
AND, OR
SELECT
*
FROM employees
WHERE first_name = 'Shanta'
AND first_name = 'Vollman'; --당연히 아무도 안 나온다. first_name이 Shanta AND Vollman
SELECT
*
FROM employees
WHERE first_name = 'Shanta'
OR first_name = 'Volman'; -- first_name이 'Shanta' 이거나 'Volman'인 사람
복합 조건
이름 John 그리고 월급은 50005000 이상
SELECT
*
FROM employees
WHERE first_name = 'John'
AND salary >= 5000;
날짜에 대한 조건
--2007년 12월 3131일 이후에 입사한 사원을 출력
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'); --> TO_DATE(A, B) A를 BB의 형식으로 시간을 변경
ALL(= AND), ANY(= OR)
--전체 데이터가 여러 개 일 때..
SELECT
*
FROM employees
WHERE first_name = ALL('Julia', 'John'); --> WHERE first_name = 'Julia' AND first_name = 'John'
ANY 각각의 데이터가 달랐을 때 주로 사용..
SELECT
*
FROM employees
WHERE first_name = ANY('Julia', 'John'); -- OR조건 결과가 제대로 출력이 된다.
--급여 8000, 3200, 6000 인 사람을 출력
SELECT
salary
FROM employees
WHERE salary = ANY(8000, 3200, 6000);
IN, NOT IN
SELECT first_name, salary
FROM employees
WHERE salary IN(8000, 3200, 6000); --급여가 8000, 3200, 6000 인 사람
SELECT first_name, salary
FROM employees
WHERE salary NOT IN(8000, 3200, 6000); --급여가 8000, 3200, 6000이 아닌 사람
SELECT first_name
FROM employees
WHERE first_name IN('Julia', 'John'); -- 이름이 'John' 이거나 'Julia'인 사람
BETWEEN 범위 연산자
SELECT first_name, salary
FROM employees
WHERE salary BETWEEN 3200 AND 9000;
-- WHERE salary >= 3200 AND salary <= 9000; --급여가 3200 이상 9000이하인 사람
SELECT first_name, salary
FROM employees
WHERE salary NOT BETWEEN 3200 AND 9000; -- 3200보다 작거나 9000보다 큰 사람
LIKE
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가 포함되어있는 사람 모두 출력 %A(맨 끝에 A인 사람 출력)
--06년도에 입사한 사람 전부 뽑고 싶을 때
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%'; --지역번호가 590에 해당하는 사람
'데이터베이스 > Oracle' 카테고리의 다른 글
[Oracle] JOIN 쉽게 이해하기 (0) | 2021.05.29 |
---|---|
[Oracle] ORDER BY, HAVING, ALIAS, GROUP FUNCTION 연습 (0) | 2021.05.27 |
[Oracle] scott 계정 연습문제 (SELECT문, 비교 연산자, 논리 연산자) (0) | 2021.05.27 |
[Oracle] SELECT문 형식 (0) | 2021.05.27 |
[Oracle] DDL, DML, DCL 정의 (0) | 2021.05.27 |