Práctica DDL sobre vistas
Sumario
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.
Tarefa 1.2
Vista que amose todos los datos dos departamentos que non dependen de ningún outro departamento.
Tarefa 1.3
Vista que amose para cada departamento o seu nome e o número de empregados que traballan nel co formato seguinte.
Tarefa 1.4
Vista que conteña as columnas numen, numde, extel y nomen dos empregados que teñen comisión
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.
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.
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.
Tarefa 1.8
Vista para dispoñer da seguiente información de todos os departamentos:
Tarefa 1.9
Vista que amose o nome dos departamentos que teñen máis de 3 empregados.
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.
Solución
Podes consultar unha posible solucion á practica DDL sobre vistas
Referencias
- w3schools ejemplos de vistas
- guru99 ejemplos de vistas
- anerbarrena ejemplos de vistas
- Ventajas de vistas
- MySQL Tutorial
- Manual de referencia MySQL 8.0 Create View
- Manual de referencia MySQL 8.0 Views
- Manual de referencia MySQL 8.0 View check option
- a2hosting Más ejemplos de vistas
- javatpoint más ejemplos de vistas








