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 | 31 |
Tags
- 시큐어코딩
- parcel
- 답글
- 버전일치
- 미니게임
- degit
- FIle
- git
- 숫자
- snowpack
- 스프링
- 스타일보험
- webpack
- Spring
- Spinner
- sub query
- 상속
- 쿠키
- 왕초보
- 오버라이드
- SQL
- React
- java
- 함수
- java#왕초보
- kotlin
- 게시판
- 안드로이드
- 코틀린
- Android
Archives
- Today
- Total
YSHUSH
조건절 (where, in, between, like) 본문
SELECT
FROM
WHERE → 조건절 if문에 해당
비교연산자 ( < > >= <= != = <> ) 사용 가능
NULL, IS NULL, IS NOT NULL
&& → AND
|| → OR, ( )
˙DUAL → 가상테이블, 임시테이블용
SELECT 1, 'A' FROM DUAL; // 결과 : 1, A
SELECT 'A' FROM DUAL; // 결과 : A
SELECT TO_DATE('20211222','YYYYMMDD') FROM DUAL; // 결과 : 21/12/22
˙where절 연습(employee table)
-- 이름 -> Julia
SELECT first_name, last_name, salary
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; --> = NULL 은 JAVA문법임
-- 보너스가 있는 사람
SELECT first_name, commission_pct
FROM employees
WHERE commission_pct IS NOT NULL;
-- 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 > '071231'; -- 되는데 비추
SELECT first_name, hire_date
FROM employees
-- WHERE hire_date > '20071231'; // 이렇게 해도 된다
WHERE hire_date > TO_DATE('20071231', 'YYYYMMDD'); -- 정석
-- 06년도에 입사한 사원을 검색
SELECT first_name, hire_date
FROM employees
WHERE hire_date > '05/12/31' AND hire_date < '07/01/01';
-- 06년도에 입사한 사원을 검색(LIKE)
SELECT first_name, hire_date
FROM employees
WHERE hire_date LIKE '06%';
-- phone_number 앞이 590인 사람을 찾아라
SELECT first_name, phone_number, salary
FROM employees
WHERE phone_number LIKE '590%' AND salary > 5000;
˙where...and절 연습(employee table)
-- ALL(=AND), ANY(=OR)
SELECT first_name, last_name
FROM employees
WHERE first_name = 'Shanta'
AND last_name = 'Vollman';
-- 이름 John, 월급이 5000이상인 사원
SELECT first_name, salary
FROM employees
WHERE first_name = 'John'
AND salary >= 5000;
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인 경우 조건이 3 ~ 4가지라도 된다.
SELECT first_name, salary
FROM employees
WHERE salary = ANY(8000, 3200, 6000);
˙IN, NOT IN (포함되어 있는지 아닌지)
SELECT first_name, salary
FROM employees
WHERE salary Not IN(8000, 3200, 6000);
SELECT first_name
FROM employees
WHERE first_name IN('Julia', 'John');
-- WHERE first_name = 'Julia' OR first_name = '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 NOT BETWEEN 3200 AND 9000); -- BETWEEN과 함께 AND연산자를 쓸때는 괄호를 쓰는게 좋다
˙LIKE로 찾기
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 'A%'; -- 첫글자가 A인 사람만 찾아라
SELECT first_name
FROM employees
WHERE first_name LIKE '%y'; -- 맨끝에 y라고 끝나는 사람을 찾아라
SELECT first_name
FROM employees
WHERE first_name LIKE '%e%'; -- 철자 사이에 e가 들어간 사람을 찾아라
'Coding > SQL' 카테고리의 다른 글
join (0) | 2022.01.22 |
---|---|
order by, group by 예제 (0) | 2022.01.22 |
정렬(order by)과 통계(count, sum, avg, max, min) (0) | 2022.01.22 |
조건절 예제 (0) | 2022.01.22 |
SQL이란? (0) | 2022.01.22 |