Repository navigation
Expand file tree
/
Copy pathVIEWS.SQL
More file actions
89 lines (68 loc) · 1.95 KB
/
Copy pathVIEWS.SQL
File metadata and controls
89 lines (68 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
SELECT C.NOME,
C.SEXO,
C.EMAIL,
T.TIPO,
T.NUMERO,
E.BAIRRO,
E.CIDADE,
E.ESTADO
FROM CLIENTE C
INNER JOIN ENDERECO E
ON C.IDCLIENTE = E.ID_CLIENTE
INNER JOIN TELEFONE T
ON C.IDCLIENTE = T.ID_CLIENTE;
/* VIEWS */
CREATE VIEW V_RELATORIO AS
SELECT C.NOME,
C.SEXO,
IFNULL(C.EMAIL,'CLIENTE SEM EMAIL') AS "EMAIL",
T.TIPO,
T.NUMERO,
E.BAIRRO,
E.CIDADE,
E.ESTADO
FROM CLIENTE C
INNER JOIN ENDERECO E
ON C.IDCLIENTE = E.ID_CLIENTE
INNER JOIN TELEFONE T
ON C.IDCLIENTE = T.ID_CLIENTE;
SHOW VIEWS;
DROP VIEW RELATORIO;
SHOW TABLES;
INSERT INTO V_RELATORIO VALUES (
'ANDREIA','F','ANDREIA@OUL.COM.BR','CEL','873547864','CENTRO','VITORIA','ES'
);
ERROR 1394 (HY000): Can not insert into join view 'comercio.v_relatorio' without fields list
ERROR 1395 (HY000): Can not delete from join view 'comercio.v_relatorio'
DELETE FROM V_RELATORIO WHERE NOME = 'JORGE';
/* É PERMITIDO FAZER UPDATES EM VIEWS COM JOIN */
UPDATE V_RELATORIO SET NOME = 'JOSE' WHERE NOME = 'JORGE';
CREATE TABLE JOGADORES(
IDJOGADOR INT,
NOME VARCHAR(30),
ESTADO CHAR(2)
);
INSERT INTO JOGADORES VALUES(1,'GUERRERO','RS');
INSERT INTO JOGADORES VALUES(2,'GABIGOL','RJ');
INSERT INTO JOGADORES VALUES(3,'GANSO','RJ');
INSERT INTO JOGADORES VALUES(4,'NENÊ', 'RJ');
INSERT INTO JOGADORES VALUES(5,'LOVE','SP');,
CREATE VIEW V_JOGADORES AS
SELECT NOME, ESTADO
FROM JOGADORES;
SELECT * FROM V_JOGADORES;
DELETE FROM V_JOGADORES
WHERE NOME = 'GUERRERO';
INSERT INTO V_JOGADORES VALUES('GUERRERO','RS');
SELECT * FROM JOGADORES;
+-----------+----------+--------+
| IDJOGADOR | NOME | ESTADO |
+-----------+----------+--------+
| 2 | GABIGOL | RJ |
| 3 | GANSO | RJ |
| 4 | NENÊ | RJ |
| 5 | LOVE | SP |
| NULL | GUERRERO | RS |
+-----------+----------+--------+
SELECT * FROM V_RELATORIO
WHERE SEXO = 'F';