· 6 years ago · Oct 03, 2019, 03:12 PM
1DROP DATABASE Alunos;
2DROP DATABASE Empresa_X;
3
4SET AUTOCOMMIT = 0;
5CREATE DATABASE IF NOT EXISTS Alunos;
6CREATE DATABASE IF NOT EXISTS Empresa_X;
7CREATE DATABASE IF NOT EXISTS Clinica_Paivense;
8CREATE DATABASE IF NOT EXISTS Oficina_X;
9CREATE DATABASE IF NOT EXISTS Vendas_a_Retalho;
10
11USE Alunos;
12
13CREATE TABLE IF NOT EXISTS cursos(
14 idcurso INT AUTO_INCREMENT PRIMARY KEY,
15 curso VARCHAR(45),
16 n_anos INT NOT NULL CHECK (n_anos > 0)
17);
18
19CREATE TABLE aluno(
20 idAluno INT AUTO_INCREMENT PRIMARY KEY,
21 nome VARCHAR(45) NOT NULL,
22 sexo CHAR(1) NOT NULL CHECK(sexo = 'M' OR sexo = 'F'),
23 data_nasc DATE,
24 morada VARCHAR(45),
25 curso_idcurso INT,
26 cursoo varchar(45),
27 CONSTRAINT aluno_curso_fk FOREIGN KEY(curso_idcurso) REFERENCES cursos(idcurso)
28);
29
30ALTER TABLE aluno
31 ADD bi INT,
32 ADD email VARCHAR(45);
33
34ALTER TABLE aluno
35 DROP FOREIGN KEY aluno_curso_fk;
36
37ALTER TABLE cursos
38MODIFY idcurso INT AUTO_INCREMENT;
39
40ALTER TABLE aluno
41 MODIFY idAluno INT AUTO_INCREMENT;
42
43-- CREATE UNIQUE INDEX index_aluno_nome ON aluno;
44
45USE Empresa_X;
46
47CREATE TABLE departamento(
48
49 idDepartamento INT AUTO_INCREMENT PRIMARY KEY,
50 nome_dept varchar(45)
51 );
52
53CREATE TABLE empregado(
54
55 idEmpregado INT AUTO_INCREMENT PRIMARY KEY,
56 nome varchar(45),
57 morada varchar(45),
58 salario numeric NOT NULL CHECK (salario>0),
59 data_nasc date,
60 data_inicio varchar(45)
61
62 );
63
64-- ALTER TABLE departamento
65-- ADD CONSTRAINT idDepartamento FOREIGN KEY(idDepartamento) REFERENCES departamento(idDepartamento);
66
67ALTER TABLE empregado
68 ADD nif varchar(45);
69
70SAVEPOINT ponto1;
71
72USE Alunos;
73
74ALTER TABLE Cursos
75 ADD tipologia varchar(45);
76
77START TRANSACTION;
78SAVEPOINT savepointA;
79
80INSERT INTO Aluno (nome, sexo , data_nasc, morada, email, bi, cursoo)
81 VALUES ("Ana Moreira","F","2000-2-2","Castelo de Paiva","amoreira@gmail.com","10922911","Tecnologias de Informação"),
82 ("Ana Silva","F","1999-6-12","Penafiel",NULL,"10922912","Engª Mecânica"),
83 ("Beatriz Silva","F","2000-5-20","Paredes",NULL,NULL,"Engª Têxtil"),
84 ("Ana Margarida","F","2000-6-12","Paredes",NULL,NULL,"Engª Mecânica"),
85 ("Paulo Andrade","M","1999-12-12","Gondomar",NULL,NULL,"Engª Civil (Mestrado)"),
86 ("Joel Pinheiro","M","1999-8-1","Penafiel","jpinheiro@hotmail.com",NULL,"Engª Civil (Mestrado)");
87
88SAVEPOINT savepointB;
89
90INSERT INTO Cursos (curso, n_anos, tipologia)
91 VALUES ("Tecnologias de Informação",3,"Licenciatura"),
92 ("Engª Mecânica",3,"Licenciatura"),
93 ("Engª Civil",5,"Mestrado"),
94 ("Engª Textil",3,"Bacharelato"),
95 ("Engª Civil",3,"Bacharelato");
96
97SAVEPOINT savepointC;
98COMMIT;
99
100UPDATE Aluno
101 SET data_nasc ="2001-5-23"
102 WHERE nome = "Beatriz Silva";
103
104DELETE FROM Aluno
105 WHERE nome = "Paulo Andrade";
106
107UPDATE Aluno
108 SET morada = "Castelo de Paiva"
109 WHERE nome = "Beatriz Silva";
110
111UPDATE Cursos
112 SET curso = "Mestrado de 5 anos"
113 WHERE curso = "Engª Mecânica";
114
115UPDATE Cursos
116 SET n_anos = 5
117 WHERE n_anos <> 5;
118
119DELETE FROM Cursos
120 WHERE tipologia = "Bacharelato";
121
122USE Empresa_X;
123
124COMMIT;
125
126INSERT INTO departamento(nome_dept)
127 VALUES ("Depº de Contabilidade"),
128 ("Depº de Administração"),
129 ("Depº de Produção"),
130 ("Depº de Vendas"),
131 ("Depº de Limpeza");
132
133/* INSERT INTO empregado(nome,morada,salario,data_nasc,idDepartamento,nif)
134
135 VALUES ("Ana Moreira","Porto",1450,"1978-2-2","Depº de Contabilidade",NULL),
136 ("Rui Silva","V.N.Gaia",1300,"1982-2-2","Depº de Contabilidade",218991121),
137 ("Miguel Santos", "Porto",1850,"1975-3-13","Depº de Aministração",NULL),
138 ("Ana Tavares","Porto",650,"1987-2-2","Depº de Vendas",NULL),
139 ("André Pinto","Porto",620,"1961-2-22","Depº de Produção",NULL),
140 ("Sónia Mildred","Porto",580,"1982-12-2","Depº de Produção",NULL),
141 ("Rui Sousa","Porto",600,"1978-12-20","Depº de Produção",NULL),
142 ("Hélder Bateria","Porto",490,"1988-2-2","Depº de Produção",NULL); */
143
144UPDATE empregado
145 SET data_inicio = "2007-3-1";
146
147INSERT INTO empregado(morada,salario,data_inicio)
148 VALUES ("Coimbra",450,"2019-12-12");
149
150UPDATE empregado
151 SET salario = salario + 10
152 WHERE data_nasc BETWEEN "1970-1-1" and "1979-12-31";
153
154DELETE FROM empregado
155 WHERE nome = "André Pinto";
156
157UPDATE empregado
158 SET salario = salario + 20
159 WHERE salario BETWEEN 1000 and 1500;
160
161UPDATE empregado
162 SET salario = salario + (salario*0.20);
163
164/*UPDATE empregado
165 SET salario = salario + (salario*0.05)
166 WHERE nome_dept = "Depº de Produção";
167
168UPDATE empregado
169 SET salario = (salario + (salario*0.1)) and nome_dept = "Depº de Vendas"
170 WHERE nome = "Rui Sousa";
171
172DELETE FROM empregado
173 WHERE nome_dept = "Depº de Limpeza";
174
175UPDATE empregado
176 SET nome_dept = "Depº de Administração"
177 WHERE nome_dept = "Depº de Vendas";*/
178
179USE Vendas_a_Retalho;
180
181CREATE TABLE IF NOT EXISTS Cliente(
182
183 idCliente INT AUTO_INCREMENT,
184 nome varchar(45) NOT NULL,
185 morada varchar(45),
186 nif varchar(45)
187 );
188
189CREATE TABLE IF NOT EXISTS Encomendas(
190
191 idEncomendas INT AUTO_INCREMENT,
192 data_encomenda DATE,
193 Cliente_idCliente INT,
194 CONSTRAINT Cliente_idCliente FOREIGN KEY(Cliente_idCliente) REFERENCES Cliente(idCliente)
195
196);
197
198CREATE TABLE IF NOT EXISTS Produtos(
199
200 idProdutos INT AUTO_INCREMENT,
201 nome varchar(45),
202 preco numeric,
203 stock int
204
205);
206
207CREATE TABLE IF NOT EXISTS Linha_Encomendas(
208
209 quantidade INT,
210 CONSTRAINT idEncomendas FOREIGN KEY (idEncomendas) REFERENCES Encomendas(idEncomendas),
211 CONSTRAINT idEncomendas FOREIGN KEY (idProdutos) REFERENCES Produtos(idProdutos)
212
213);
214
215ALTER TABLE Produtos
216 ADD marca varchar(45),
217 ADD modelo varchar(45);
218
219INSERT INTO Cliente (nome,morada,nif)
220 VALUES ("Ana Moreira","Porto",219919921),
221 ("Ana Silva","Porto",215939221),
222 ("Beatriz Silva","Braga",225939221),
223 ("Maria Carneiro","Porto",215939221),
224 ("Ana Moreira","Aveiro",235939221),
225 ("Ana Moreira","Coimbra",225439221);
226
227INSERT INTO Produtos (nome,marca,modelo,preco,stock)
228 VALUES ("TV 32", "LG","EM121232",323,23),
229 ("TV 42", "LG", "EM121242", 423, 15),
230 ("TV 42", "Sony", "S121242", 401, NULL),
231 ("TV 42", "Grundig", "G121242", 427, 15),
232 ("TV 40", "SAMSUNG", "FD1240", 400, 10),
233 ("SmartPhone", "SAMSUNG", "Galaxy S7", 500, 10),
234 ("SmartPhone", "Apple", "Iphone 7s", 700, 10);
235
236COMMIT;