Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T9-HR»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «El departamento de recursos humanos desea que cree sentencias SQL para insertar, actualizar y suprimir datos de los empleados. Como prototipo, utilizará la tabla MY_E...».)
 
Línia 13: Línia 13:
  
 
2) Describa la estructura de la tabla MY_EMPLOYEE para identificar los nombres de las columnas.
 
2) Describa la estructura de la tabla MY_EMPLOYEE para identificar los nombres de las columnas.
 +
 +
<pre>
 +
DESCRIBE MY_EMPLOYEE;
 +
Nombre          Nulo    Tipo       
 +
--------------- -------- ------------
 +
ID              NOT NULL NUMBER(4)   
 +
LAST_NAME      NOT NULL VARCHAR2(25)
 +
FIRST_NAME      NOT NULL VARCHAR2(25)
 +
USERID                  VARCHAR2(8)   
 +
SALARY                  NUMBER(9,2)   
 +
</pre>
  
  
Línia 34: Línia 45:
 
|5||Ropeburn||Audry||aropebur||1550
 
|5||Ropeburn||Audry||aropebur||1550
 
|}
 
|}
3) Cree una sentencia INSERT para agregar la primera fila de datos a la tabla MY_EMPLOYEE a partir de los siguientes datos de ejemplo. No muestre la lista de columnas en la cláusula INSERT.
+
 
<pre>
+
3) Cree una sentencia INSERT para agregar la primera fila de datos a la tabla MY_EMPLOYEE a partir de los siguientes datos de ejemplo. No muestre la lista de columnas en la cláusula INSERT. No introduzca aún todas las filas.
INSERT INTO my_employee
 
VALUES (1, 'Patel', 'Ralph', 'rpatel', 895);
 
</pre>
 
  
 
4) Rellene la tabla MY_EMPLOYEE con la segunda fila de datos de ejemplo de la lista anterior. En esta ocasión, muestre explícitamente la lista de columnas en la cláusula INSERT .
 
4) Rellene la tabla MY_EMPLOYEE con la segunda fila de datos de ejemplo de la lista anterior. En esta ocasión, muestre explícitamente la lista de columnas en la cláusula INSERT .
<pre>
 
INSERT INTO my_employee (id, last_name, first_name, userid, salary)
 
VALUES (2, 'Dancs', 'Betty', 'bdancs', 860);
 
</pre>
 
  
 
5) Confirme las adiciones a la tabla.
 
5) Confirme las adiciones a la tabla.
 
<pre>
 
<pre>
SELECT *
+
  ID  LAST_NAME  FIRST_NAME  USERID  SALARY
FROM my_employee;
+
  --  ---------  ----------  ------  ------
 +
1  1  Patel      Ralph      rpatel    895
 +
2  2  Dancs      Betty      bdancs    860
 
</pre>
 
</pre>
  
 
6) Escriba una sentencia INSERT en un archivo de script reutilizable para cargar las filas restantes en la tabla MY_EMPLOYEE . El script se debe solicitar para todas las columnas ( ID , LAST_NAME , FIRST_NAME , USERID y SALARY ). Guarde este script en un archivo denominado lab_09_06.sql.
 
6) Escriba una sentencia INSERT en un archivo de script reutilizable para cargar las filas restantes en la tabla MY_EMPLOYEE . El script se debe solicitar para todas las columnas ( ID , LAST_NAME , FIRST_NAME , USERID y SALARY ). Guarde este script en un archivo denominado lab_09_06.sql.
<pre>
+
 
INSERT INTO my_employee
 
VALUES (&p_id, '&p_last_name', '&p_first_name', '&p_userid', &p_salary);
 
</pre>
 
 
7) Rellene la tabla con las dos siguientes filas de ejemplo mostradas en el paso 3 mediante la ejecución de la sentencia INSERT en el script que ha creado.
 
7) Rellene la tabla con las dos siguientes filas de ejemplo mostradas en el paso 3 mediante la ejecución de la sentencia INSERT en el script que ha creado.
<pre>
 
INSERT INTO my_employee
 
VALUES (&p_id, '&p_last_name', '&p_first_name', '&p_userid', &p_salary);
 
</pre>
 
  
 
8) Confirme las adiciones a la tabla.
 
8) Confirme las adiciones a la tabla.
 
<pre>
 
<pre>
SELECT *
+
  ID  LAST_NAME  FIRST_NAME  USERID  SALARY
FROM my_employee;
+
  --  ---------  ----------  ------  ------
 +
1  1  Patel      Ralph      rpatel    895
 +
2  2  Dancs      Betty      bdancs    860
 +
3  3  Biri      Ben        bbiri    1100 
 +
4  4  Newman    Chad        cnewman    750
 
</pre>
 
