Database/Oracle

OracleDB) SELECT문과 WHERE, ORDER BY

luana_eun 2022. 3. 2. 16:39
728x90

<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;
728x90