728x90
반응형
1. 테이블의 모든 행과 열 검색하기
별표(*) 문자는 SQL문에서 특별한 의미를 가진다. *를 사용하면 지정된 테이블의 모든 행이 반환된다.
select * from 테이블명
대화형으로 즉석에서 실행하는 쿼리는 *를 사용하면 좋지만 프로그램 코드를 작성할 때는 각 열을 개별 지정하는게 좋다.
성능은 같지만 쿼리에서 어떤 열을 반환하는지 명확하게 알 수 있으며, 다른 사용자가 이해하기 쉽다.
2. 테이블에서 행의 하위 집합 검색하기
테이블에서 특정 조건을 충족하는 행만 보기 위해서는 WHERE절로 가져올 행을 지정(필터링) 할 수 있다.
select * from emp where deptno = 10
3. 여러 조건을 충족하는 행 찾기
여러 조건을 충족하는 행을 반환하기 위해서는 OR 및 AND절과 함께 WHERE절을 사용하면 된다.
select *
from emp
where deptno = 10
or comm is not null
or sal <= 2000 and deptno = 20
4. 테이블에서 열의 하위 집합 검색하기
# 특정 열의 값 검색
select ename, deptno, sal
from emp
5. 열에 의미 있는 이름 지정하기
# 값을 반환하는 각 컬럼에 이름을 지정
select sal as salary, comm as commission
from emp
6. WHERE 절에서 별칭이 지정된 열 참조하기
select *
from (
select sal as salary, comm as commission
from emp
) x
where salary < 5000
7. 열 값 이어 붙이기
# DB2, Oracle, PostgreSQL
select ename||' Work AS a '||job as msg
from emp
where deptno = 10
# MySQL
select concat(ename, ' Work AS a ',job) as msg
from emp
where deptno = 10
# SQL Server
select ename + ' Work AS a ' + job as msg
from emp
where deptno = 10
8. SELECT 문에서 조건식 사용하기
# CASE 식
select ename, sal,
case when sal <= 2000 then 'UNDERPAID'
when sal >= 4000 then 'OVERPAIL'
else 'OK'
end as status
from emp
9. 반환되는 행 수 제한하기
# DB2 - FETCH FIRST
select *
from emp fetch first 5 rows only
# MySQL & PostgreSQL - LIMIT
select *
from emp limit 5
# Oracle - ROWNUM
select *
from emp
where rownum <= 5
# SQL Server - TOP
select top 5 *
from emp
10. 테이블에서 n개의 무작위 레코드 반환하기
# DB2 - RAND, FETCH
select ename, job
from emp
order by rand() fetch first 5 rows only
# MySQL - RAND, LIMIT
select ename, job
from emp
order by rand() limit 5
# PostgreSQL - RANDOM, LIMIT
select ename, job
from emp
order by random() limit 5
# Oracle - DBMS_RANDOM.VALUE
select *
from (
select ename, job
from emp
order by dbms_random.value()
)
where rownum <= 5
# SQL Server - NEWID, TOP
select top 5 ename, job
from emp
order by newid()
11. null 값 찾기
select *
from emp
where comm is null
12. null을 실제값으로 변환하기
# COALESCE
select coalesce(comm, 0)
from emp
# CASE
select case
when comm is not null then comm
else 0
end
from emp
13. 패턴 검색하기
# LIKE
select ename, job
from emp
where deptno in (10,20)
and (ename like '%I%' or job like '%ER')
2023.09.07 - [💾Database & Server/SQL] - [SQL] SQL Cookbook - 02.쿼리 결과 정렬
reference.
[SQL Cookbook] - 한빛미디어
728x90
반응형
'💾 데이터베이스(Database) > SQL' 카테고리의 다른 글
[SQL] SQL Cookbook - 05. 메타 데이터 쿼리 (0) | 2023.10.04 |
---|---|
[SQL] SQL Cookbook - 04.삽입, 갱신, 삭제 (0) | 2023.09.18 |
[SQL] SQL Cookbook - 03.다중 테이블 작업 (0) | 2023.09.08 |
[SQL] SQL Cookbook - 02.쿼리 결과 정렬 (0) | 2023.09.07 |
[SQL] Join의 종류와 사용법 (0) | 2023.08.29 |