0% encontró este documento útil (0 votos)
207 vistas6 páginas

ABD - Practica 13-3

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
207 vistas6 páginas

ABD - Practica 13-3

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

[Link].

com

Programación de Bases de Datos con SQL


13-3: Modificación de una Tabla
Actividades de Práctica

Objetivos
 Explicar por qué es importante poder modificar una tabla
 Explicar y proporcionar un ejemplo para cada una de las sentencias DDL
(ALTER, DROP, RENAME y TRUNCATE) y el efecto que tiene cada una en las
tablas y columnas
 Crear una consulta y ejecutar los comandos ADD, MODIFY y DROP de ALTER
TABLE
 Explicar y ejecutar una FLASHBACK QUERY en una tabla
 Explicar y realizar operaciones FLASHBACK table
 Realizar un seguimiento de los cambios en los datos a lo largo de un período
de tiempo
 Explicar los motivos para utilizar TRUNCATE frente a DELETE en las tablas
 Agregar un comentario a una tabla utilizando el comando COMMENT ON TABLE
 Enumerar los cambios que se pueden y no se pueden realizar en una columna
 Explicar cuándo y por qué la sentencia SET UNUSED es ventajosa

Inténtelo/Resuélvalo
Antes de comenzar la ejercicios prácticos, ejecute DESCRIBE para cada una de las
siguientes tablas: o_employees, o_departments y o_jobs. Estas tablas se utilizarán en los
ejercicios. Si no existen en su cuenta, créelas de la siguiente forma: Necesitará conocer qué
columnas no permiten valores nulos.
1. Cree las tres o_tablas (jobs, employees y departments) mediante la sintaxis:
CREATE TABLE o_jobs AS (SELECT * FROM jobs);
CREATE TABLE o_employees AS (SELECT * FROM employees);
CREATE TABLE o_departments AS (SELECT * FROM departments);

2. Agregue el cargo Human Resources a la tabla jobs:


INSERT INTO o_jobs (job_id, job_title, min_salary, max_salary)
VALUES('HR_MAN', 'Human Resources Manager', 4500, 5500);

3. Agregue los tres nuevos empleados a la tabla employees:


INSERT INTO o_employees (employee_id, first_name, last_name, email, hire_date,
job_id)
VALUES(210, 'Ramon', 'Sanchez', 'RSANCHEZ', SYSDATE, 'HR_MAN');

4. Agregue Human Resources a la tabla departments:


Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser
marcas comerciales de sus respectivos propietarios.
INSERT INTO o_departments(department_id, department_name)

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser
marcas comerciales de sus respectivos propietarios.
2

VALUES (210,'Human Resources');

1. ¿Por qué es importante poder modificar una tabla?


R=para poder editar las tablas ya sea si se necesita agregar indormacion o correguir algun
error
2. Con CREATE, cree una tabla denominada Artists.
a. Agregue lo siguiente a la tabla:
 ID del artista
 nombre
 apellido
 nombre del grupo
 correo electrónico
 tarifa por hora
 ID de la canción de la tabla d_songs

CREATE TABLE artists(


Artista_id number (4),
First_name varchar2(30),
Last name varchar(30).
Band_name varchar2(50),
Email varchar2(30),
Hour_tar number (10,2)
Song_id number(5)
)

b. Utilizando INSERT, inserte un artista desde la tabla d_songs.

c. Utilizando INSERT, inserte un artista de su propia elección; deje song_id en blanco.


INSERT INTO Artists (artist_id, first_name, last_name, band_name, email, hr_rate,
song_id)
VALUES (1, "Chirs", “Martin", "Codplay", "cm444@[Link] ",
64,NULL)

d. Proporcione un ejemplo de cómo se puede utilizar cada uno de los siguientes


comandos en la tabla que ha creado:

1) ALTER TABLE
Alter table artista
Rename columna canción to song;
2) DROP TABLE
Alter table artista_new_name
Drop unused columns;

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser
marcas comerciales de sus respectivos propietarios.
3
3) RENAME TABLE
Rename artista_new_name to artistas_2;
4) TRUNCATE
Truncate table artistas_2;
SELECT*FROM artistas_2
5) COMMENT ON TABLE
COMMENT ON COLUMN artista_2. Artista_id is ‘beat’

3. En su tabla o_employees, introduzca una nueva columna denominada “Termination”.


El tipo de dato de la nueva columna debe ser VARCHAR2. Utilizando DEFAULT, defina el
valor por defecto de esta columna como SYSDATE para que aparezca como datos de
caracteres con el formato: February 20th, 2003.

Alter table o_employees


ADD(“termination” varchar2(100) default to_char(SYSDATE,’month ddth, YYYY’));

4. Cree una nueva columna en la tabla o_employees denominada start_date.


