M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4

De wikiserver
Dreceres ràpides: navegació, cerca

1. Fes una consulta per mostrar el nom, número de departament i nom de departament de tots els empleats.

SELECT ename, deptno, dname
FROM emp NATURAL JOIN dept;

2. Mostra els oficis diferents que hi ha al departament 30.

SELECT distinct e.job, d.loc
FROM emp e NATURAL JOIN dept d
WHERE deptno=30;

3. Fes una consulta per mostrar el nom de l'empleat, nom del departament i localitat de tots els empleats que tenen comissió.

SELECT e.ename, d.dname, d.loc
FROM emp e NATURAL JOIN dept d
WHERE e.comm IS NOT NULL;

4. Mostra el nom de l'empleat i nom del departament de tots els empleats que tenen una A en el seu nom. Guarda la sentència SQL en un fitxer anomenat p4q4.sql.

SELECT e.ename, d.dname
FROM emp e NATURAL JOIN dept d
WHERE e.ename LIKE '%A%;

5. Fes una consulta per mostrar el nom, ofici, número del departament i nom del departament de tots els empleats que treballen a DALLAS.

SELECT e.ename, e.job, deptno, d.dname
FROM emp e JOIN dept d USING(deptno)
WHERE upper(d.loc) = 'DALLAS';

6. Mostra el nom de l'empleat i el número del empleat juntament amb el nom dels seus caps i el número del seu cap. Etiqueta les columnes com Employee, Emp#, Manager i Mgr#, respectivament. Guarda la sentència SQL en un fitxer anomenat p4q6.sql.

SELECT e.ename "Employee", e.empno "Emp#", j.ename "Manager", j.empno "Mgr#"
FROM emp e JOIN emp j ON e.mgr = j.empno;

7. Modifica p4q6.sql per mostrar tots els empleats incloent a King, que no té cap. Torna a guardar la consulta com p4q7.sql. Executa la consulta.

SELECT e.ename "Employee", e.empno "Emp#", j.ename "Manager", j.empno "Mgr#"
FROM emp e LEFT OUTER JOIN emp j ON e.mgr = j.empno;

8. Fes una consulta que mostri el nom de l'empleat, número del departament juntament amb el nom dels seus companys de departament. Poseu etiquetes apropiades.

SELECT e.deptno DEPARTAMENT, e.ename EMPLOYEE, c.ename COLLEAGUE
FROM emp e JOIN emp c ON e.deptno = c.deptno
WHERE e.empno <> c.empno;

9. Mostra l'estructura de la taula SALGRADE. Crea una consulta que mostri el nom, ofici, nom del departament, salari i grau de tots els empleats.

SELECT e.ename, e.job, d.dname, e.sal, s.grade
FROM emp e JOIN dept d ON  e.deptno = d.deptno 
     JOIN salgrade s ON  e.sal BETWEEN s.losal AND s.hisal;

10. Fes una consulta per mostrar el nom i data de contractació de qualsevol empleat contractat desprès de Blake.

SELECT e.ename, e.hiredate
FROM emp e JOIN emp b ON  b.ename = 'BLAKE'
WHERE e.hiredate > b.hiredate;

11. Mostra tots els noms dels empleats i les dates de contractació juntament amb el nom dels seus caps i dates de contractació de tots els empleats contractats abans que els seus caps. Etiquet les columnes com Employee. Emp Hiredate, Manager i Mgr respectivament.

SELECT e.ename "Employee", e.hiredate "Emp Hiredate", j.ename "Manager", j.hiredate "Mgr Hiredate"
FROM emp e JOIN emp j ON e.mgr = j.empno
WHERE e.hiredate < j.hiredate;

12. Fes una consulta que mostri els noms dels empleats i el salari mitjançant asteriscs. Cada asterisc significa un centenar de dòlars. Ordena les dades en ordre descendent per salari. Mostra el resultat en una sola columna, amb l'etiqueta EMPLOYEE_AND_THEIR_SALARIES.

SELECT rpad(ename,10,' ') || LPAD(' ',trunc (sal / 100) + 1,'*') EMPLOYEE_AND_THEIR_SALARIS
FROM emp
ORDER BY sal DESC;