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

De wikiserver
Dreceres ràpides: navegació, cerca

1. Escriu una consulta que mostri nom i data d'alta de tots els empleats que treballen en el mateix departament que Blake (Exclou a Blake).

SELECT ename, hiredate
FROM emp
WHERE deptno IN (SELECT deptno
                 FROM emp
                 WHERE ename='BLAKE')
      AND ename != 'BLAKE';

2. Fes una subconsulta que mostri el número i nom de tots els empleats que guanyen més que la mitjana de salaris. Classifica el resultat en ordre descendent de salaris.

SELECT empno, ename
FROM emp
WHERE sal > (SELECT AVG(sal)
             FROM emp)
ORDER BY sal DESC;

3. Escriu una consulta que mostri el número i nom de tots els empleats que treballen en un departament amb qualsevol empleat que tingui un nom que contingui una "T". Salva la sentència SQL en un fitxer anomenat p6q3.sql.

SELECT empno, ename
FROM emp
WHERE deptno IN (SELECT deptno
                 FROM emp
                 WHERE ename LIKE '%T%');

SAVE p6q3.sql

4. Mostra el nom, número de departament i ofici de tots els empleats que treballen en un departament que es trobi a Dallas.

SELECT ename, deptno, job
FROM emp
WHERE deptno IN (SELECT deptno
                 FROM dept
                 WHERE loc='DALLAS');

5. Mostra el nom i el salari de tots els empleats que depenguin de "King".

SELECT ename, sal
FROM emp
WHERE mgr IN (SELECT empno
              FROM emp
              WHERE ename='KING');

6. Mostra el número, nom i ofici de tots els empleats del departament "Sales".

SELECT deptno, ename, job
FROM emp
WHERE deptno IN (SELECT deptno
                 FROM dept
                 WHERE dname = 'SALES');

7. Modifica el fitxer p6q3.sql per a que mostri el número, nom i salari de tots els empleats que guanyin més que la mitjana de salaris i que treballin en un departament en el que hi hagi algun empleat que contingui una "T" en el seu nom. Salva el fitxer, com p6q7.sql.

EDIT p6q3.sql

SELECT empno, ename, sal
FROM emp
WHERE sal > (SELECT AVG(sal)
             FROM emp)
      AND deptno IN (SELECT deptno
                     FROM emp
                     WHERE ename LIKE '%T%');

SAVE p6q7.sql

START p6q7.sql