Práctica DDL sobre vistas

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introducción

A tarefa usará esta base de datos:

 1 CREATE DATABASE empleados;
 2 
 3 USE empleados;
 4 
 5 		CREATE TABLE TCENTR (
 6 		  NUMCE INT			NOT NULL,
 7 		  NOMCE VARCHAR(255)	NULL,
 8 		  SENAS VARCHAR(255)	NULL,
 9 		  PRIMARY KEY (NUMCE)
10 		);
11 
12 
13 		CREATE TABLE TDEPTO (
14 		  NUMDE INT			NOT NULL,
15 		  NUMCE INT			NULL,
16 		  DIREC INT			NULL,
17 		  TIDIR VARCHAR(1)	NULL,
18 		  PRESU DECIMAL(19, 4)	NULL,
19 		  DEPDE INT			NULL,
20 		  NOMDE VARCHAR(50)	NULL,
21 		  PRIMARY KEY (NUMDE)
22 		);
23 
24 
25 		CREATE TABLE TEMPLE (
26 		  NUMEM INT				NOT NULL,
27 		  NUMDE INT				NULL,
28 		  EXTEL INT				NULL,
29 		  FECNA DATE		NULL,
30 		  FECIN DATE		NULL,
31 		  SALAR DECIMAL(19, 4)	NULL,
32 		  COMIS DECIMAL(19, 4)	NULL,
33 		  NUMHI TINYINT			NULL,
34 		  NOMEM VARCHAR(255)	NULL,
35 		  PRIMARY KEY (NUMEM)
36 		  );
37 INSERT INTO TCENTR VALUES (10, 	'SEDE CENTRAL',				'C. ALCALA, 820, MADRID');
38 INSERT INTO TCENTR VALUES (20, 	'RELACION CON CLIENTES', 	'C. ATOCHA, 405, MADRID');
39 
40 select * from TCENTR;
41 
42 INSERT INTO TDEPTO VALUES (110,  20, 180,  'P',   15,	   100,  'DIRECC. COMERCIAL');
43 INSERT INTO TDEPTO VALUES (122,  10, 350,  'P',   6, 	   120,  'PROCESO DE DATOS');
44 INSERT INTO TDEPTO VALUES (100,  20, 260,  'P',   12,      NULL, 'DIRECCION GENERAL');
45 INSERT INTO TDEPTO VALUES (111,  20, 180,  'F',   11,	   110,  'SECTOR INDUSTRIAL');
46 INSERT INTO TDEPTO VALUES (112,  20, 270,  'P',   9, 	   110,  'SECTOR SERVICIOS');
47 INSERT INTO TDEPTO VALUES (120,  10, 150,  'F',   3, 	   100,  'ORGANIZACION');
48 INSERT INTO TDEPTO VALUES (121,  10, 150,  'P',   2, 	   120,  'PERSONAL');
49 INSERT INTO TDEPTO VALUES (130,  10, 310,  'P',   2, 	   100,  'FINANZAS');
50 INSERT INTO TDEPTO VALUES (140,  10, NULL,  NULL, NULL, 100,  'Marketing');
51 
52 
53 select * from TDEPTO;
54 
55 INSERT INTO TEMPLE VALUES (110, 112,  350, '1929-11-10', '1950-02-05', 987,  NULL,   3,     'PONS, CESAR');
56 INSERT INTO TEMPLE VALUES (120, 112,  840, '1935-06-09', '1968-10-01', 350,  110,    2,     'LASA, MAYO');
57 INSERT INTO TEMPLE VALUES (130, 112,  810, '1945-09-09', '1969-02-01', 290,  110,    2,     'TEROL, LUCIANO');
58 INSERT INTO TEMPLE VALUES (150, 121,  340, '1930-08-06', '1948-01-15', 440,  NULL,   0,     'PEREZ, JULIO');
59 INSERT INTO TEMPLE VALUES (160, 110,  740, '1939-07-09', '1968-11-11', 310,  110,    2,     'AGUIRRE, AUREO');
60 INSERT INTO TEMPLE VALUES (180, 110,  508, '1934-10-23', '1956-03-18', 480,  50,     2,     'PEREZ, MARCOS');
61 INSERT INTO TEMPLE VALUES (190, 121,  350, '1932-05-12', '1962-02-11', 300,  NULL,   4,     'VEIGA, JULIANA');
62 INSERT INTO TEMPLE VALUES (210, 100,  200, '1940-09-28', '1959-01-23', 380,  0,      2,     'GALVEZ, PILAR');
63 INSERT INTO TEMPLE VALUES (240, 111,  760, '1942-02-26', '1966-02-24', 280,  100,    3,     'SANZ, LAVINIA');
64 INSERT INTO TEMPLE VALUES (250, 100,  250, '1946-10-27', '1967-03-01', 450,  0,      0,     'ALBA, ADRIANA');
65 INSERT INTO TEMPLE VALUES (260, 100,  220, '1943-12-03', '1968-07-12', 720,  0,      6,     'LOPEZ, ANTONIO');
66 INSERT INTO TEMPLE VALUES (270, 112,  800, '1945-05-21', '1966-10-10', 380,  80,     3,     'GARCIA, OCTIAVIO');
67 INSERT INTO TEMPLE VALUES (280, 130,  410, '1948-01-11', '1971-10-08', 290,  0,      5,     'FLOR, DOROTEA');
68 INSERT INTO TEMPLE VALUES (285, 122,  620, '1949-10-25', '1968-02-15', 380,  0,      0,     'P0LO, OTILIA');
69 
70 INSERT INTO TEMPLE VALUES (290, 120,  910, '1947-11-30', '1968-02-19', 270,  0,      3,     'GIL, GLORIA');
71 INSERT INTO TEMPLE VALUES (310, 130,  480, '1946-11-21', '1971-01-15', 420,  0,      0,     'GARCIA, AUGUSTO');
72 INSERT INTO TEMPLE VALUES (320, 122,  620, '1957-12-25', '1978-02-05', 405,  0,      2,     'SANZ, CORNELIO');
73 INSERT INTO TEMPLE VALUES (330, 112,  850, '1948-08-19', '1972-03-01', 280,  90,     0,     'DIEZ, AMELIA');
74 INSERT INTO TEMPLE VALUES (350, 122,  610, '1949-04-13', '1984-09-10', 450,  0,      1,     'CAMPS, AURELIO');
75 INSERT INTO TEMPLE VALUES (360, 111,  750, '1958-10-29', '1968-10-10', 250,  100,    2,     'LARA, DORINDA');
76 INSERT INTO TEMPLE VALUES (370, 121,  360, '1967-06-22', '1987-01-20', 190,  0,      1,     'RUIZ, FABIOLA');
77 INSERT INTO TEMPLE VALUES (380, 112,  880, '1968-03-30', '1988-01-01', 180,  0,      0,     'MARTIN, MICAELA');
78 
79 INSERT INTO TEMPLE VALUES (390, 110,  500, '1966-02-19', '1986-10-09', 215,  0,      1,     'MORAN, CARMEN');
80 INSERT INTO TEMPLE VALUES (400, 111,  780, '1969-12-02', '1987-01-12', 185,  0,      0,     'LARA, LUCRECIA');
81 INSERT INTO TEMPLE VALUES (410, 122,  660, '1968-1-14', '1988-10-13', 175,  0,      0,     'MUÑOZ, AZUCENA');
82 INSERT INTO TEMPLE VALUES (420, 130,  450, '1966-10-22', '1988-11-19', 400,  0,      0,     'FIERRO, CLAUDIA');
83 INSERT INTO TEMPLE VALUES (430, 122,  650, '1967-02-26', '1988-11-19', 210,  0,      1,     'MORA, VALERIANA');
84 INSERT INTO TEMPLE VALUES (440, 111,  760, '1966-09-26', '1986-02-28', 210,  100,    0,     'DURAN, LIVIA');
85 INSERT INTO TEMPLE VALUES (450, 112,  880, '1966-10-21', '1986-02-28', 210,  100,    0,     'PEREZ, SABINA');
86 INSERT INTO TEMPLE VALUES (480, 111,  760, '1965-04-04', '1986-02-28', 210,  100,    1,     'PINO, DIANA');
87 INSERT INTO TEMPLE VALUES (490, 112,  880, '1964-06-06', '1988-01-01', 180,  100,    0,     'TORRES, HORACIO');
88 INSERT INTO TEMPLE VALUES (500, 111,  750, '1965-10-08', '1987-01-01', 200,  100,    0,     'VAZQUEZ, HONORIA');
89 INSERT INTO TEMPLE VALUES (506, NULL, 502, '1980-02-15', '2006-05-12', 500,  200,    2,     'Lopez, Antonio');
90 INSERT INTO TEMPLE VALUES (510, 110,  550, '1966-05-04', '1986-11-01', 200,  0,      1,     'CAMPOS, ROMULO');
91 INSERT INTO TEMPLE VALUES (550, 111,  780, '1970-01-10', '1988-01-21', 100,  120,    0,     'SANTOS, SANCHO');

