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

De wikiserver
Dreceres ràpides: navegació, cerca
(Exercici 3)
Línia 82: Línia 82:
 
==Exercici 3==
 
==Exercici 3==
  
* Creeu el tiplus
+
* Creeu el tipus col·lecció colec_departaments de mida 7 de varchar2(30).
CREATE TYPE colec_tipo_nombres_dept AS VARRAY(7) OF VARCHAR2(30);
 
  
 +
* Creeu la taula departaments amb els atributs regio varchar2(25) i departs colec_departaments.
  
/*Crea la tabla departamentos con Region varchar(25)
+
* Afegiu les següents dades a la taula empleat:
Nombres_dept de tipo colección*/
 
CREATE TABLE departamentos (
 
region        VARCHAR2(25),
 
nombres_dept  colec_tipo_nombres_dept);
 
  
 +
{|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="70 px" style="background:Lavender; color:Black"|regio
 +
! align="left" width="120 px" style="background:Lavender; color:Black"|departs
 +
|-
 +
|Europa||(Projectes, Disseny, Prototipus)
 +
|-
 +
|Amèrica||(Gerència, Recursos Humans, Nomines, Finances)
 +
|-
 +
|Àsia||(Vendes,  Distribució, Compres, Investigació de mercats )
 +
|}
  
/*Insertar los datos que aparecen en la tabla anterior*/
+
* Mostreu tots els departaments.
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'));
 
  
 +
* Crea un bloc PL/SQL que actualitzi els departaments d'Europa amb: Publicitat, Contractació, Marketing.
  
/*Visualizar todos los departamentos.*/
+
* Crea un bloc PL/SQL que mostri els departaments d'Amèrica amb el següent format:
SELECT * FROM departamentos;
 
  
/*Crea un bloque PL en el que declararemos una variable de tipo colección y le asignaremos
+
<pre>
los siguientes valores a la colección (benefits, advertising, contracting, executive,
+
  Regió: Amèrica
marketing) Actualizará los departamentos de la región de europa con los inicializados
+
  Departament: Gerència
anteriormente. Recorrerá la colección para visualizar todos los nombres de los
+
  Departament: Recursos Humans
departamentos de la región de Europa. Con una salida como la siguiente*/
+
  Departament: Nomines
DECLARE
+
  Departament: Finances    
v_colec   colec_tipo_nombres_dept;
+
</pre>
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:50, 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 tipus col·lecció colec_departaments de mida 7 de varchar2(30).
  • Creeu la taula departaments amb els atributs regio varchar2(25) i departs colec_departaments.
  • Afegiu les següents dades a la taula empleat:
regio departs
Europa (Projectes, Disseny, Prototipus)
Amèrica (Gerència, Recursos Humans, Nomines, Finances)
Àsia (Vendes, Distribució, Compres, Investigació de mercats )
  • Mostreu tots els departaments.
  • Crea un bloc PL/SQL que actualitzi els departaments d'Europa amb: Publicitat, Contractació, Marketing.
  • Crea un bloc PL/SQL que mostri els departaments d'Amèrica amb el següent format:
   Regió: Amèrica
   Departament: Gerència
   Departament: Recursos Humans
   Departament: Nomines
   Departament: Finances