0% found this document useful (0 votes)
2 views

SQL Practice Problem1 Sol

The document contains a series of SQL exercises and their solutions related to database systems, specifically focusing on employee (EMP), department (DEPT), and salary grade (SALGRADE) tables. Each exercise includes various SQL queries that demonstrate data retrieval, filtering, aggregation, and joining techniques. The exercises are structured to enhance understanding of SQL operations within the context of a database management course.

Uploaded by

tfaizanvr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

SQL Practice Problem1 Sol

The document contains a series of SQL exercises and their solutions related to database systems, specifically focusing on employee (EMP), department (DEPT), and salary grade (SALGRADE) tables. Each exercise includes various SQL queries that demonstrate data retrieval, filtering, aggregation, and joining techniques. The exercises are structured to enhance understanding of SQL operations within the context of a database management course.

Uploaded by

tfaizanvr
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

National University of Computer and Emerging Sciences, Lahore Campus

Course: Database Systems


Program: BS(Computer Science)
Instructor: Muhammad Ishaq Raza

Practice Problem: SQL (1) - SOLUTION

EMP (Empno, Ename, Job, Mgr, Hiredate, Sal, Comm, Deptno)


DEPT (Deptno, Dname, Loc)
SALGRADE (Grade, LoSal, HiSal)

Exercise 1

1. SELECT * FROM SALGRADE;

2. SELECT * FROM EMP;

3. SELECT * FROM EMP


WHERE SAL BETWEEN 1000 AND 2000;

4. SELECT DEPTNO, DNAME FROM DEPT


ORDER BY DNAME;

5. SELECT DISTINCT JOB FROM EMP;

6. SELECT * FROM EMP


WHERE DEPTNO = 10 OR DEPTNO = 20
ORDER BY ENAME;

7. SELECT ENAME, JOB FROM EMP


WHERE DEPTNO = 20 AND UPPER(JOB) = ‘CLERK’;

8. SELECT ENAME FROM EMP


WHERE ENAME LIKE ‘%TH%’ OR ENAME LIKE ‘%LL%’;

9. SELECT * FROM EMP


WHERE MGR IS NOT NULL;

10. SELECT ENAME, ISNULL(SAL,0) + ISNULL(COMM,0) AS “Remuneration”


FROM EMP;

11. SELECT * FROM EMP


WHERE YEAR(HIREDATE) = ‘1983’;

12. SELECT ENAME, SAL * 12 “Annual Salary”, COMM


FROM EMP
WHERE UPPER(JOB)=’SALESMAN’ AND SAL > ISNULL(COMM,0)
ORDER BY SAL DESC;

13. SELECT * FROM EMP ORDER BY MGR;


Exercise 2

1. SELECT ENAME, ROUND(SAL*1.15) AS INC_SAL FROM EMP;

2. SELECT ENAME, HIREDATE FROM EMP


WHERE DEPTNO=20;

3. SELECT ENAME, HIREDATE, DATEADD(YEAR, 1, HIREDATE) AS REVIEWDATE


FROM EMP ORDER BY DATEADD(YEAR, 1, HIREDATE);

4. (SELECT EMPNO, ENAME, 'Below 1500' AS SALARY


FROM EMP WHERE SAL < 1500)
UNION
(SELECT EMPNO, ENAME, 'On Target'
FROM EMP WHERE SAL = 1500)
UNION
(SELECT EMPNO, ENAME, CONVERT(VARCHAR, SAL)
FROM EMP WHERE SAL > 1500);

5. SELECT DATENAME(DW, HIREDATE)


FROM EMP;

6. SELECT ENAME, HIREDATE,


NEXT_DAY(LAST_DAY(ROUND(HIREDATE,’MONTH’))-7,’FRIDAY’) AS PAYDATE
FROM EMP ORDER BY HIREDATE;

7. SELECT EMPNO, ENAME,


ROUND(MONTHS_BETWEEN(SYSDATE, HIREDATE)) || ‘ months’ AS TIMELEN
FROM EMP;

Exercise 3

1. SELECT MIN(SAL) FROM EMP;

2. SELECT MIN(SAL), MAX(SAL), AVG(SAL) FROM EMP;

3. SELECT JOB, MIN(SAL), MAX(SAL)


FROM EMP GROUP BY JOB;

4. SELECT COUNT(DISTINCT MGR) FROM EMP;

5. SELECT JOB, AVG(SAL), AVG(SAL+ISNULL(COMM,0)) AS “AVG(RENUMERATION)”


FROM EMP GROUP BY JOB;

6. SELECT MAX(SAL) – MIN(SAL) FROM EMP;

7. SELECT DNAME FROM EMP, DEPT


