Simulado Banco de Questões - Implementação de Banco de Dados
24 pág.

Simulado Banco de Questões - Implementação de Banco de Dados


DisciplinaBanco de Dados I7.766 materiais66.602 seguidores
Pré-visualização7 páginas
varchar(30) 
); 
ALTER TABLE Empregado ADD CONSTRAINT fk_empregado_depto 
FOREIGN KEY (numDepto) REFERENCES Departamento(numDepto); 
INSERT INTO Departamento VALUES (1, Vendas´); 
INSERT INTO Departamento VALUES (2, En\u2265nharia´); 
INSERT INTO Departamento VALUES (3, Contabilidade´); 
INSERT INTO Departamento VALUES (4, RH´); 
INSERT INTO Empregado VALUES (11111´,Juliana´, 1); 
INSERT INTO Empregado VALUES (22222´,Gabriela´, 3); 
INSERT INTO Empregado VALUES (33333´,Francisco´, 3); 
INSERT INTO Empregado VALUES (44444´,Inácio´, 4); 
INSERT INTO Empregado VALUES (55555´ ,João´, 4); 
INSERT INTO Empregado VALUES (66666´,Vitor´, NULL); 
Considere que a consulta que segue foi executada sobre a base de dados com o estado resultante da sequência 
dos comandos apresentados no script anterior. 
SELECT * FROM Empregado LEFT OUTER JOIN Departamento 
ON Empregado.numDepto = Departamento.numDepto; 
Qual a quantidade de registros retornados por esta consulta? 
\uf072 Cinco 
\uf072 Três 
\uf072 Quatro 
\uf072 Sete 
\uf072 Seis 
79) (VUNESP \u2013 2009 \u2013 CETESB \u2013 Analista de Tecnologia da Informação \u2013 Banco de Dados) 
Na otimização de consultas em sistemas gerenciadores de bancos de dados, podem ser identificadas quatro 
etapas, listadas a seguir: 
I. escolher procedimentos candidatos; 
II. gerar planos de consulta e escolher o mais "econômico"; 
III. converter a consulta para a forma canônica; 
IV. converter a consulta para algum formato interno. 
A ordem correta para a execução dessas quatro etapas é: 
\uf072 III, II, IV e I. 
\uf072 I, III, II e IV. 
\uf072 II, IV, I e III. 
\uf072 IV, III, I e II. 
\uf072 II, I, III e IV. 
80) Baseado na tabela departamento ilustrada na figura a seguir escreva uma consulta SQL que recupere o número 
de departamentos existentes na tabela departamento. Nomeie a coluna como total_dep. 
 
Sugestão: 
SELECT count(*) total_dep 
FROM departamento 
81) Baseado na tabela dependente mostrada a seguir, escreva uma consulta SQL que recupere o parentesco dos 
dependentes. Elimine as linhas duplicadas. 
 
Sugestão: 
SELECT DISTINCT parentesco 
FROM dependente 
82) Baseado na tabela empregado ilustrada na figura a seguir, escreva uma consulta SQL que recupere a soma dos 
salários de todos os empregados, o salário máximo, o salário mínimo e a média dos salários. 
 
Sugestão: 
SELECT SUM(salario), MAX(salario), MIN(salario), AVG(salario) 
FROM empregado 
83) Baseado na tabela empregado mostrada a seguir, escreva uma consulta SQL que recupere todas as informações 
de empregado ordenando pelos empregados que possuem o maior salário. 
 
Sugestão: 
SELECT * 
FROM empregado 
ORDER BY salario DESC 
84) Baseado nas tabelas agência e empréstimo ilustradas a seguir escreva uma consulta SQL que encontre o 
número dos empréstimos que foram efetuados na agência Metropolitana com a quantia superior a R$300. 
 
 
Sugestão: 
SELECT numero_emprestimo 
FROM emprestimo e, agencia a 
WHERE e.numero_agencia = a.numero_agencia AND a.nome_agencia = 'Metropolitana' AND quantia > 300; 
85) Baseado nas tabelas empregado e dependente ilustradas na figura abaixo, escreva uma consulta SQL que 
recupere o(s) nome(s) do(s) empregado(s) que possui(em) mais de um dependente. 
 
 
Sugestão: 
SELECT nome, count(*) 
FROM empregado e, dependente d 
WHERE e.codigo_empregado = d.codigo_empregado 
GROUP BY nome 
HAVING count(*)>2 
86) Baseado nas tabelas esporte e atleta ilustradas a seguir, escreva uma consulta SQL que recupere os nomes e 
sexo dos atletas que praticam natação ordenados alfabeticamente. 
 
 
Sugestão: 
SELECT a.nome, sexo 
FROM atleta a, esporte e 
WHERE a.idesporte = e.idesporte AND e.nome = 'natação' 
ORDER BY a.nome 
87) Considere as tabelas abaixo: 
 
Queremos executar o seguinte comando SQL: 
 
