--1.오늘날짜
SELECT SYSDATE FROM DUAL;
--2.사원명이 forz이전인 사원 정보
select * from emp where ename <= 'forz';
--3.급여가 3000이 아닌 사원의 정보
select * from emp where sal!=3000;
select * from emp where sal^=3000;
select * from emp where sal<>3000;
select * from emp where sal not=3000; --오류남!
select * from emp where sal not in (3000,2000,1000); --1000,2000,3000이 아닌 경우
select * from emp where sal not in 1000; --됨
--4. 직책이 MANAGER,SALESMAN,CLERK인 사원 정보
select * from emp where job in('MANAGER','SALESMAN','CLERK');
select * from emp where job='MANAGER' or job='SALESMAN' or job='CLERK';
--5. 직책이 MANAGER,SALESMAN,CLERK이 아닌 사원 정보
SELECT * FROM EMP WHERE NOT (JOB= 'MANAGER' OR JOB='SALESMAN' OR JOB='CLERK');
SELECT * FROM EMP WHERE JOB <> 'MANAGER' AND JOB <>'SALESMAN' AND JOB <>'CLERK';
SELECT * FROM EMP WHERE JOB ^= 'MANAGER' AND JOB ^= 'SALESMAN' AND JOB ^= 'CLERK';
--6.급여가 2000~3000 사이인 사원정보
SELECT * FROM EMP WHERE SAL>=2000 AND SAL<=3000;
SELECT * FROM EMP WHERE SAL BETWEEN 2000 AND 3000;
--7. 급여가 2000~3000이 아닌 사원 정보
SELECT * FROM EMP WHERE SAL<2000 OR SAL>3000;
--7.2 급여가 2000~3000이 아닌 사원 정보(BETWEEN A AND B)
SELECT * FROM EMP WHERE SAL NOT BETWEEN 2000 AND 3000;
--8. 이름이 S로 시작하는 사원 정보(%:ZERO OR MORE)
SELECT * FROM EMP WHERE ENAME LIKE'S%';
--9.이름이 T로 끝나는 사원정보
SELECT * FROM EMP WHERE ENAME LIKE'%T';
--10.이름에 AM이 들어가 있는 사원정보
SELECT * FROM EMP WHERE ENAME LIKE '%AM%';
--11. 이름의 두번째 글자가 L인 사원정보 (_:글자 한 자 의미)
SELECT * FROM EMP WHERE ENAME LIKE '_L%';
--12. 사원의 이름,급여,연봉(급여*12+보너스)을 ANNSAL제목으로
SELECT ENAME,SAL,SAL*12+NVL(COMM,0) AS ANNSAL FROM EMP;
--13.보너스가 안정해진 사원정보 = COMM이 NULL인 사람 {=NULL (X)}
SELECT * FROM EMP WHERE COMM IS NULL;
--14.보너스가 정해진 사원 정보
SELECT * FROM EMP WHERE COMM IS NOT NULL;
--15.보너스를 받는 사원정보 COMM가 0보다 큰 사원
SELECT * FROM EMP WHERE COMM>0;
--16.관리자가 없는 사원= MGR이 NULL인 사원
SELECT * FROM EMP WHERE MGR IS NULL;
--17.관리자가 있는 사원
SELECT * FROM EMP WHERE MGR IS NOT NULL;
--18. 급여를 받으며 보너스가 안 정해진 사원
SELECT * FROM EMP WHERE SAL>0 AND COMM IS NULL;
SELECT * FROM EMP WHERE SAL>NULL AND COMM IS NULL;--(X) NULL값은 안정해졌기 때문에 안됨
--19.부서번호 10번,20번의 사원 번호,이름 급여 부서번호
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO IN(10,20);
--19.2. OR사용
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO=10 OR DEPTNO=20;
--19.3 UNION사용
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO= 10 UNION
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO= 20;
--20. 속성의 갯수가 달라서 수행X
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO= 10 UNION
SELECT EMPNO,ENAME,SAL FROM EMP WHERE DEPTNO= 20;
--21.해당되는 자료형이 달라서 오류 뜸
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO= 10 UNION
SELECT ENAME,EMPNO,SAL FROM EMP WHERE DEPTNO= 20;
--22.자료형이 같아서 결과값은 나오나 값의 의미가 혼동됨
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO= 10 UNION
SELECT SAL,JOB,DEPTNO,SAL FROM EMP WHERE DEPTNO= 20;
--23. UNION ALL은 중복 허용, UNION 중복 허용 안함
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO= 10 UNION ALL
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO= 20;
--24. 전체 사원 중 10번 부서 제외한 사원의 사번, 이름, 급여,부서번호
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO NOT IN 10;
--25.MINUS이용
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP MINUS
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO =10;
--26.사원의 부서번호가 20번이고 직책이 SALESMAN인 사원의 사번, 이름, 직책,급여, 부서번호
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP WHERE DEPTNO=20 AND JOB='SALESMAN';
==> 테이블 값이 안나오는게 맞음
--27.부서가 20,30번이고 급여가 2000초과인 사원의 번호, 이름, 직책, 급여 부서번호
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP WHERE DEPTNO IN(20,30) AND SAL>2000;
--27.2 UNION사용하기
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP WHERE DEPTNO =20 AND SAL>2000;
union SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP WHERE DEPTNO =30 AND SAL>2000;
--28.급여가 2000미만 3000초과인 사원정보
SELECT * FROM EMP WHERE SAL<2000 OR SAL>3000;
--29. 30번 부서에서 이름에 E가 들어있고 급여가 1000~2000 사이가 아닌 사원이름,사번,급여,부서번호
SELECT ENAME,EMPNO,SAL,DEPTNO FROM EMP WHERE DEPTNO=30 AND ENAME LIKE '%E%' AND
SAL not BETWEEN 1000 and 2000;
--30.보너스가 안정해져있고 관리자가 있으며 직책이 MANAGER,CLERK이고
--이름의 두번째 글자가 L이 아닌 사원정보
SELECT * FROM EMP WHERE COMM IS NULL AND MGR IS NOT NULL
AND JOB in('MANAGER','CLERK') AND ENAME NOT LIKE '_L%';
'Coding > 데이터베이스' 카테고리의 다른 글
[오라클] 그룹화 관련된 여러 함수 group / cube / grouping sets/ grouping : rollup,cube/ grouping_id: rollup,cube 예제 (0) | 2022.04.11 |
---|---|
[오라클] 다중행 함수와 데이터 그룹화 예제 (0) | 2022.04.04 |
[오라클] 복습예제2 LENGTH/CASE ~WHEN~ THEN/SUBSTR (0) | 2022.04.04 |
[오라클] DECODE 예제 (0) | 2022.03.28 |
[데이터베이스 ] 6장 예제 (0) | 2022.03.21 |