</pre>
  
 
9) Convierta las adiciones de datos en permanentes.
 
9) Convierta las adiciones de datos en permanentes.
<pre>
 
COMMIT;
 
</pre>
 
  
 
'''Actualice y suprima datos de la tabla MY_EMPLOYEE.'''
 
'''Actualice y suprima datos de la tabla MY_EMPLOYEE.'''
  
 
10) Cambie el apellido del empleado 3 a Drexler.
 
10) Cambie el apellido del empleado 3 a Drexler.
<pre>
 
UPDATE my_employee
 
SET last_name = 'Drexler'
 
WHERE id = 3;
 
</pre>
 
  
 
11) Cambie el salario a 1.000 dólares para todos los empleados con un salario inferior a 900.
 
11) Cambie el salario a 1.000 dólares para todos los empleados con un salario inferior a 900.
<pre>
 
UPDATE my_employee
 
SET salary = 1000
 
WHERE salary < 900;
 
</pre>
 
  
 
12) Verifique los cambios en la tabla.
 
12) Verifique los cambios en la tabla.
 
<pre>
 
<pre>
SELECT *
+
  ID  LAST_NAME  FIRST_NAME  USERID  SALARY
FROM my_employee;
+
  --  ---------  ----------  ------  ------
 +
1  1  Patel      Ralph      rpatel    1000
 +
2  2  Dancs      Betty      bdancs    1000
 +
3  3  Drexler    Ben        bbiri    1100 
 +
4  4  Newman    Chad        cnewman  1000
 
</pre>
 
</pre>
  
 
13) Suprima Betty Dancs de la tabla MY_EMPLOYEE .
 
13) Suprima Betty Dancs de la tabla MY_EMPLOYEE .
<pre>
 
DELETE
 
FROM my_employee
 
WHERE last_name = 'Dancs';
 
</pre>
 
  
 
14) Confirme los cambios en la tabla.
 
14) Confirme los cambios en la tabla.
 
<pre>
 
<pre>
SELECT *
+
  ID  LAST_NAME  FIRST_NAME  USERID  SALARY
FROM my_employee;
+
  --  ---------  ----------  ------  ------
 +
1  1  Patel      Ralph      rpatel    1000
 +
2  3  Drexler    Ben        bbiri    1100 
 +
3  4  Newman    Chad        cnewman  1000
 
</pre>
 
</pre>
  
 
15) Confirme todos los cambios pendientes.
 
15) Confirme todos los cambios pendientes.
<pre>
 
COMMIT;
 
</pre>
 
  
 
'''Controle la transacción de datos a la tabla MY_EMPLOYEE .'''
 
'''Controle la transacción de datos a la tabla MY_EMPLOYEE .'''

Revisió del 13:45, 14 des 2017

El departamento de recursos humanos desea que cree sentencias SQL para insertar, actualizar y suprimir datos de los empleados. Como prototipo, utilizará la tabla MY_EMPLOYEE , antes de proporcionar las sentencias al departamento.

Nota: para todas las sentencias DML, utilice el icono Run Script (o pulse [F5]) para ejecutar la consulta. De esta forma, ve los mensajes de comentarios en la página con separadores Script Output. Para consultas SELECT , siga utilizando el icono Execute Statement o pulse [F9] para obtener la salida con formato en la página con separadores Results.


Inserte los datos en la tabla MY_EMPLOYEE .

1) Ejecute la sentencia en el script lab_09_01.sql para crear la tabla MY_EMPLOYEE utilizada en esta práctica.

a) Localice la sentencia en la carpeta DAW-2/Curs 17-18 del servidor OSIRIS.

b) Una vez abierta la sentencia en una hoja de trabajo de SQL, haga clic en el icono Run Script para ejecutar el script. Aparece un mensaje que indica que la creación de la tabla se ha realizado correctamente en la página con separadores Script Output.

2) Describa la estructura de la tabla MY_EMPLOYEE para identificar los nombres de las columnas.

DESCRIBE MY_EMPLOYEE;
Nombre          Nulo     Tipo         
--------------- -------- ------------ 
ID              NOT NULL NUMBER(4)    
LAST_NAME       NOT NULL VARCHAR2(25) 
FIRST_NAME      NOT NULL VARCHAR2(25) 
USERID                   VARCHAR2(8)     
SALARY                   NUMBER(9,2)    


Els següents apartats fan referencia a les dades de la següent taula:

ID LAST_NAME FIRST_NAME USERID SALARY
1 Patel Ralph rpatel 895
2 Dancs Betty bdancs 860
3 Biri Ben bbiri 1100
4 Newman Chad cnewman 750
5 Ropeburn Audry aropebur 1550

