출처: https://3months.tistory.com/307 [Deep Play]

SQL

레코드 검색

코딩하는 랄뚜기 2022. 2. 3. 14:34

테이블의 모든 행과 열 검색하기

select *
from emp

 

테이블에서 행의 하위 집합 검색하기

select *
from emp
where deptno=10

 

여러 조건을 충족하는 행 찾기

select *
from emp
where deptno=10
	or comm is not null
    or sal<=2000 and deptno=20

OR와 AND를 WHERE 절과 함께 사용한다.

 

테이블에서 열의 하위 집합 검색하기

select ename,deptno,sal
from emp

 

열에 의미 있는 이름 지정하기

select sal as salary, comm as commission
from emp

 

WHERE 절에서 별칭이 지정된 열 참조하기

select *
from(
select sal as salary, comm as commission
from emp
) x
where salary < 5000

별칭 이름을 참조하기 위해서는 from 절에 서브퀴리를 넣어줘야 한다.

FROM절, WHERE절, SELECT절 순으로 판단 된다는 것을 알아두자.

 

열 값 이어 붙이기

여러 열의 값을 하나의 열로 반환하기 위해서는 concat이라는 내장 함수를 사용하도록 한다.(MySQL)

DB2, Oracle, PostgreSQL을 사용하는 경우는 '||' 을 이용하고 그냥 SQL Server는 '+'연산자를 이용한다.

select concat(ename,' WORK AS A ',job) as msg
from emp
where deptno = 10

 

SELECT문에서 조건식 사용하기

select문에서 조건식을 사용하려면 case식을 사용해야 한다.

select ename,sal,
	case when sal <= 2000 then 'UNDERPAID'
		 when sal >= 4000 then 'OVERPAID'
         else 'OK'
	end as status
from emp

CASE 식에서 else절은 선택사항인데, 만약 else 절이 없는 상태에서 조건을 만족하지 않는다면 NULL값을 반환한다.

 

반환되는 행 수 제한하기

from 절에 limit를 사용한다.

select *
from emp limit 5

 

테이블에서 n개의 무작위 레코드 반환하기

select ename,job
from emp
order by rand() limit 5

ORDER BY 절은 함수의 반환값을 받아 결과셋의 순서를 변경하는 데 사용할 수 있다.

 

null 값 찾기

select *
from emp
where comm is null

 

null을 실젯값으로 변환하기

select coalesce(comm,0)
from emp

내장함수 coalesce는 열의 이름과 상수를 변수로 받으면 열의 이름에 값이 null일 경우 상수 값으로 변환시켜준다.

 

패턴 검색하기

select ename, job, deptno
from emp
where deptno in (10,20)
		and (ename like '%I%' or job like '%ER')

WHERE절에 'like + 문자열'을 넣어준다면 조건에 맞는 문자열들만 추려낼 수 있다.

'SQL' 카테고리의 다른 글

쿼리 결과 정렬  (0) 2022.02.05
SQL 고급  (0) 2022.02.02
SQL 기본  (0) 2022.02.01