Utilice TIMESTAMP WITH LOCAL TIME ZONE como tipo de dato.
Alter table o_employees
ADD(start_date TIMESTAMP WITH LOCAL TIME ZONE);

5. Trunque la tabla o_jobs. A continuación, ejecute una sentencia SELECT*.


¿Siguen allí las columnas? ¿Siguen allí los datos?
DESCRIBE o_jobs;;
SELECT * FROM o_jobs;
TRUNCATE TABLE o_jobs;

6. ¿Cuál es la diferencia entre TRUNCATE, DELETE y DROP para las tablas?


La declaración delete eliminara los datos de las filas pero no el espacio que este
almacena, truncate elimina las filas y libera el espacio y drop elimina la definición de la
tabla Oracle con todos los datos e inclusive los indices

7. Enumere los cambios que se pueden y no se pueden realizar en una columna.

1.-aumentar la precisión de una columna


2.-aumentar la longitud de caracteres de una columna
3.-cambiar el tipo de dato
4.-cambiar el nombre de una columna
5.-agregar una restricción a la columna

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser
marcas comerciales de sus respectivos propietarios.
4

8. Agregue el siguiente comentario a la tabla o_jobs:


"New job description added"
Consulte el diccionario de datos para ver sus comentarios.
[Link] table o_jobs is ‘new job description added’,
SELÑECt table_name, comments FROM user_lab_comments WHERE LOWER (table
name)= ‘o_jobs’;

9. Cambie el nombre de la tabla o_jobs a o_job_description.


Alter table o_jobs
RENAME TO o_job_description

10. Ejercicios con la tabla f_staffs:

a. Cree una copia de la tabla f_staffs denominada copy_f_staffs y utilice esta copia de
tabla para las prácticas restantes de esta lección.

Crate table copy:f:staff as (select*form f_staffs);

b. Describa la nueva tabla para asegurarse de que existe.


DESC copy_f_staffs;
c. Borre la tabla.
DROP table copy_f:staff;
d. Intente realizar una selección en la tabla
SELECT*FROM copy_f_sraffs;
Me aparecerá que la tabla es inexistente
e. Observe la papelera de reciclaje para ver dónde está la tabla.
DESCRIBE user_recyclebin;
f. Intente seleccionar desde la tabla borrada mediante el valor almacenado en la
columna OBJECT_NAME. Deberá copiar y pegar el nombre como es exactamente y
especificar el nombre nuevo entre “ “ (comillas dobles). Por lo tanto, si el nombre
borrado que le devuelve es BIN$Q+x1nJdcUnngQESYELVIdQ==$0, deberá escribir
una consulta que haga referencia a “BIN$Q+x1nJdcUnngQESYELVIdQ==$0”.
g. Anule el borrado de la tabla.
FLASHBACK TABLE copy_f_staff TO BEFORE DROP;
h. Describa la tabla.
DESCRIBE copy_f_staff:

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser
marcas comerciales de sus respectivos propietarios.
5
11. Siga con la tabla copy_f_staffs y realice una actualización de la tabla.

a. Emita una sentencia SELECT para ver todas las filas y todas las columnas de la
tabla copy_f_staffs.

SELECT * FROM copy_f_staff;


b. Cambie el salario de Sue Doe a 12 y confirme el cambio.
UPDATE copy_f_staff
SET salary=12
WHERE fist_name=’sue’ AND last_name=’doe’;
c. Emita una sentencia SELECT para ver todas las filas y todas las columnas de la
tabla copy_f_staffs.
SELECT * FORM copy_f_staffs;
d. Para Sue Doe, actualice el salario a 2 y confirme el cambio.
UPDATE copy_f_staffs
SET salary = 2
WHERE first_name=’sue’ AND last_name=’doe’;
e. Emita una sentencia SELECT para ver todas las filas y todas las columnas de la
tabla copy_f_staffs.
SELECT * FROM copy_f_staff;
f. Ahora, emita una sentencia FLASHBACK QUERY en la tabla copy_f_staffs, para que
pueda ver todos los cambios realizados.

g. Investigue el resultado de f), busque el salario original y actualice la columna de


salario de la tabla copy_f_staffs para Sue Doe a su salario original.

UPDATE copy_f_staff
SET salary=(SELECT slary FROM copy_f_staff
Versions between scn minvalue and max value
WHERE first_name=’sue’ and last_name=’doe’ and versions_operation IS
NULL AND versión_starttimeIS NULL)
WHERE first_name= ‘sue’ AND last_name = ‘doe’;

Copyright © 2019, Oracle y/o sus filiales. Todos los derechos reservados. Oracle y Java son marcas comerciales registradas de Oracle y sus filiales. Todos los demás nombres pueden ser
marcas comerciales de sus respectivos propietarios.

También podría gustarte