3) Cree una sentencia INSERT para agregar la primera fila de datos a la tabla MY_EMPLOYEE a partir de los siguientes datos de ejemplo. No muestre la lista de columnas en la cláusula INSERT. No introduzca aún todas las filas.

4) Rellene la tabla MY_EMPLOYEE con la segunda fila de datos de ejemplo de la lista anterior. En esta ocasión, muestre explícitamente la lista de columnas en la cláusula INSERT .

5) Confirme las adiciones a la tabla.

  ID  LAST_NAME  FIRST_NAME  USERID  SALARY 
  --  ---------  ----------  ------  ------
1  1  Patel      Ralph       rpatel     895 
2  2  Dancs      Betty       bdancs     860

6) Escriba una sentencia INSERT en un archivo de script reutilizable para cargar las filas restantes en la tabla MY_EMPLOYEE . El script se debe solicitar para todas las columnas ( ID , LAST_NAME , FIRST_NAME , USERID y SALARY ). Guarde este script en un archivo denominado lab_09_06.sql.

7) Rellene la tabla con las dos siguientes filas de ejemplo mostradas en el paso 3 mediante la ejecución de la sentencia INSERT en el script que ha creado.

8) Confirme las adiciones a la tabla.

  ID  LAST_NAME  FIRST_NAME  USERID  SALARY 
  --  ---------  ----------  ------  ------
1  1  Patel      Ralph       rpatel     895 
2  2  Dancs      Betty       bdancs     860
3  3  Biri       Ben         bbiri     1100  
4  4  Newman     Chad        cnewman    750

9) Convierta las adiciones de datos en permanentes.

Actualice y suprima datos de la tabla MY_EMPLOYEE.

10) Cambie el apellido del empleado 3 a Drexler.

11) Cambie el salario a 1.000 dólares para todos los empleados con un salario inferior a 900.

12) Verifique los cambios en la tabla.

  ID  LAST_NAME  FIRST_NAME  USERID  SALARY 
  --  ---------  ----------  ------  ------
1  1  Patel      Ralph       rpatel    1000 
2  2  Dancs      Betty       bdancs    1000
3  3  Drexler    Ben         bbiri     1100  
4  4  Newman     Chad        cnewman   1000

13) Suprima Betty Dancs de la tabla MY_EMPLOYEE .

14) Confirme los cambios en la tabla.

  ID  LAST_NAME  FIRST_NAME  USERID  SALARY 
  --  ---------  ----------  ------  ------
1  1  Patel      Ralph       rpatel    1000 
2  3  Drexler    Ben         bbiri     1100  
3  4  Newman     Chad        cnewman   1000

15) Confirme todos los cambios pendientes.

Controle la transacción de datos a la tabla MY_EMPLOYEE .

16) Rellene la tabla con la última fila de datos de ejemplo mostrada en el paso 3 mediante las sentencias del script que ha creado en el paso 6. Ejecute las sentencias en el script.

INSERT INTO my_employee
VALUES (&p_id, '&p_last_name', '&p_first_name', '&p_userid', &p_salary);

17) Confirme la adición a la tabla.

SELECT *
FROM my_employee;

18) Marque un punto intermedio en el procesamiento de la transacción.

SAVEPOINT step_17;

19) Suprima todas las filas de la tabla MY_EMPLOYEE .

DELETE
FROM my_employee;

20) Confirme que la tabla está vacía.

SELECT *
FROM my_employee;

21) Deseche la operación DELETE más reciente sin desechar la operación INSERT anterior.

ROLLBACK TO step_17;

22) Confirme que la nueva fila esté intacta.

SELECT *
FROM my_employee;

23) Convierta la adición de datos en permanente.

COMMIT;

Si tiene tiempo, realice el siguiente ejercicio:

24) Modifique el script lab_09_06.sql de forma que USERID se genere automáticamente concatenando la primera letra del primer nombre y de los primeros siete caracteres del apellido. El USERID generado debe estar en minúscula. Por lo tanto, no se debe solicitar el script para el USERID . Guarde este script en un archivo denominado lab_09_24.sql .

SET ECHO OFF
SET VERIFY OFF
INSERT INTO my_employee
VALUES (&p_id, '&&p_last_name', '&&p_first_name',
lower(substr('&p_first_name', 1, 1) ||
substr('&p_last_name', 1, 7)), &p_salary);
SET VERIFY ON
SET ECHO ON
UNDEFINE p_first_name
UNDEFINE p_last_name

25) Ejecute el script lab_09_24.sql para insertar el siguiente registro:

ID LAST_NAME FIRST_NAME USERID SALARY
6 Anthony Mark manthony 1230

26) Confirme que se ha agregado la nueva fila con el USERID correcto.

SELECT *
FROM my_employee
WHERE ID='6';