티스토리 뷰
문법
1 2 3 4 | SELECT * | { [DISTINCT] column / expression [alias], ... } FROM table [WHERE condition(s)] [ORDER BY { column, expr, alias } [ASC | DESC] ]; | cs |
1.WHERE(조건문)절 - 행 제한 조건문
좌변(컬럼명) = 우변(리터럴값);
1 2 3 | SELECT employee_id, last_name, job_id, department_id FROM employees WHERE department_id = 90; | cs |
1 2 3 | SELECT last_name, job_id, department_id FROM employees WHERE last_name = 'Whalen'; | cs |
1 2 3 | SELECT last_name FROM employees WHERE hire_date = '17-FEB-96'; | cs |
단일행 비교연산자 : = > < >= <= <> !=
1 2 3 | SELECT last_name, salary FROM employees WHERE salary <= 3000; | cs |
범위연산자 : BETWEEN A AND B 모든 데이터 다 사용 가능
1 2 3 | SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500; | cs |
다중행 비교연산자 : IN( =, OR )
1 2 3 | SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201); | cs |
% : 0개의 문자 또는 여러 개의 문자가 올 수 있다.
_ : 반드시 1개의 문자가 와야한다.
ex)
a로 시작되는 문자열 → 'a%'
= abcd(o) a(o) defadb(x)
a가 포함된 문자열 → '%a%'
= abcd(o) a(o) defadb(o)
a로 끝나는 문자열 → '%a'
두번째 문자가 a인 문자열 → '_a%'
끝에서 세번째 문자가 a인 문자열 → '%a__'
1 2 3 | SELECT last_name FROM employees WHERE last_name LIKE '_0%'; | cs |
IS NULL : 비교 연산자. 값이 NULL인 것
1 2 3 | SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL; | cs |
1 2 3 | SELECT employee_id, salary, commission_pct FROM employees WHERE commission_pct IS NULL; | cs |
1 2 3 4 | SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 AND job_id LIKE '%MAN'; | cs |
1 2 3 4 | SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN'; | cs |
비교연산자에 NOT(논리연산자)이 조합으로 사용된 경우
1 2 3 4 | ... WHERE job_id NOT IN ('AC_ACCOUNT', 'AD_VP') ... WHERE salary NOT BETWEEN 10000 AND 15000 ... WHERE last_name NOT LIKE '%A%' ... WHERE commission_pct IS NOT NULL | cs |
2. ORDER BY절 (항상 쿼리문 마지막에 절어주는 절)
ASC(Ascending order, default) : 오름차순, default(생략), 작은 수에서 큰 수로
DESC(Descending order) : 큰 수에서 작은 수로
= ↔ <>
>, >= ↔ <. <=
BETWEEN ↔ NOT BETWEEN A AND B
IN(=, OR) ↔ NOT IN(<>, AND)
LIKE ↔ NOT LIKE
IS NULL ↔ IS NOT NULL
DESC : 최근 날짜부터 정렬
1 2 3 | SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC; | cs |
1 2 3 | SELECT employee_id, last_name, salary*12 annsal FROM employees ORDER BY annsal; | cs |
SELECT절에 나열되어있는 순서부터(왼쪽 → 오른쪽) 자동적으로 위치가 주어진다. 3번째 컬럼 오름차순
1 2 3 | SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY 3; | cs |
1 2 3 | SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary DESC; | cs |
department_id : 오름차순
salary : 내림차순
연습문제
1. employees 테이블로부터 04년도에 입사한 모든 사원의 last_name과 hire_date를 출력하시오.
1 2 3 | SELECT last_name, hire_date FROM employees WHERE hire_date BETWEEN '01-JAN-04' and '31-dec-04'; | cs |
1 2 3 | SELECT last_name, hire_date FROM employees WHERE hire_date like '%04'; | cs |
2. employees 테이블로부터 커미션을 받지 않는 모든 사원의 last_name, salary, commission_pct를 출력하되 salary를 기준으로 내림차순 정렬하시오.
1 2 3 4 | SELECT last_name, salary, commission_pct FROM employees WHERE commission_pct IS NULL ORDER BY salary DESC; | cs |
'부산 ITWILL 학원 실습 > ORACLE' 카테고리의 다른 글
[SQL 활용] 3. GROUP BY절과 HAVING절 (0) | 2018.07.27 |
---|---|
[Oracle VM VirtualBox] 외부 화면(바탕화면)으로 나가기 (0) | 2018.07.27 |
[SQL 활용] 1. SELECT 구문을 사용한 데이터 검색 (0) | 2018.07.26 |
[Oracle VM VirtualBox] - Linux 부팅 + DB 구동 (0) | 2018.07.26 |
[Oracle VM VirtualBox] 설치 + ova 파일 연동 (0) | 2018.07.26 |