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

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «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) En el...».)
 
 
(Hi ha 7 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 
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 sentencia aiguiente para crear la tabla MY_EMPLOYEE utilizada en esta práctica.
 
+
<!--
 
a) En el menú File, seleccione Open. En el cuadro de diálogo Open, navegue a la carpeta /home/oracle/labs/sql1/labs y haga doble clic en lab_09_01.sql .
 
a) En el menú File, seleccione Open. En el cuadro de diálogo Open, navegue a la carpeta /home/oracle/labs/sql1/labs y haga doble clic en lab_09_01.sql .
  
 
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.
 
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.
 +
-->
 +
<pre>
 +
CREATE TABLE MY_EMPLOYEE (
 +
ID NUMBER(6) PRIMARY KEY,
 +
LAST_NAME VARCHAR2(25),
 +
FIRST_NAME VARCHAR2(20),
 +
USERID VARCHAR2(10),
 +
SALARY NUMBER(8,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 12: Línia 21:
 
</pre>
 
</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.
+
Els següents apartats fan referencia a les dades de la següent taula:
  
 
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
 
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
Línia 21: Línia 30:
 
! align="left" width="85 px" style="background:Lavender; color:Black"|SALARY
 
! align="left" width="85 px" style="background:Lavender; color:Black"|SALARY
 
|-
 
|-
|1||Patel||Ralph||rpatel||795
+
|1||Patel||Ralph||rpatel||895
 
|-
 
|-
 
|2||Dancs||Betty||bdancs||860
 
|2||Dancs||Betty||bdancs||860
Línia 31: Línia 40:
 
|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>
 +
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 .
 +
<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.
 +
<pre>
 +
COMMIT;
 +
 +
SELECT *
 +
FROM my_employee;
 +
</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.
 +
<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.
 +
<pre>
 +
INSERT INTO my_employee
 +
VALUES (&p_id, '&p_last_name', '&p_first_name', '&p_userid', &p_salary);
 +
</pre>
 +
 +
8) Visualize todos los empleados y comprueba que se han introducido correctamente.
 +
<pre>
 +
SELECT *
 +
FROM my_employee;
 +
</pre>
 +
 +
9) Confirme los cambios en la tabla.
 +
<pre>
 +
COMMIT;
 +
</pre>
 +
 +
'''Actualice y suprima datos de la tabla MY_EMPLOYEE.'''
 +
 +
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.
 +
<pre>
 +
UPDATE my_employee
 +
SET salary = 1000
 +
WHERE salary < 900;
 +
</pre>
 +
 +
12) Visualiza todos los empleados y compruebe que los cambios se ha realizado correctamente.
 +
<pre>
 +
SELECT *
 +
FROM my_employee;
 +
</pre>
 +
 +
13) Suprima Betty Dancs de la tabla MY_EMPLOYEE .
 +
<pre>
 +
DELETE
 +
FROM my_employee
 +
WHERE FIRST_NAME = 'Betty' AND LAST_NAME = 'Dancs';
 +
</pre>
 +
 +
14) Visualize todos los empleados y compruebe que los cambios se ha realicado correctamente.
 +
<pre>
 +
SELECT *
 +
FROM my_employee;
 +
</pre>
 +
 +
15) Confirme todos los cambios pendientes.
 +
<pre>
 +
COMMIT;
 +
</pre>
 +
 +
'''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.
 +
<pre>
 +
INSERT INTO my_employee
 +
VALUES (&p_id, '&p_last_name', '&p_first_name', '&p_userid', &p_salary);
 +
</pre>
 +
 +
17) Compruebe que los datos se han introducido correctamente.
 +
<pre>
 +
SELECT *
 +
FROM my_employee;
 +
</pre>
 +
 +
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 .
 +
<pre>
 +
DELETE
 +
FROM my_employee;
 +
</pre>
 +
 +
20) Verifique 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.
 +
<pre>
 +
ROLLBACK TO step_17;
 +
</pre>
 +
 +
22) Compruebe que la nueva fila esté intacta.
 +
 +
<pre>
 +
SELECT *
 +
FROM my_employee;
 +
</pre>
 +
 +
23) Confirme los cambios.
 +
<pre>
 +
COMMIT;
 +
</pre>
 +
 +
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 .
 +
<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:
 +
 +
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
 +
! align="left" width="100 px" style="background:Lavender; color:Black"|ID
 +
! align="left" width="100 px" style="background:Lavender; color:Black"|LAST_NAME
 +
! 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
 +
|}
 +
 +
26) Compruebe que se ha agregado la nueva fila con el USERID correcto.
 +
<pre>
 +
SELECT *
 +
FROM my_employee
 +
WHERE ID='6';
 +
</pre>

Revisió de 16:16, 21 nov 2023

Inserte los datos en la tabla MY_EMPLOYEE .

1) Ejecute la sentencia aiguiente para crear la tabla MY_EMPLOYEE utilizada en esta práctica.

CREATE TABLE MY_EMPLOYEE (
ID NUMBER(6) PRIMARY KEY,
LAST_NAME VARCHAR2(25),
FIRST_NAME VARCHAR2(20),
USERID VARCHAR2(10),
SALARY NUMBER(8,2));

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

DESCRIBE my_employee

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.

INSERT INTO my_employee
VALUES (1, 'Patel', 'Ralph', 'rpatel', 895);

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 .

INSERT INTO my_employee (id, last_name, first_name, userid, salary)
VALUES (2, 'Dancs', 'Betty', 'bdancs', 860);

5) Confirme las adiciones a la tabla.

COMMIT;

SELECT *
FROM my_employee;

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.

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

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.

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

8) Visualize todos los empleados y comprueba que se han introducido correctamente.

SELECT *
FROM my_employee;

9) Confirme los cambios en la tabla.

COMMIT;

Actualice y suprima datos de la tabla MY_EMPLOYEE.

10) Cambie el apellido del empleado 3 a Drexler.

UPDATE my_employee
SET last_name = 'Drexler'
WHERE id = 3;

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

UPDATE my_employee
SET salary = 1000
WHERE salary < 900;

12) Visualiza todos los empleados y compruebe que los cambios se ha realizado correctamente.

SELECT *
FROM my_employee;

13) Suprima Betty Dancs de la tabla MY_EMPLOYEE .

DELETE
FROM my_employee
WHERE FIRST_NAME = 'Betty' AND LAST_NAME = 'Dancs';

14) Visualize todos los empleados y compruebe que los cambios se ha realicado correctamente.

SELECT *
FROM my_employee;

15) Confirme todos los cambios pendientes.

COMMIT;

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) Compruebe que los datos se han introducido correctamente.

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) Verifique 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) Compruebe que la nueva fila esté intacta.

SELECT *
FROM my_employee;

23) Confirme los cambios.

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) Compruebe que se ha agregado la nueva fila con el USERID correcto.

SELECT *
FROM my_employee
WHERE ID='6';