Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL»
(→T1: Escriptura bàsica de sentències) |
(→T1: Escriptura bàsica de sentències) |
||
Línia 148: | Línia 148: | ||
... | ... | ||
</pre> | </pre> | ||
+ | <!-- | ||
+ | :*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1 | Solucions T1]] | ||
− | |||
− | |||
--> | --> | ||
Revisió del 20:32, 3 des 2013
Contingut
- 1 Presentació Taules Usuari SCOTT
- 2 T1: Escriptura bàsica de sentències
- 3 T2: Restricció i classificació de les dades
- 4 T3: Funcions a nivell de fila
- 5 T4: Visualització de dades a partir de varies taules
- 6 T5: Dades agregades. Funcions de grup
- 7 T6: Subconsultes
- 8 T7: Subconsultes multicolumna
- 9 T8: Generació d'informes
- 10 T9: Manipulació de dades
- 11 T10: Creació i gestió de taules
- 12 T11: Restriccions
- 13 T12: Creació de vistes
- 14 T13: Altres objectes de la base de dades
- 15 T14: Exercici Resum
Presentació Taules Usuari SCOTT
Nom Usuari: scott contrassenya: tiger
SQL>DESC emp
Nombre Nulo Tipo ------------------------------ -------- ---------------- EMPNO NOT NULL NUMBER(4) Codi d'empleat. ENAME VARCHAR2(10) Cognom. JOB VARCHAR2(9) Ofici. MGR NUMBER(4) Codi del cap de l'empleat. HIREDATE DATE Data de contractació. SAL NUMBER(7,2) Salari. COMM NUMBER(7,2) Comissió del empleats comercials (SALESMAN). DEPTNO NUMBER(2) Codi del departament de l'empleat.
SQL>SELECT * FROM emp
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ------ ------ --------- ----- --------- ---- ----- ------ 7369 SMITH CLERK 7902 17/12/80 800 (null) 20 7499 ALLEN SALESMAN 7698 20/02/81 1600 300 30 7521 WARD SALESMAN 7698 22/02/81 1250 500 30 7566 JONES MANAGER 7839 02/04/81 2975 (null) 20 7654 MARTIN SALESMAN 7698 28/09/81 1250 1400 30 7698 BLAKE MANAGER 7839 01/05/81 2850 (null) 30 7782 CLARK MANAGER 7839 09/06/81 2450 (null) 10 7788 SCOTT ANALYST 7566 19/04/87 3000 (null) 20 7839 KING PRESIDENT (null) 17/11/81 5000 (null) 10 7844 TURNER SALESMAN 7698 08/09/81 1500 0 30 7876 ADAMS CLERK 7788 23/05/87 1100 (null) 20 7900 JAMES CLERK 7698 03/12/81 950 (null) 30 7902 FORD ANALYST 7566 03/12/81 3000 (null) 20 7934 MILLER CLERK 7782 23/01/82 1300 (null) 10
SQL>DESC dept
Nombre Nulo Tipo ------------------------------ -------- ---------------- DEPTNO NOT NULL NUMBER(2) Codi departament DNAME VARCHAR2(14) Nom departament. LOC VARCHAR2(13) Localització.
SQL>SELECT * FROM dept
DEPTNO DNAME LOC ------ ----------- ---------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON
SQL>DESC salgrade
Nombre Nulo Tipo ------------------------------ -------- ------------ GRADE NUMBER Nivell salarial. Cada empleat pertany a un nivell en funció del seu salari. LOSAL NUMBER Salari mínim del nivell. HISAL NUMBER Salari màxim del nivell.
SQL>SELECT * FROM salgrade
GRADE LOSAL HISAL ----- ----- ----- 1 700 1200 2 1201 1400 3 1401 2000 4 2001 3000 5 3001 9999
Disseny de la BD SCOTT simple
La taula SALGRADE presenta un cas especial en el que una taula queda "connectada" a la resta mitjançant un non equi join (en aquest cas mitjançant un rang de valors de salaris).
T1: Escriptura bàsica de sentències
1. Inicii una sessió de SQL*Plus utilitzant l'ID d'usuari i password facilitat pel professor.
2. Les comandes SQL*PLUS accedeixen a la base de dades.
- Cert / Fals
3. S'executarà correctament la sentència SELECT?
SQL> SELECT rownum, ename, job, sal Salary 2 FROM emp;
5. Hi ha tres errors de codi en aquesta sentència. Pots identificar-los?
SQL> SELECT empno, ename, salary x 12 ANNUAL SALARY 2 FROM emp;
6. Mostra l'estructura de la taula DEPT. Selecciona totes les dades de la taula DEPT.
7. Mostra l'estructura de la taula EMP. Fes una consulta per visualitzar el número d'empleat, cognom, ofici i data d'alta. Guarda la sentència SQL en un fitxer anomenat plq7.sql.
8. Executeu la consulta del fitxer plq7.sql.
9. Fes una consulta per visualitzar només els oficis de la taula EMP.
JOB ----------- ANALYST CLERK MANAGER PRESIDENT SALESMAN
10. Carrega plq7.sql en el búfer SQL. Posa-li nom als encapçalaments: Emp #, Employee, Job i Hire Date.
Emp # Employee Job Hire Date ----- --------- ---------- --------------- 7839 KING PRESIDENT 17-NOV-81 7698 BLAKE MANAGER 01-MAY-81 ...
11. Visualitza el nom concatenat amb l'ofici, separat per una coma i i un espai i etiquete la columna amb Employee and Title.
Employee and Title ------------------- KING, PRESIDENT BLAKE, MANAGER ...
12. Fes una consulta per visualitzar totes les dades de la taula EMP. Separa cada columna amb una coma. Etiqueta la columna com THE_OUTPUT.
THE_OUTPUT --------------------------------------------- 7839,KING,PRESIDENT,,17-NOV-81,5000,,10 7698,BLAKE,MANAGER,7839,01-MAY-81,2850,,30 ...
T2: Restricció i classificació de les dades
1. Fes una consulta per visualitzar el nom i el salari dels empleats que guanyen més de 2850$. Guarda la sentència SQL en un fitxer anomenat p2q1.sql. Executa la consulta.
2. Fes una consulta per visualitzar el nom del empleat i el codi del departament per l'empleat amb codi 7566.
3. Modifica p2q1.sql per visualitzar el nom i el salari de tots els empleats que tinguin un salari entre 1500$ i 2850$. Guarda a questa sentència SQL en un fitxer anomenat p2q3.sql. Executa la consulta.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.