WHERE EMP.DEPTNO = DEPT.DEPTNO
GROUP BY DNAME
HAVING COUNT(EMPNO) > 3;

8. SELECT DECODE(COUNT(EMPNO) - COUNT(DISTINCT EMPNO), 0, ‘Unique’, ‘Not Unique’)


FROM EMP;

9. SELECT MGR, EMPNO, ENAME, SAL


FROM EMP
WHERE (MGR,SAL) IN (SELECT MGR, MIN(SAL)
FROM EMP GROUP BY MGR
HAVING MIN(SAL) >= 1000 );
Exercise 4

1. SELECT ENAME, DNAME


FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO
ORDER BY DNAME;

2. SELECT ENAME, EMP.DEPTNO, DNAME


FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO

3. SELECT ENAME, LOC, DNAME


FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO
WHERE SAL > 1500;

4. SELECT EMPNO, ENAME, GRADE


FROM EMP JOIN SALGRADE ON SAL BETWEEN LOSAL AND HISAL;

5. SELECT EMPNO, ENAME


FROM EMP JOIN SALGRADE ON SAL BETWEEN LOSAL AND HISAL
WHERE GRADE = 3;

6. SELECT EMPNO, ENAME


FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO
WHERE UPPER(LOC) = ‘DALLAS’;

7. SELECT ENAME, JOB, SAL, GRADE, DNAME


FROM EMP JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO JOIN SALGRADE ON SAL
BETWEEN LOSAL AND HISAL
WHERE UPPER(JOB) <> ‘CLERK’
ORDER BY SAL DESC;

8. SELECT * FROM DEPT


WHERE DEPTNO NOT IN ( SELECT DISTINCT DEPTNO FROM EMP );

9. SELECT E.EMPNO EmpNo, E.ENAME EmpName,


M.EMPNO MgrNo, M.ENAME MgrName
FROM EMP E JOIN EMP M ON E.MGR = M.EMPNO;

10. SELECT E.EMPNO EmpNo, E.ENAME EmpName,


M.EMPNO MgrNo, M.ENAME MgrName
FROM EMP E RIGHT JOIN EMP M ON E.MGR = M.EMPNO;

11. SELECT DISTINCT E1.JOB JOB


FROM EMP E1 JOIN EMP E2 ON E1.JOB = E2.JOB
WHERE MONTHS_BETWEEN(E1.HIREDATE, ‘01-JAN-1983’) < 6
AND MONTHS_BETWEEN(E2.HIREDATE, ‘01-JAN-1984’) < 6;

12. SELECT E.EMPNO, E.ENAME


FROM EMP E JOIN EMP M ON E.MGR = M.EMPNO AND E.HIREDATE < M.HIREDATE;
Exercise 5

1. SELECT ENAME, HIREDATE FROM EMP


WHERE ENAME <> ‘Blake’
AND DEPTNO IN ( SELECT DEPTNO FROM EMP
WHERE UPPER(ENAME) = ‘BLAKE’);

2. SELECT EMPNO, ENAME FROM EMP


WHERE SAL > ( SELECT AVG(SAL) FROM EMP )
ORDER BY SAL DESC;

3. SELECT EMPNO, ENAME FROM EMP


WHERE DEPTNO IN ( SELECT DISTINCT DEPTNO
FROM EMP WHERE ENAME LIKE ‘%T%’ );

4. SELECT ENAME, DEPTNO, JOB FROM EMP


WHERE DEPTNO IN ( SELECT DEPTNO FROM DEPT WHERE UPPER(LOC)=’DALLAS’ );

5. SELECT ENAME, SAL FROM EMP


WHERE MGR IN ( SELECT EMPNO FROM EMP
WHERE LOWER(ENAME) = ‘king’ );

6. SELECT DEPTNO, ENAME, JOB FROM EMP


WHERE DEPTNO = ( SELECT DEPTNO FROM DEPT WHERE DNAME = ‘SALES’ );

7. SELECT ENAME, DEPTNO, SAL FROM EMP


WHERE (DEPTNO, SAL) IN ( SELECT DEPTNO, SAL FROM EMP
WHERE COMM IS NOT NULL );

8. SELECT ENAME, DEPTNO, SAL FROM EMP


WHERE (SAL, COMM) IN ( SELECT SAL, COMM FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND UPPER(LOC) = ‘DALLAS’ );

9. SELECT ENAME, HIREDATE, SAL FROM EMP


WHERE (SAL, COMM) IN ( SELECT SAL, COMM FROM EMP
WHERE LOWER(ENAME) = ‘scott’ );

10. SELECT * FROM EMP


WHERE SAL > ALL ( SELECT DISTINCT SAL FROM EMP WHERE JOB=’CLERK’ )
ORDER BY SAL DESC;

You might also like