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
 
(4 revisions intermèdies per un altre usuari que no es mostra)
Línia 6: Línia 6:
 
Inserte los datos en la tabla MY_EMPLOYEE .
 
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.
+
1) Ejecute la siguiente sentencia para crear la tabla MY_EMPLOYEE utilizada en esta práctica.
 
+
<pre>
a) Localice la sentencia en la carpeta DAW-2/Curs 17-18 del servidor OSIRIS.
+
CREATE TABLE MY_EMPLOYEE (
 
+
    ID NUMBER(4) PRIMARY KEY,
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.
+
    LAST_NAME VARCHAR2(25) NOT NULL,
 +
    FIRST_NAME VARCHAR2(25) NOT NULL,
 +
    USERID VARCHAR2(8),
 +
    SALARY NUMBER(9,2));
 +
</pre>
  
 
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.
Línia 62: Línia 66:
 
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.
  
8) Confirme las adiciones a la tabla.
+
8) Visualize todos los empleados y comprueba que se han introducido correctamente.
 
<pre>
 
<pre>
 
   ID  LAST_NAME  FIRST_NAME  USERID  SALARY  
 
   ID  LAST_NAME  FIRST_NAME  USERID  SALARY  
Línia 72: Línia 76:
 
</pre>
 
</pre>
  
9) Convierta las adiciones de datos en permanentes.
+
9) Confirme los cambios en la tabla.
  
 
'''Actualice y suprima datos de la tabla MY_EMPLOYEE.'''
 
'''Actualice y suprima datos de la tabla MY_EMPLOYEE.'''
Línia 80: Línia 84:
 
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.
  
12) Verifique los cambios en la tabla.
+
12) Visualiza todos los empleados y compruebe que los cambios se ha realizado correctamente.
 
<pre>
 
<pre>
 
   ID  LAST_NAME  FIRST_NAME  USERID  SALARY  
 
   ID  LAST_NAME  FIRST_NAME  USERID  SALARY  
Línia 92: Línia 96:
 
13) Suprima Betty Dancs de la tabla MY_EMPLOYEE .
 
13) Suprima Betty Dancs de la tabla MY_EMPLOYEE .
  
14) Confirme los cambios en la tabla.
+
14) Visualize todos los empleados y compruebe que los cambios se ha realicado correctamente.
 
<pre>
 
<pre>
 
   ID  LAST_NAME  FIRST_NAME  USERID  SALARY  
 
   ID  LAST_NAME  FIRST_NAME  USERID  SALARY  
Línia 106: Línia 110:
  
 
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.
 
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.
<pre>
 
INSERT INTO my_employee
 
VALUES (&p_id, '&p_last_name', '&p_first_name', '&p_userid', &p_salary);
 
</pre>
 
  
17) Confirme la adición a la tabla.
+
17) Compruebe que los datos se han introducido correctamente.
 
<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
 +
4  5  Ropeburn  Audrey      aropebur  1550
 
</pre>
 
</pre>
  
 
18) Marque un punto intermedio en el procesamiento de la transacción.
 
18) Marque un punto intermedio en el procesamiento de la transacción.
<pre>
 
SAVEPOINT step_17;
 
</pre>
 
  
 
19) Suprima todas las filas de la tabla MY_EMPLOYEE .
 
19) Suprima todas las filas de la tabla MY_EMPLOYEE .
<pre>
 
DELETE
 
FROM my_employee;
 
</pre>
 
  
 
20) Confirme que la tabla está vacía.
 
20) Confirme que la tabla está vacía.
<pre>
 
SELECT *
 
FROM my_employee;
 
</pre>
 
  
 
21) Deseche la operación DELETE más reciente sin desechar la operación INSERT anterior.
 
21) Deseche la operación DELETE más reciente sin desechar la operación INSERT anterior.
<pre>
 
ROLLBACK TO step_17;
 
</pre>
 
  
22) Confirme que la nueva fila esté intacta.
+
22) Compruebe que la nueva fila esté intacta.
  
 
<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
 +
4  5  Ropeburn  Audrey      aropebur  1550
 
</pre>
 
</pre>
  
23) Convierta la adición de datos en permanente.
+
23) Confirme los cambios.
<pre>
 
COMMIT;
 
</pre>
 
  
 +
<!--
 
Si tiene tiempo, realice el siguiente ejercicio:
 
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
 
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 .
 
denominado lab_09_24.sql .
<pre>
 
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
 
</pre>
 
  
 
25) Ejecute el script lab_09_24.sql para insertar el siguiente registro:
 
25) Ejecute el script lab_09_24.sql para insertar el siguiente registro:
Línia 180: Línia 160:
 
|}
 
|}
  
26) Confirme que se ha agregado la nueva fila con el USERID correcto.
+
26) Compruebe que se ha agregado la nueva fila con el USERID correcto.
<pre>
+
 
SELECT *
+
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
FROM my_employee
+
! align="left" width="100 px" style="background:Lavender; color:Black"|ID
WHERE ID='6';
+
! align="left" width="100 px" style="background:Lavender; color:Black"|LAST_NAME
</pre>
+
! align="left" width="120 px" style="background:Lavender; color:Black"|FIRST_NAME
 +
! align="left" width="85 px" style="background:Lavender; color:Black"|USERID
 +
! align="left" width="85 px" style="background:Lavender; color:Black"|SALARY
 +
|-
 +
|6||Anthony||Mark||manthony||1230
 +
|}
 +
-->

Revisió de 17:16, 12 març 2024

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 siguiente sentencia para crear la tabla MY_EMPLOYEE utilizada en esta práctica.

CREATE TABLE MY_EMPLOYEE (
     ID NUMBER(4) PRIMARY KEY,
     LAST_NAME VARCHAR2(25) NOT NULL,
     FIRST_NAME VARCHAR2(25) NOT NULL,
     USERID VARCHAR2(8),
     SALARY NUMBER(9,2));

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) Visualize todos los empleados y comprueba que se han introducido correctamente.

  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) Confirme los cambios en la tabla.

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) Visualiza todos los empleados y compruebe que los cambios se ha realizado correctamente.

  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) Visualize todos los empleados y compruebe que los cambios se ha realicado correctamente.

  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.

17) Compruebe que los datos se han introducido correctamente.

  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
4  5  Ropeburn   Audrey      aropebur  1550

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

19) Suprima todas las filas de la tabla MY_EMPLOYEE .

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

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

22) Compruebe que la nueva fila esté intacta.

  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
4  5  Ropeburn   Audrey      aropebur  1550

23) Confirme los cambios.