Exercicios silberchatz
(a) Encontre o número total de pessoas cujos automóveis estiveram envolvidos em acidentes em 1989.
R: SELECT count(DISTINCT motorista) FROM acidente WHERE data like '1989-%-%'
(b) Encontre o número de acidentes em que os automoveis de “John Smith” estiveram envolvidos.
R: SELECT count (acidente.data) FROM acidente,pessoa WHERE acidente.motorista = pessoa.ss# AND pessoa.nome = "John Smith"
(c) adicione um novo cliente ao banco de dados.
R: INSERT INTO pessoa (nome, endereco) VALUES ("Fulano de Tal", "Rua 123")
(d) Remova o Mazda pertencente a “John Smith”.
R: DELETE automovel.* FROM automovel,proprietários,licenca WHERE modelo = "Mazda" AND pessoa.nome = "John Smith" AND pessoa.ss# = proprietários.ss# AND automovel.licensa = proprietários.licensa
(e) Registre um novo acidente para o Toyota pertencente a “Jones”.
R: INSERT INTO acidente(data, motorista, danos) VALUES ('2008-11-29', (SELECT ss# FROM pessoa WHERE nome = "Jones"), 30) INSERT INTO sinistro(licença, data, motorista) VALUES ((SELECT automóvel.licensa FROM automóvel JOIN proprietarios ON automovel.licença = proprietários.licença JOIN pessoa ON proprietários.ss# = pessoa.ss# WHERE pessoa.nome="Jones"), '2008-11-29', (SELECT ss# FROM pessoa WHERE nome = "Jones")
4.2 Considere o banco de dados de empregados da figura 4.10. Forneça um expressão em SQL para cada uma das seguintes consultas.
(a) Encontre o nome de todos os empregados que trabalham para a First Bank Corporation.
R: SELECT nome_empregado FROM trabalha WHERE nome_companhia = "First Bank Corporation"
(b) Encontre todos os nomes das cidades dos empregados que trabalham na First Bank Corporation.
R: SELECT empregado.nome, empregado.cidade FROM empregado JOIN trabalha ON empregado.nome_empregado = trabalha.nome_empregado