Diferència entre revisions de la pàgina «M2 - Bases de dades / Apunts UF4 : Practica 5»

De wikiserver
Dreceres ràpides: navegació, cerca
(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