Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Spring
- autowired
- HTML
- Servlet
- model1
- JSP
- AWS
- jQuery
- phaser
- SQL
- express
- websocket
- JavaScript
- tiles.xml
- 도커
- Cookie
- 웹소켓
- PL/SQL
- node.js
- CSS
- 웹게임
- 비트코인
- Ajax
- 암호화
- 블록체인
- docker
- 배포
- EC2
- 알고리즘
- RDS
Archives
- Today
- Total
記錄
SQL) 유용하지만 사소한 문법 정리 본문
desc table_name;
-- table 정보 보기
select ename, comm, nvl(comm,0)
from emp;
-- nvl(a, b) => a가 null 이라면 b로 처리
select 95.456789, round(95.9), trunc(95.9)
from dual;
-- round(a,b) => a를 b+1 째자리에서 반올림
-- trunc(a,b) => a를 b+1 부터 버림
select mod(10,3)
from dual;
-- mod(a,b) => a를 b로 나눈 나머지를 반환
select ename, deptno,
decode(deptno, 10, 'a',
20, 'b',
30, 'c',
40, 'd')
from emp;
-- decode(a, var1, var2, var3, var4) => a가 var1일 경우 var2 반환 / var3일 경우 var4 반환
select ename, deptno,
case when deptno=10 then 'a'
when deptno=20 then 'b'
when deptno=30 then 'c'
when deptno=40 then 'd'
else 'defalut'
end as dname
from emp;
-- case 함수이고 설명이 딱히 필요가 없다
select e.ename, m.ename
from emp e, emp m
where e.mgr = m.empno(+);
-- EQUI JOIN이 아니라 OUTER JOIN을 하고 싶을 때에 (+)를 사용
-- NULL 이 나와도 상관이 없는 조건에 (+)를 건다
select e.ename, m.ename
from emp e left outer join emp m
on e.mgr = m.empno;
-- 위 EQUI JOIN과 같은 결과를 반환
-- OUTER JOIN은 간단하다
-- 1) NULL 을 허용한다
-- 2) LEFT 혹은 RIGHT가 기준이 되어 반대편에 NULL을 허용한다
select e.ename
from emp e
where EXISTS (SELECT mgr
from emp m
where e.mgr = m.empno);
-- EXISTS 는 오직 서브쿼리에서만 사용할 수 있다
-- IN은 데이터까지 확인하는 반면 EXISTS는 ROW의 존재 유무까지만 확인한다
-- 주의할 사실은 반환되는 ROW의 존재를 보는 것이지
-- ROW의 데이터가 NULL 인지 아닌지는 중요치 않다는 것!
'Computer language > SQL' 카테고리의 다른 글
PL /SQL) TRIGGER(트리거) (0) | 2018.05.17 |
---|---|
PL /SQL) PROCEDURE(프로시저) (0) | 2018.05.16 |
PL /SQL) CURSOR(커서) (0) | 2018.05.15 |
PL /SQL) 기본 (0) | 2018.05.15 |
SQL) 예제 50문 (0) | 2018.05.02 |
Comments