O que acontecerá? Justifique sua resposta. 
Não será possível inserir a tupla mostrada no comando acima, pois não existe na tabela curso nenhuma tupla 
com o valor de cod_curso = 'ENG' e como a coluna cod_curso da tabela aluno é chave estrangeira da coluna 
cod_curso da tabela curso estaremos violando a restrição de integridade referencial ao tentar inserir a tupla 
mostrada acima. 
88) CONSIDERE O BANCO DE DADOS CRIADO A PARTIR DOS COMANDOS ABAIXO: 
CREATE TABLE DISCIPLINA (COD_DISCIPLINA VARCHAR (7) PRIMARY KEY, NOME_DISC VARCHAR (20) 
NOT NULL, CARGA_HORARIA 
NUMBER (3) NOT NULL) 
CREATE TABLE TURMA (COD_TURMA NUMBER (4) PRIMARY KEY, ANO NUMBER (4) NOT NULL, 
SEMESTRE VARCHAR (1) NOT NULL, 
COD_DISC VARCHAR (7) REFERENCES DISCIPLINA (COD_DISCIPLINA)); 
QUAL A CONSULTA SQL PARA RECUPERAR TODOS OS DADOS DE TODAS AS DISCIPLINAS? 
SELECT * FROM DISCIPLINA 
89) CONSIDERE O BANCO DE DADOS CRIADO PELOS COMANDOS ABAIXO: 
CREATE TABLE DISCIPLINA (COD_DISCIPLINA VARCHAR (7) PRIMARY KEY, NOME_DISC VARCHAR (20) 
NOT NULL, CARGA_HORARIA NUMBER (3) NOT NULL) 
CREATE TABLE TURMA (COD_TURMA NUMBER (4) PRIMARY KEY, ANO NUMBER (4) NOT NULL, 
SEMESTRE VARCHAR (1) NOT NULL, COD_DISC VARCHAR (7) REFERENCES DISCIPLINA 
(COD_DISCIPLINA)); 
QUAIS O(S) COMANDO (S) SQL NECESSÁRIO(S) PARA INSERIR A TURMA 3020 DE IMPLEMENTAÇÃO DE 
BANCO DE DADOS, NO PRIMEIRO SEMESTRE DE 2012, 88 CREDITOS, COM CÓDIGO DE DISCIPLNA 
CCT0199. A DISCIPLINA AINDA NÃO EXISTE NO BANCO DE DADOS. 
INSERT INTO DISCIPLINA VALUES ('CCT0199', 'IMPLEMENTAÇÃO DE BANCOS DE DADOS, 88); 
INSERT INTO TURMA VALUES (3020, 2012, 1, 'CCT0199'); 
90) Descreva as principais estratégias de otimização de consultas. 
\uf0b7 Otimização por regras: o otimizador utiliza um conjunto de heurísticas para transformar a consulta em um 
plano de acesso. 
\uf0b7 Otimização por custo: o otimizador utiliza algoritmos de busca por um plano de menor custo no espaço de 
todos os planos de execução possíveis. Para a determinação do custo de um plano, o otimizador precisa 
consultar estatísticas sobre as tabelas do banco de dados. 
91) Escreva o comando SQL para criar a tabela DEPENDENTE no banco de dados com os seguintes atributos e 
suas especificações: 
\uf0b7 CODIGO_EMPREGADO: número com 6 dígitos decimais; 
\uf0b7 NOME_DEPENDENTE: caractere que pode receber de 0 a 50 caracteres; 
\uf0b7 SEXO: caractere com 1 dígito; 
\uf0b7 DATA_NASC: atributo do tipo data; 
\uf0b7 PARENTESCO: caractere que pode receber de 0 a 15 caracteres; 
CREATE TABLE dependente (codigo_empregado NUMBER(6), nome_dependente VARCHAR(50), sexo 
CHAR(1), data_nasc DATE, parentesco VARCHAR(15)); 
92) Escreva o comando SQL para eliminar a tabela ATLETA do banco de dados. A tabela ATLETA está ilustrada na 
figura abaixo. 
 
DROP TABLE atleta 
93) Escreva o comando SQL que aumente em 10% o valor do preço das peças de cor azul. 
A tabela PECAS está ilustrada na figura a seguir. 
 
UPDATE pecas SET preco = preco*1.1 WHERE cor='Azul'. 
94) Escreva uma consulta SQL que recupere o código e o nome de todos os empregados. A tabela empregado está 
ilustrada na figura a seguir. 
 
SELECT codigo_empregado, nome 
FROM empregado. 
95) Escreva uma consulta SQL que recupere todas as informações da peça que possui o maior preço. A tabelapecas 
está ilustrada na figura a seguir. 
 
Sugestão: 
SELECT * 
FROM pecas 
WHERE preco = (SELECT MAX(preco) FROM pecas) 
96) Escreva uma consulta SQL que recupere todas as informações do empregado mais velho. A tabela empregado 
está ilustrada na figura a seguir. 
 
Sugestão: 
SELECT * 
FROM empregado 
WHERE data_nasc = (SELECT MIN(data_nasc) FROM empregado) 
97) Observe a tabela PECAS ilustrada na figura a seguir: 
 
Uma consulta foi realizada na tabela PECAS e o resultado obtido com a consulta está ilustrado na figura a seguir. 
Escreva a consulta SQL que retornará este resultado. 
 
Sugestão: 
SELECT num_peca, pnome,