<SELECT>
SELECT 검색할 컬럼 FROM 테이블명 ( + 조건);
select문과 같이 사용하는 기타 문법
1) Alias: 출력할때 원하는 이름으로 출력할 수 있도록 한다.
Alias에 공백, 대문자를 넣고싶으면 큰따옴표 안에 작성하면 작성한 그대로 된다.
문법: 컬럼명 as 새로운이름
SELECT emp_name as name, salary*12 "Total Salary"
from employees;
2) || 연결연산자: 컬럼들의 값을 합쳐서 출력한다.
작은따옴표 ' ' 안에 넣으면 문자열 출력 가능.
SELECT 'The job id for ' || UPPER(last_name) || ' is ' || LOWER(job_id)
AS "EMPLOYEE DETAILS"
FROM employees;
3) DISTINCT : 중복된 값을 자동으로 제거해서 출력한다.
select distinct name from emps;
<WHERE>
특정 조건에 해당하는 값을 추출한다. 위치: from절 다음에
select 컬럼명 from 테이블 where 좌 = 우;(조건)
좌: 비교할 컬럼명
우: 비교할 리터럴값
# 월급이 2500~3500 사이인 사원들의 이름을 출력
SELECT emp_name
from employees
where salary BETWEEN 2500 AND 3500;
WHERE절과 비교연산자
단일행 비교연산자: =, >, =>, <, <=, !=, <>
다중행 비교연산자: in, OR, 등등
select * from employees where depart_id in (10, 11, 12);
select * from employees where depart_id = 10 or depart_id = 11;
select * from employees where depart_id IS NULL;
select name, hire_date
from employees
where hire_date between '01-JAN-04' and '31-DEC-04';
LIKE 비교연산자
like에 적은 형태와 비교해서 출력하는 연산자.
% : 문자없음 또는 특정 문자를 대체하는 기호.
_ : 문자 1개 대체
ex) LIKE 'a%' => a로 시작하는 문자열
LIKE '%a%' => a가 포함된 문자열
LIKE '%a' => a로 끝나는 문자열
LIKE '_a%' => 두번째가 a인 문자열
LIKE '%a__' => 끝에서 세번째가 a인 문자열
books 테이블에서 book_name의 세번째 글자가 c인 책들을 출력.
select book_name
from books
where book_name like '__c%';
세번째가 C니까 앞의 두글자를 _로 대체하고 세번째 뒤에는 뭐가오든 상관없으니 %를 쓴다.
#월급이 300이상이면서 이름이 M으로 시작하는 사원들 검색
select name, salary
from emps
where salary > 300 and name like 'M%';
<ORDER BY>
ASC(오름차순: 기본), DESC(내림차순)
# 최근 입사일 순서대로 정렬
select name, hire_date
from emps
order by hire_date DESC;
# 부서아이디는 오름차순(작은것부터), 월급은 내림차순(큰것부터) 정렬
select depart_id, salary
from emps
order by depart_id, salary desc;
연습문제
1. employees 테이블로부터 04년도에 입사한 모든 사원의 last_name과 hire_date를 출력.
1. between을 사용하는 방법.
SELECT last_name, hire_date
FROM employees
where hire_date between '01-JAN-04' and '31-DEC-04';
2. like를 사용하는 방법
SELECT last_name, hire_date
FROM employees
where hire_date like '%04';
2. employees 테이블로부터 커미션을 받지 않는 모든 사원의 last_name, salary, commission_pct를 출력 하되
salary를 기준으로 내림차순 정렬.
select last_name, salary, commission_pct
from employees
where commission_pct is null
order by salary desc;
'Database > Oracle' 카테고리의 다른 글
Oracle DB) 데이터 정의어(DDL) - CREATE 테이블 생성, 복사 (0) | 2022.03.15 |
---|---|
Oracle DB) 단일행 함수 - 문자함수(자르기, 연결하기 등등) (0) | 2022.03.02 |
Oracle DB) SELECT 연습 (0) | 2022.03.02 |
Oracle DB) 데이터 조작어(DML)- insert, update, delete (0) | 2022.02.24 |
Oracle DB) SQL Plus 기본 명령어: 컬럼 사이즈 조절, 히스토리 사용 등 (0) | 2021.12.29 |