https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=nannayabyc&logNo=220142618110
여기 링크보고 실습 중

select empno, ename, sal, deptno from emp;
기본적인 select from문
select [열] from [테이블] where [조건]

select ename, sal, nvl(comm, 0) as comm, sal+nvl(comm, 0) as total from emp order by total desc;
NVL 함수: 값이 null인 경우 지정값
NVL("값", "지정값")
별명 설정
[열] as [별명] [열] [별명]
내림차순 정렬
order by [열] [acs/desc] - 기본이 acs(오름차순)

select ename, sal, sal*0.13 "보너스 금액", deptno from emp where deptno=10

select ename, sal, sal*0.15 "회비" from emp
where sal>=1500 and sal<=3000
반올림
round(수치, 자릿수) - 자릿수까지 수치를 반올림한다.

select deptno, ename, hiredate, sysdate "현재일" , trunc(sysdate-hiredate) "근무일수",
floor(trunc(sysdate-hiredate)/365) "근무년수", floor(trunc(sysdate-hiredate)/30) "근무월수",
floor(trunc(sysdate-hiredate)/7) "근무주수"
from emp
현재일
sysdate / current_date * 보통 간결한 sysdate를 주로 쓴다. * +/- 연산자로 이전, 이후 날짜를 나타낼 수 있다. * 1일을 초로 바꾸면 86400초이다. sysdate는 명령 단위가 1일이므로, 1/86400 값은 1초이다. 1. 1초 = 1/86400 2. 1분 = 1/86400 * 60 3. 1시간 = 1/86400 * 60 * 60 4. 1일 = 1/86400 * 60 * 60 * 24
소수점 버리기
trunc(수치, 자릿수) - 자릿수만큼 남긴다.
반내림
floor(값, 자릿수)

select ename, hiredate, hiredate+90 "90일 후", sal from emp

select deptno, ename, last_day(hiredate)-hiredate "근무 일수" from emp;
지정한 특정 월의 마지막 날짜 구하기
last_day(기준일자) - 해당 일시의 마지막 날짜를 구한다.

select ename, hiredate "입사일",
to_char(next_day(hiredate+60, 2) , 'yyyy/mm/dd') "60일 이후 월요일" from emp
날짜를 문자로 바꾸기
to_char(날짜, [날짜형식]) - yyyy mm dd hh mi ss
지정일 이후 날짜 구하기
next_day(기준일자, 요일문자열(혹은 번호)) - 일월화수목금토(요일) 혹은 1(일) ~ 7(토)

select lower(substr(ename,1,3)) "이름" from emp where length(ename)>=6
대문자로 변경
upper(문자열)
소문자로 변경
lower(문자열)
문자열의 일부 구하기
substr(문자열, 시작위치, 개수) - 시작위치부터 개수만큼 문자열을 자른다. 개수를 지정하지 않을 경우 문자열 끝까지 취득
문자열 길이 구하기
length(문자열)

select upper(substr(ename,1,3)) "이름", lower(job) "직무", deptno from emp

select concat(ename, deptno) "연결예제" from emp
문자열 합치기
concat(문자열1, 문자열2) concat(문자열1 || 문자열2 || ... || 문자열n) 문자열1||문자열2

select ename, length(ename) "길이" from emp
where job like 'SAL%'
포함된 문자 구하기
like %: 글자수와 상관 없이 검색 _: 한 문자를 대체하여 검색

select ename, substr(job,1,3) "직무" from emp
where ename like '_A%'

select next_day(sysdate-7, '월') "7일전", next_day(sysdate+7,2) "7일후",
next_day(sysdate+30, '월요일') "30일후" from emp

select deptno, ename, to_char(sal, 'L9,999,999') "급여" from emp where job = 'CLERK'
단위 나타내기
to_char(수치, [수치형식]) - 999,999: 콤마 표시 - 999.99: 소수점 표시 - $: 미국식 화폐 표시 - L: 한국식 화폐 표시 - S: 양수, 음수 값 표시

select empno, sal, nvl(comm,0) "커미션", ((nvl(comm,0)+sal)*12) "연봉"
from emp
order by "연봉" desc
비교 값에 따라 나타내기
decode(기준값, 비교값, 해당값, 미해당값)
select ename, add_months(hiredate, 6) "6개월 후" from emp
개월 수 더하기
add_months(기준일, 개월수) - 음수일 경우 해당개월 전을 구한다

select ename, sal, decode(comm, null, 'No Commission', comm) "커미션" from emp
order by comm

select ename, job, sal, (decode(job, 'CLERK', 0.2, 'SALESMAN', 0.15,
'ANALYST', 0.1, 'MANAGER', 0.05, 'PRESIDENT', 0) * sal) + sal "인상 후" from emp

select to_char(hiredate, 'yyyy') "입사년도", to_char(hiredate, 'mm') "입사달"
from emp

select * from emp where mod(empno, 2) = 0