select ename, deptno, sal*12 ansal from emp where ename=(uppper(scott)) order by sal;
deptno=10 or sal>=2000 or deptno < 30 or
alter session set nls_date_format='DD-MON-YY';
alter session set nls_date_format='DD-MON-RR';
--날짜표시변경
RR형식
2006
50-99 이전세기
00-49 현재세기
1998
50-99 현재세기
00-49 다음세기
YY형식
현재세기
ex1:
select empno, ename, job, sal from emp where sal>=3000;
ex2:
select empno, ename, job, sal, deptno from emp where job='MANAGER';
ex3:
select empno, ename, job, sal, hiredate, deptno from emp where hiredate>'01-jan-82';
ex4:
select ename, job, sal, deptno from emp where sal>1250 and sal<=1500;
ex5:
select empno, ename, job, sal, hiredate from emp where empno=7902 or empno=7788 or empno=7566;
select empno, ename, job, sal, hiredate from emp where empno IN (7902, 7788, 7566);
ex6:
select empno, ename, job, sal, hiredate, deptno from emp where hiredate like '82%';
select empno, ename, job, sal, hiredate, deptno from emp where TO_CHAR(hiredate,'rr')='82';
ex7:
select empno, ename, job, sal, comm, deptno from emp where comm is Null;
ex8:
select empno, ename, job, sal, hiredate, deptno from emp where sal>=1100 and job='MANAGER';
ex9:
select empno, ename, job, sal, hiredate, deptno from emp where sal>=1100 or job='MANAGER';
ex10:
select empno, ename, job, sal, deptno from emp where NOT job IN('MANAGER','CLERK','ANALYST');
ex11:
select empno, ename, job, sal from emp where sal>=1500 or job='MANAGER';
ex12:
select empno, ename, job, sal from emp where job='PRESIDENT' or (sal>=1500 and job='SALESMAN');
select empno, ename, job, sal from emp where ename like 'S%'; 처음에 S가 나옴
ename like '%S'; 끝에 S가 나옴
ename like '%S%'; S가 나옴
ename like '_S%'; 두번째에 S가 나옴
select empno, ename, job, sal, hiredate, deptno from emp where substr(hiredate,1,2)=82;
select empno, ename, job, sal, hiredate, deptno from emp where hiredate between '82-01-01' and '82-12-31';
A 가 B보다 작아야함
날짜 형식 RR-MM-DD
ex13:
select hiredate, empno, ename, job, sal, deptno from emp order by hiredate;
ex14:
select hiredate, empno, ename, job, sal, deptno from emp order by hiredate DESC;
ex15:
select deptno, sal, empno, ename, job from emp order by sal DESC;
ex16:
select deptno, job, sal, empno, hiredate from emp order by deptno, job, sal;
연습문제
1. WHERE 절에 HIREDATE 의 비교를 '23-JAN-82' 가 아닌 '23-jan-82'로 기술하면 결과는?
SQL> SELECT * FROM emp WHERE hiredate = '23-JAN-82';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7934 MILLER CLERK 7782 23-JAN-82 1300 10
SQL> SELECT * FROM emp WHERE hiredate = '23-jan-82';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7934 MILLER CLERK 7782 23-JAN-82 1300 10
차이없음
2.EMP 테이블에서 급여가 3000 이상인 사원의 정보를 사원번호, 이름, 담당업무, 급여를 출력하는 SELECT 문장을 작성하시오.
select empno, ename, job, sal from emp where sal>= 3000;
SQL> select empno, ename, job, sal from emp where sal>= 3000;
EMPNO ENAME JOB SAL
---------- ---------- --------- ----------
7788 SCOTT ANALYST 3000
7839 KING PRESIDENT 5000
7902 FORD ANALYST 3000
3.EMP 테이블에서 사원번호가 7788인 사원의 이름과 부서번호를 출력하는 SELECT 문장을 작성하시오.
SQL> select ename, deptno from emp where empno=7788;
ENAME DEPTNO
---------- ----------
SCOTT 20
4.EMP 테이블에서 입사일이 February 20, 1981 과 May 1, 1981 사이에 입사한 사원의 이름 업무 입사일을 출력하는 SELECT문장을 작성하시오, 단 입사일 순으로 출력하시오.
SQL> select ename, job, hiredate from emp where hiredate between '20-Feb-81' and '01-May-81' order by hiredate;
ENAME JOB HIREDATE
---------- --------- ---------
ALLEN SALESMAN 20-FEB-81
WARD SALESMAN 22-FEB-81
JONES MANAGER 02-APR-81
BLAKE MANAGER 01-MAY-81
5.EMP 테이블에서 부서번호가 10, 20 인 사원의 모든 정보를 출력하는 SELECT 문장을 작성하시오. 단 이름순으로 정렬하여라.
SQL> select * from emp where deptno IN(10,20) order by ename;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7566 JONES MANAGER 7839 02-APR-81 2975 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7934 MILLER CLERK 7782 23-JAN-82 1300 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7369 SMITH CLERK 7902 17-DEC-80 800 20
8 개의 행이 선택되었습니다.
6.EMP 테이블에서 급여가 1500 이상이고 부서번호가 10, 30 인 사원의 이름과 급여를 출력하는 SELECT 문장을 작성하여라. 단 HEADING을 Emplyee과 Monthly Salary 로 출력하여라.
SQL> select ename as Employee, sal as "Monthly Salary" from emp where sal >= 1500 and deptno IN(10,30);
EMPLOYEE Monthly Salary
---------- --------------
ALLEN 1600
BLAKE 2850
CLARK 2450
KING 5000
TURNER 1500
7.EMP 테이블에서 1982년에 입사한 사원의 모든 정보를 출력하는 SELECT 문을 작성하여라.
SQL> select * from emp where hiredate like '%82';
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7934 MILLER CLERK 7782 23-JAN-82 1300 10
8.EMP 테이블에서 COMM 에 NULL 이 아닌 사원의 모든 정보를 출력하는 SELECT 문을 작성하여라.
select * from emp where comm IS NOT NULL;
SQL> select * from emp where comm IS NOT NULL;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
9.EMP 테이블에서 보너스가 급여보다 10% 많은 모든 종업원에 대하여 이름, 급여, 보너스를 출력하는 SELECT문을 작성하여라.
SQL> select ename, sal, comm from emp where comm<sal*1.1;
ENAME SAL COMM
---------- ---------- ----------
MARTIN 1250 1400
10.EMP 테이블에서 업무가 CLERK 이거나 Analyst 이고 급여가 1000, 3000, 5000 이 아닌 모든 사원의 정보를 출력하는 SELECT문을 작성하여라.
SQL> select * from emp where job IN('CLERK','ANALYST') and sal NOT IN (1000,3000,5000);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7934 MILLER CLERK 7782 23-JAN-82 1300 10
11.EMP 테이블에서 이름에 L 이 두 자가 있고 부서가 30 이거나 또는 관리자가 7782 인 모든 사원 정보를 출력하는 SELECT 문을 작성하여라.
SQL> select * from emp where (ename like '%L%L%' and deptno=30) or mgr=7782;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7934 MILLER CLERK 7782 23-JAN-82 1300 10