Tarefas

Crea as seguintes vistas

Tarefa 1.1

Vista que amose para cada centro o seu nome e o nome dos departamentos ubicados no centro. Ordenar polo nome do centro.

Vista da tarefa 1.1

Tarefa 1.2

Vista que amose todos los datos dos departamentos que non dependen de ningún outro departamento. Vista da tarefa 1.2

Tarefa 1.3

Vista que amose para cada departamento o seu nome e o número de empregados que traballan nel co formato seguinte.

Vista da tarefa 1.3​

Tarefa 1.4

Vista que conteña as columnas numen, numde, extel y nomen dos empregados que teñen comisión

Vista da tarefa 1.34

Tarefa 1.5

Vista na que se amosen todos os datos dos empregados que durante este ano cumplen 30 ou máis anos de servizo.

Vista da tarefa 1.5​

Tarefa 1.6

Vista similar a anterior que amosa a mesma información para os empregados que na actualidade teñan cumpridos 40 ou máis anos de servizo. Garda a vista como vista6.

Vista da tarefa 1.6

Tarefa 1.7

Vista con todos os datos dos empregados con soldo igual ou superior á media dos soldos de todos os empregados da empresa. Ordena por salario.

Vista da tarefa 1.7

Tarefa 1.8

Vista para dispoñer da seguiente información de todos os departamentos:

Vista da tarefa 1.8

Tarefa 1.9

Vista que amose o nome dos departamentos que teñen máis de 3 empregados.

Vista da tarefa 1.39

Tarefa 1.10

vista con todos os datos dos empregados dos departamentos 100 ou 110. A sentenza SQL de creación debe contemplar a restricción que obrigue a que calquer operación de manipulación sobre esta vista só poda realizarse cos empregados destos 2 departamentos. Esta restricción deberá propagarse a todas as vistas que se creen a partir desta vista.

Vista da tarefa 1.10

Solución

Podes consultar unha posible solucion á practica DDL sobre vistas

Referencias