Diferència entre revisions de la pàgina «M2 - Bases de dades / Apunts UF4 : Practica 5»
(→Exercici 2) |
(→Exercici 3) |
||
Línia 81: | Línia 81: | ||
==Exercici 3== | ==Exercici 3== | ||
+ | |||
+ | * Creeu el tiplus | ||
+ | CREATE TYPE colec_tipo_nombres_dept AS VARRAY(7) OF VARCHAR2(30); | ||
+ | |||
+ | |||
+ | /*Crea la tabla departamentos con Region varchar(25) | ||
+ | Nombres_dept de tipo colección*/ | ||
+ | CREATE TABLE departamentos ( | ||
+ | region VARCHAR2(25), | ||
+ | nombres_dept colec_tipo_nombres_dept); | ||
+ | |||
+ | |||
+ | /*Insertar los datos que aparecen en la tabla anterior*/ | ||
+ | INSERT INTO departamentos | ||
+ | VALUES ('Europa', colec_tipo_nombres_dept('shipping', 'sales', 'finances')); | ||
+ | INSERT INTO departamentos | ||
+ | VALUES ('America', colec_tipo_nombres_dept('sales', 'finances', 'shipping')); | ||
+ | INSERT INTO departamentos | ||
+ | VALUES ('Asia', colec_tipo_nombres_dept('finances', 'payroll', 'shipping', 'sales')); | ||
+ | |||
+ | |||
+ | /*Visualizar todos los departamentos.*/ | ||
+ | SELECT * FROM departamentos; | ||
+ | |||
+ | /*Crea un bloque PL en el que declararemos una variable de tipo colección y le asignaremos | ||
+ | los siguientes valores a la colección (benefits, advertising, contracting, executive, | ||
+ | marketing) Actualizará los departamentos de la región de europa con los inicializados | ||
+ | anteriormente. Recorrerá la colección para visualizar todos los nombres de los | ||
+ | departamentos de la región de Europa. Con una salida como la siguiente*/ | ||
+ | DECLARE | ||
+ | v_colec colec_tipo_nombres_dept; | ||
+ | BEGIN | ||
+ | v_colec := colec_tipo_nombres_dept('benefits', 'advertising', 'contracting', 'executive', 'marketing'); | ||
+ | UPDATE departamentos | ||
+ | SET nombres_dept = v_colec | ||
+ | WHERE region = 'Europa'; | ||
+ | END; | ||
+ | |||
+ | * Se desea guardar los nombres de los departamentos, para esto | ||
+ | colección. | ||
+ | Europa shipping, sales, finances | ||
+ | America sales, finances, shipping | ||
+ | Asia finances, payroll, shipping, sales | ||
+ | puede usar una | ||
+ | Crear un tipo colección llamado colec_tipo_nombres_dept que tendrá como máximo | ||
+ | grupos de 7 valores y además serán de máximo 30 caracteres. | ||
+ | Crea la tabla departamentos con | ||
+ | Region varchar(25) | ||
+ | Nombres_dept de tipo colección | ||
+ | Insertar los datos que aparecen en la tabla anterior. | ||
+ | Visualizar todos los departamentos. | ||
+ | Bloques PL | ||
+ | Crea un bloque PL en el que declararemos una variable de tipo colección y le asignaremos | ||
+ | los siguientes valores a la colección (benefits, advertising, contracting, executive, | ||
+ | marketing) Actualizará los departamentos de la región de europa con los inicializados | ||
+ | anteriormente. Recorrerá la colección para visualizar todos los nombres de los | ||
+ | departamentos de la región de Europa. Con una salida como la siguiente |
Revisió del 12:16, 14 maig 2018
Exercici 1
- Creeu el tipus col·lecció colec_fills de mida 10 de varchar2(30).
- Creeu la taula empleat amb els atributs Idemp number(3), Nom varchar(30), Cognoms varchar(30) Fill colec_fills.
- Afegiu les següents dades a la taula empleat:
Id | Nom | Cognoms | Fills |
---|---|---|---|
1 | Francesc | Tardà | (Lluís, Maria) |
2 | Joana | Pons | (Carla, Joan, Mònica) |
- Mostreu tots els empleats.
- Mostreu el nom dels fills de l'empleat amb Idemp 1.
- Mostreu el nom de tots els fills de tots els empleats.
Blocs PL/SQL
- Fes un bloc PL/SQL per mostrar els fills de l'empleat amb Idemp 2.
- Afegiu un nou fill de nom com el primer a l'empleat amb Idemp 1 utilitzant Extend.
Abans d'actualitzar: El fill 1 es diu Lluís El fill 2 es diu Maria Desprès d'actualitzar: El fill 1 es diu Lluís El fill 2 es diu Maria El fill 3 es diu Lluís
- Afegiu dos bessons (Sandra i Ricard) al fills de l'empleat amb Idemp 2 actualitzant.
Abans d'actualitzar: El fill 1 es diu Carla El fill 2 es diu Joan El fill 3 es diu Mònica Desprès d'actualitzar: El fill 1 es diu Carla El fill 2 es diu Joan El fill 3 es diu Mònica El fill 4 es diu Sandra El fill 5 es diu Ricard
- Elimineu l'últim fill (Ricard) de l'empleat amb Idemp 2 actualitzant.
Exercici 2
- Creeu el tipus emp_tipus amb els atributs cedula varchar(8) i nom varchar2(15).
- Creeu la taula empleats de objectes emp_tipus amb clau primaria cedula.
- Afegiu els següents registres: ('10','Ana'), ('20','Beto'), ('40','David'), ('90','Pep'), ('80','Sara').
- Creeu la col·lecció emp_varray de 10 posicions d'apuntadors a empleats.
- Creeu la taula departaments amb els atributs codi number(3) clau primaria, nom varchar2(10), commutador number(10) i empleats emp_varray.
- Afegeix els següents departaments a la taula departaments:
- 11, 'Vendes', 2103, referencies als empleats amb cèdules 10, 20, 90
- 22, 'Compres', 2203, referencies als empleats amb cèdules 40, 80
- Mostreu tot el contingut de la taula departaments.
- Feu un bloc PL/SQL per mostrar la informació dels departaments juntament am la informació dels seus empleats.
Exercici 3
- Creeu el tiplus
CREATE TYPE colec_tipo_nombres_dept AS VARRAY(7) OF VARCHAR2(30);
/*Crea la tabla departamentos con Region varchar(25)
Nombres_dept de tipo colección*/
CREATE TABLE departamentos (
region VARCHAR2(25),
nombres_dept colec_tipo_nombres_dept);
/*Insertar los datos que aparecen en la tabla anterior*/
INSERT INTO departamentos
VALUES ('Europa', colec_tipo_nombres_dept('shipping', 'sales', 'finances'));
INSERT INTO departamentos
VALUES ('America', colec_tipo_nombres_dept('sales', 'finances', 'shipping'));
INSERT INTO departamentos
VALUES ('Asia', colec_tipo_nombres_dept('finances', 'payroll', 'shipping', 'sales'));
/*Visualizar todos los departamentos.*/
SELECT * FROM departamentos;
/*Crea un bloque PL en el que declararemos una variable de tipo colección y le asignaremos los siguientes valores a la colección (benefits, advertising, contracting, executive, marketing) Actualizará los departamentos de la región de europa con los inicializados anteriormente. Recorrerá la colección para visualizar todos los nombres de los departamentos de la región de Europa. Con una salida como la siguiente*/ DECLARE v_colec colec_tipo_nombres_dept; BEGIN v_colec := colec_tipo_nombres_dept('benefits', 'advertising', 'contracting', 'executive', 'marketing'); UPDATE departamentos SET nombres_dept = v_colec WHERE region = 'Europa'; END;
- Se desea guardar los nombres de los departamentos, para esto
colección. Europa shipping, sales, finances America sales, finances, shipping Asia finances, payroll, shipping, sales puede usar una Crear un tipo colección llamado colec_tipo_nombres_dept que tendrá como máximo grupos de 7 valores y además serán de máximo 30 caracteres. Crea la tabla departamentos con Region varchar(25) Nombres_dept de tipo colección Insertar los datos que aparecen en la tabla anterior. Visualizar todos los departamentos. Bloques PL Crea un bloque PL en el que declararemos una variable de tipo colección y le asignaremos los siguientes valores a la colección (benefits, advertising, contracting, executive, marketing) Actualizará los departamentos de la región de europa con los inicializados anteriormente. Recorrerá la colección para visualizar todos los nombres de los departamentos de la región de Europa. Con una salida como la siguiente