oracle 데이터베이스 연습문제 3

3014 단어
1. scott/tiger 사용자의 emp 테이블과 dept 테이블을 사용하여 다음 연습을 완성합니다. 테이블의 구조 설명은 다음과 같습니다.
emp직원표(empno직원번호/ename직원이름/job업무/mgr상급번호/hiredate고용일자/sal급여/comm커미션/deptno부서번호)
dept 부서표 (deptno 부서 번호/dname 부서 이름/loc 지점)
임금=임금+커미션
연습 문제 해결:
 --1.	              、           。
SELECT "COUNT"(DEPTNO),"TRUNC"("AVG"(SAL+"NVL"(COMM,0))),"TRUNC"("AVG"(SYSDATE-HIREDATE))
FROM EMP
GROUP  BY DEPTNO;
--2.	         、       。 
SELECT e.ENAME,d.DNAME,e.SAL+"NVL"(e.COMM,0) 
FROM EMP e,DEPT d
WHERE e.DEPTNO=d.DEPTNO;
--3.	                        。--YET
SELECT distinct a.ename,a.job,a.deptno
FROM EMP A,EMP B
WHERE A.DEPTNO<>B.DEPTNO AND A."JOB"=B."JOB";
--4.	                。 [*]
SELECT DEPT.*,(SELECT "COUNT"(*)
FROM EMP
WHERE DEPT.DEPTNO=EMP.DEPTNO) AS NUM
FROM DEPT;
--5.	           。
SELECT JOB,"MIN"(SAL+"NVL"(COMM,0))
FROM EMP
GROUP BY "JOB";
--6.	       MANAGER(  )     。
SELECT "MIN"(SAL)
FROM EMP
WHERE "JOB"='MANAGER'
GROUP BY DEPTNO;
--7.	          ,         。
SELECT ENAME,(SAL+"NVL"(COMM,0))*12 YEARSAL
FROM EMP
ORDER BY YEARSAL ASC;
--8.	         
SELECT DISTINCT A.ENAME,A.SAL
FROM EMP A,EMP B
WHERE A.SAL+"NVL"(A.COMM,0)=B.SAL+"NVL"(B.COMM,0) AND A.EMPNO<>B.EMPNO;
--9.	              。
SELECT DEPTNO
FROM EMP
GROUP BY DEPTNO
HAVING "COUNT"(DEPTNO)>=1;
--10.	     “SMITH”      。
SELECT EMPNO,ENAME,SAL
FROM EMP
WHERE  SAL>(SELECT SAL FROM EMP WHERE ENAME='SMITH');
--11.	                  。
SELECT A.ENAME,B.ENAME
FROM EMP A LEFT JOIN EMP B
ON B.EMPNO=A.MGR;
--12.	                  。
SELECT A.ENAME
FROM EMP A LEFT JOIN EMP B
ON B.EMPNO=A.MGR
WHERE A.HIREDATE1500;
--15.	     “SALES”(   )        ,              。 
SELECT E.ENAME
FROM EMP E,DEPT D
WHERE D.DNAME='SALES' AND E.DEPTNO=D.DEPTNO;
--16.	                 。
SELECT EMPNO,ENAME,SAL
FROM EMP
WHERE SAL>(SELECT "SUM"(SAL)/"COUNT"(SAL) FROM EMP);
--17.	   “SCOTT”           。    
SELECT EMPNO,ENAME
FROM EMP
WHERE "JOB"=(SELECT "JOB" FROM EMP WHERE ENAME='SCOTT') AND ENAME!='SCOTT';
--18.	        30                 。   
SELECT ENAME,SAL
FROM EMP
WHERE SAL IN
(SELECT SAL FROM EMP WHERE DEPTNO=30);
--19.	         30                  。
SELECT ENAME,SAL
FROM EMP
WHERE SAL>
(SELECT "MIN"(SAL) FROM EMP WHERE DEPTNO=30);
--20.    “SCOTT”             add_months(sysdate,3) 
SELECT ENAME
FROM EMP
WHERE HIREDATE<
(SELECT "ADD_MONTHS"(HIREDATE,-2)FROM EMP WHERE ENAME='SCOTT');

총괄: 많은 함수들이 접촉하지 않아서 많은 시간을 들여서야 만들어졌다.예를 들어 첫 번째 임금은 그 중의COMM 속성에 NULL 파라미터가 함유되어 있고 간단하게 덧붙일 때 데이터를 NULL로 변하여 풀 수 없다. NVL() 함수, NVL(expr1,expr2)이 있고 [기능]expr1이 NULL이면 expr2로 돌아간다.expr1이 NULL이 아닌 경우 expr1로 돌아갑니다.양자의 유형이 일치해야 한다는 것을 주의해라.

좋은 웹페이지 즐겨찾기