Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. Em relação a álgebra linear é correto afirmar que: I - A operação de projeção é aplicada sobre apenas uma relação visando selecionar um subconjunto de tuplas (com todos os seus atributos). II O produto cartesiano é uma operação binária que combina todas as tuplas de duas tabelas. III - A operação de seleção é aplicada sobre apenas uma relação de visando projetar os atributos de uma relação de acordo com uma lista de atributos oferecida. Estão corretas: Somente a II Somente I II e III I e III Somente III 2. I, II e IV. II, III e IV. I e II. I, III e IV. I e III. 3. Sobre Álgebra Relacional é possível afirmar que: A união só poderá ocorrer quando houver, nas duas consultas, o mesmo número de linhas é o operador de Projeção, usado quando se quer restringir o número de linhas é o operador de Seleção, usado quando se quer restringir o número de colunas é o operador da Junção, usado quando se deseja identificar a chave primária e a chave estrangeira das consultas O Produto Cartesiano é a concatenação de cada linha da primeira consulta com todas as linhas da segunda consulta 4. Uma imobiliária possui um banco de dados com informações de clientes e imóveis. Entre as tabelas do sistema existem as tabelas abaixo: Analise a expressão da álgebra relacional: O resultado da expressão acima retorna Explicação: O produto cartesiano retornará uma combinação de todas as linhas das tabelas envolvidas: A seleção atuará e retornará somente as linhas cujo estado = RJ. A projeção atuará e retornará somente as colunas nome e tipo. 5. Em relação a álgebra relacional, o operador de _____________ permite combinar seleções e um produto cartesiano em uma só operação. Diferença União Interseção Projeção Junção 6. 7. Conforme a relação de empregado abaixo, através da álgebra relacional, escolha a opção que selecione o nome e endereço de cada empregado, que possua salário superior a R$ 5.000,00. Empregado(matrícula, nome, endereço, salário, departamento, cargo). π nome,endereco (δ salario>5000 (Empregado)) δ nome,endereco (π salario>5000 (Empregado)) π salario>5000 (δ nome,endereco (Empregado)) π salario>5000 X (δ nome,endereco (Empregado)) π nome,endereço (Empregado) X (δ salario>5000 (Empregado)) 8. SELECT * FROM Imovel WHERE Tamanho > 70 AND numQuartos >1 SELECT * FROM Imovel WHERE Tamanho > 70 OR numQuartos >1 SELECT Tamanho > 70 OR numQuartos > 1 FROM Imovel SELECT Imovel FROM Tamanho > 70 OR numQuartos > 1 SELECT Tamanho > 70 AND numQuartos > 1 FROM Imovel 1. Uma imobiliária está criando um banco de dados específico para aluguel de imóveis por temporada. A primeira tabela a ser criada no banco de dados é a tabela TipoImovel, representada pela figura: Sabendo-se que o atributo NomeTipoImovel é obrigatório, assinale qual das alternativas abaixo cria esta tabela corretamente no banco de dados: CREATE TABLE TipoImovel (CodTipoImovel INTEGER, NomeTipoImovel VARCHAR (50) NOT NULL, Primary Key (CodTipoImovel)) CREATE TABLE TipoImovel (CodTipoImovel INTEGER, NomeTipoImovel VARCHAR (50), Primary Key (CodTipoImovel)) CREATE TABLE TipoImovel (CodTipoImovel INTEGER, NomeTipoImovel VARCHAR (50) NOT NULL) CREATE TABLE TipoImovel (CodTipoImovel INTEGER, PRIMARY KEY, NomeTipoImovel VARCHAR (50) NOT NULL) CREATE TABLE TipoImovel (CodTipoImovel INTEGER, NomeTipoImovel VARCHAR (50)) 2. Assinale a opção que possui o comando CREATE TABLE que cria corretamente a tabela "Alunos", segundo o seguinte esquema de banco de dados: Alunos(matricula, nome, endereco, cod_curso) Cursos(codigo, nome) Admitindo que os campos "matricula" e "codigo" são chaves primárias de suas tabelas e que o campo "cod_curso" é chave estrangeira da tabela "Cursos" na tabela "Alunos". create table Alunos ( matricula int not null, nome varchar(50) not null, endereco varchar(255) null, cod_curso int not null, constraint pk_alunos primary key (nome), constraint fk_alunos_cursos foreign key (cod_curso) references Cursos(codigo) ) create table Alunos ( matricula int not null, nome varchar(50) not null, endereco varchar(255) null, cod_curso int not null, constraint fk_alunos_cursos foreign key (cod_curso) references Cursos(codigo) ) create table Alunos ( matricula int not null, nome varchar(50) not null, endereco varchar(255) null, cod_curso int not null, constraint pk_alunos primary key (matricula), constraint fk_alunos_cursos foreign key (cod_curso) references Cursos(codigo) ) create table Alunos ( matricula int not null, nome varchar(50) not null, endereco varchar(255) null, cod_curso int not null, constraint pk_alunos primary key (matricula), constraint fk_alunos_cursos foreign key (codigo) references Cursos(cod_curso) ) create table Alunos ( matricula int not null, nome varchar(50) not null, endereco varchar(255) null, cod_curso int not null, constraint pk_alunos primary key (matricula) ) 3. O diagrama acima apresenta uma classe denominada Municipio, para armazenar informações sobre determinado município, seu código, nome, tamanho e o estado a que pertence. Também há uma classe denominada Estado, para armazenar dados da unidade da Federação, como seu código e sua denominação. Com base nesse diagrama, e considerando a utilização da linguagem SQL, assinale a opção que apresenta a forma correta de criação da tabela Estado, considerando a criação das chaves primárias (PK) e estrangeiras (FK). create table estado ( codigo_ibge pk, nome_estado ) create table estado ( codigo_ibge integer pk, nome_estado varchar(100) ) create table estado ( codigo_ibge integer primary key, nome_estado varchar (255), uf primary key ) create table estado ( codigo_ibge integer primary key, nome_estado varchar (255) ) create table estado ( codigo_ibge integer primary key, nome_estado varchar (255), uf integer FK ) 4. Que cláusula do comando SQL CREATE TABLE inclui a lista dos atributos que constituem uma chave candidata? CHECK RESTRICT FOREIGN KEY UNIQUE NOT NULL 5. Considere o modelo de banco de dados abaixo: medico (CRM, NomeMedico, Idade,Cidade,Especialidade); paciente (Ident,NomePaciente,Idade,Cidade,Doenca); consulta (Ident, CRM, Data, Hora); Qual alternativa altera a idade do paciente "Fulano de tal"?. update paciente where nomePaciente="Fulano de tal" insert into paciente (idade) values (25) where nomePaciente="Fulano de tal" alter paciente set idade=25 update paciente set idade=25 where nomePaciente="Fulano de tal" alter paciente set idade=25 where nomePaciente="Fulano de tal" 6. Qual o efeito da seguinte instrução no banco de dados? DELETE FROM tabela Exclui a primeira linha da tabela Exclui todas as linhas da tabela Exclui a tabela do banco de dados Exclui todas as colunas da tabela Exclui o banco de dados inteiro 7. Considere o modelo de banco de dados abaixo: medico (CRM, NomeMedico, Idade,Cidade,Especialidade); paciente (Ident,NomePaciente,Idade,Cidade,Doenca); consulta (Ident, CRM, Data, Hora); Qual alternativa altera a idade do paciente "Fulano de tal"?. update paciente set idade=25 where nomePaciente="Fulanode tal" alter paciente set idade=25 where nomePaciente="Fulano de tal" alter paciente set idade=25 insert into paciente (idade) values (25) where nomePaciente="Fulano de tal" update paciente where nomePaciente="Fulano de tal" 8. (PRODEST-ES/2014) Sobre a chave primária de uma tabela de um banco de dados relacional, é correto afirmar que: não pode conter atributos do tipo numérico. pode ser composta por mais de um atributo. pode conter, no máximo, três atributos. não há chave primária em tabelas com até 100 registros. não pode conter atributos do tipo textual. 1. SELECT DISTINCT NOMEP FROM PROFESSOR P , TCC T, ALUNO A; SELECT NOMEP FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT DISTINCT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A; SELECT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT DISTINCT NOMEP "Nome do Professor" FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA; 2. Um programador precisa utilizar, em uma aplicação conectada a um banco de dados Oracle, uma instrução SQL para exibir apenas os nomes de funcionários da tabela func cujo campo nome se inicie pela letra P. A instrução correta que deve ser utilizada é SELECT nome FROM func WHERE nome LIKE P%; SELECT nome FROM func LIKE nome=P%; SELECT nome FROM func WHERE nome CONTAINS P%; SELECT nome FROM func WITH P% IN nome; SELECT nome FROM func WHERE nome=P%; 3. Observe a tabela abaixo, referente a um banco de dados empresa: Para gerar uma consulta SQL com todos os atributos, classificados por NOME_PACIENTE, deve-se utilizar o seguinte comando: SELECT * OVER PACIENTE ASC NOME_PACIENTE; SELECT * FROM PACIENTE ORDER BY NOME_PACIENTE; SELECT * FROM PACIENTE ASC NOME_PACIENTE; SELECT * FROM PACIENTE DESC NOME_PACIENTE; SELECT * OVER PACIENTE ORDER BY NOME_PACIENTE; 4. Com relação ao comando a seguir, CREATE TABLE empregado (cod_empregado DECIMAL(6) NOT NULL, nome CHAR(15), cod_chefe DECIMAL(6), cpf CHAR(11) NOT NULL, cod_dep DECIMAL(3) NOT NULL, CONSTRAINT PRIMARY KEY (cod_empregado), CONSTRAINT FOREIGN KEY (cod_chefe) REFERENCES empregado (cod_empregado), CONSTRAINT FOREIGN KEY (cod_dep) REFERENCES departamento (codigo), CONSTRAINT UNIQUE (cpf)); é CORRETO afirmar que: A coluna cod_dep pode receber valores nulos. A coluna cod_chefe é chave estrangeira da tabela empregado. A coluna cpf é chave primária da tabela empregado. A coluna cpf é chave estrangeira da tabela empregado. A coluna cod_empregado é uma chave estrangeira da tabela empregado. 5. O esquema de banco de dados apresentado abaixo faz parte de um banco de dados criado a partir de um conjunto de dados públicos de captura de tubarões entre os anos de 2001 e 2013 na costa da Austrália. Os dados podem ser baixados no endereço: https://data.qld.gov.au/dataset/shark-control-program-shark-catch-statistics/resource/5c6be990-3938-4125-8cca-dac0cd734263 Características do esquema: Chave primária sublinhada e chave estrangeira em itálico. Seguem algumas tabelas do Esquema: Espécie (IDEspécie, IDOrdem. Nome_Científico, TamMaior, TamMenor, TamMédio) Nome (IDNome, IDEspécie, NomePopular) Tubarão (IDTubarão, IDEspécie, Comprimento, Sexo) Captura (NumCaptura, IDTubarão, IDLocal, Data, TempAgua) Assinale em qual das consultas abaixo são selecionados nomes populares de tubarões, sem repetição, que foram capturados com temperatura da água igual a 25 e 27 graus: SELECT DISTINCT NomePopular FROM NOME N, ESPÉCIE E, TUBARÃO T, CAPTURA C WHERE N.IDESPÉCIE = E.IDESPECIE AND T.IDTUBARÃO = C.IDTUBARÃO AND TEMPAGUA IN(25,27); SELECT NomePopular FROM NOME N, ESPÉCIE E, TUBARÃO T, CAPTURA C WHERE N.IDESPÉCIE = E.IDESPECIE AND T.IDTUBARÃO = C.IDTUBARÃO AND TEMPAGUA NOT BETWEEN 25 AND 27; SELECT DISTINCT NomePopular FROM NOME N, ESPÉCIE E, TUBARÃO T, CAPTURA C WHERE N.IDESPÉCIE = E.IDESPECIE AND E.IDESPECIE = T.IDESPECIE AND T.IDTUBARÃO = C.IDTUBARÃO AND TEMPAGUA IN(25,27); SELECT DISTINCT NomePopular FROM NOME N, ESPÉCIE E, TUBARÃO T, CAPTURA C WHERE N.IDESPÉCIE = E.IDESPECIE AND E.IDESPECIE = T.IDESPECIE AND T.IDTUBARÃO = C.IDTUBARÃO AND TEMPAGUA = 25 AND 27; SELECT NomePopular FROM NOME N, ESPÉCIE E, TUBARÃO T, CAPTURA C WHERE N.IDESPÉCIE = E.IDESPECIE AND E.IDESPECIE = T.IDESPECIE AND T.IDTUBARÃO = C.IDTUBARÃO AND TEMPAGUA BETWEEN 25 AND 27; 6. De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para: Apresentar apenas o nome completo do Empregado que atende ao Cliente ¿Ponto Quente¿. SELECT PRIM_NOME || || ULT_NOME FROM EMPREGADO E, CLIENTE C WHERE C.VENDEDOR = E.ID AND C.NOME= 'Ponto Quente'; SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO E, CLIENTE C WHERE C.VENDEDOR = E.ID AND C.NOME=' Ponto Quente'; SELECT PRIM_NOME || || ULT_NOME FROM EMPREGADO E, CLIENTE C WHERE E.VENDEDOR = C.ID AND C.NOME=' Ponto Quente'; SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO E, CLIENTE C WHERE C.NOME='Ponto Quente'; SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO C, CLIENTE E WHERE C.VENDEDOR = E.ID AND C.NOME=' Ponto Quente'; 7. Considere a consulta a seguinte: Marque a alternativa que representa o script equivalente em SQL: SELECT aluno FROM nome WHERE matricula = 0364; SELECT * FROM aluno WHERE nome, matricula = 0364; SELECT matricula = 0364 FROM aluno WHERE nome; SELECT nome FROM aluno WHERE matricula = 0364; SELECT aluno WHERE matricula = 0364; 8. O esquema de banco de dados apresentado abaixo faz parte de um banco de dados criado a partir de um conjunto de dados públicos de captura de tubarões entre os anos de 2001 e 2013 na costa da Austrália. Os dados podem ser baixados no endereço: https://data.qld.gov.au/dataset/shark-control-program-shark-catch-statistics/resource/5c6be990-3938-4125-8cca-dac0cd734263 Características do esquema: Chave primária sublinhada e chave estrangeira em itálico. Seguem algumas tabelas do Esquema: Espécie (IDEspécie, IDOrdem. Nome_Científico, TamMaior, TamMenor, TamMédio) Tubarão (IDTubarão, IDEspécie, Comprimento, Sexo) Captura (NumCaptura, IDTubarão, IDLocal, Data, TempAgua) Local (IDLocal, CodArea, NomeLocal) Area (CodArea, NomeArea) Sabendo-se que um metro possui 39,3700787 polegadas, assinale a alternativa correto abaixo que consulta a data da captura, a temperatura da água e o comprimento do tubarão convertido em polegadas com o título Polegadas: SELECT DATA, TEMPAGUA, "COMPRIMENTO * 39,3700787" Polegadas FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO; SELECT DATA, TEMPAGUA, COMPRIMENTO * 39.3700787 Polegadas FROM TUBARÃO T, CAPTURA C; SELECT DATA, TEMPAGUA, (COMPRIMENTO * 39,3700787) Polegadas FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO; SELECT DATA, TEMPAGUA, COMPRIMENTO * 39,3700787 Polegadas FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO; SELECT DATA, TEMPAGUA, COMPRIMENTO * 39.3700787 Polegadas FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO; 1. Durante uma consulta SQL, utilizando o comando select, é possível selecionar linhas que se assemelham em uma determinada porção de uma string. Qual é o operador utilizado para esse tipo de seleção? Operador de Caracteres semelhantes (like) Operador de indisponibilidade (maybe) Operador de Intervalos (between) Operador de Listas(in) Operador de comparação (=,>,<)2. De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para: Apresentar os Ids e os nomes dos Departamentos ordenados por nome de forma Decrescente. SELECT ID, NOME FROM DEPARTAMENTO ORDER BY NOME; SELECT ID, NOME FROM DEPARTAMENTO ORDER BY NOME DESC; SELECT ID, NOME FROM DEPARTAMENTO ORDER BY ASC NOME; SELECT ID, NOME FROM DEPARTAMENTO ORDER BY NOME ASC; SELECT ID, NOME FROM DEPARTAMENTO ORDER BY DESC NOME; 3. Observe a tabela R: Qual será o resultado da consulta: SELECT X FROM R WHERE Y is null; 4 e null 1 e 4 1 e 5 null e 5 5 4. Em uma instrução SQL, o caractere utilizado para representar qualquer caractere em uma consulta é o % $ ? # & 5. DELETE ALL FROM ALUGUEL WHERE CODIMOVEL IS NULL DELETE FROM ALUGUEL WHERE CODIMOVEL IS NOT NULL DELETE * FROM ALUGUEL WHERE CODANUNCIO IS NULL DELETE FROM ALUGUEL WHERE CODANUNCIO IS NOT NULL DELETE ALL FROM ALUGUEL WHERE CODANUNCIO IS NULL 6. SELECT ALL NumQuartos FROM Imovel SELECT DISTINCT NumQuartos FROM Imovel SELECT DISTINCT * FROM Imovel SELECT * NumQuartos FROM Imovel SELECT DISTINCT ALL NumQuartos FROM Imovel 7. SELECT * FROM TipoImovel WHERE Descricao LIKE _churrasqueira* SELECT * FROM Imovel WHERE Descricao LIKE %churrasqueira% SELECT * FROM Imovel WHERE Descricao LIKE _churrasqueira% SELECT * FROM TipoImovel WHERE Descricao LIKE %churrasqueira% SELECT * FROM Imovel WHERE Descricao LIKE *churrasqueira* 8. Assinale a alternativa que retorna corretamente o seguinte resultado: "Todos os alunos cujos nomes terminam em Silva e começam por T ou B." SELECT * FROM alunos WHERE nome LIKE [BT]%Silva SELECT * FROM alunos WHERE nome LIKE BorT%Silva SELECT * FROM alunos WHERE nome LIKE [B-T]%Silva SELECT * FROM alunos WHERE nome = BT%Silva SELECT * FROM alunos WHERE nome LIKE [BT]% OR nome LIKE %Silva 1. O esquema abaixo refere-se a um banco de dados criado para auxiliar na gerência de orientação de alunos por professores e da defesa do Trabalho de Conclusão de Curso (TCC) pelos alunos. Analise-o: Professor (MatP,NomeP, telP, emailP) Aluno (MatA, MatP, NomeA, emailA) TCC (IDTCC, MatA, Titulo, Resumo) Assinale a única alternativa que retorna exatamente os dados exibidos na figura: SELECT NOMEA ALUNO, NOMEP PROFESSOR, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP, NOMEA, TITULO FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEP PROFESSOR, NOMEA ALUNO, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP; SELECT NOMEP PROFESSOR, NOMEA ALUNO, TITULO "TÍTULO" FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; SELECT NOMEA ALUNO, NOMEP PROFESSOR, TITULO FROM PROFESSOR P, ALUNO A, TCC T WHERE P.MATP = A.MATP AND A.MATA = T.MATA; 2. Quando desejamos selecionar o maior e o menor valor de um atributo numérico usamos: AVG MIN, MAX MAIOR, MENOR COUNT SUM 3. Considerando as tabelas descritas a seguir e a legenda: PK - chave primária / FK - chave estrangeira. 1 - ALUNO (matricula,nome,especializacao,nivel,idade), onde matricula é a PK; 2 - TURMA (nome_turma,horario,sala), onde nome_turma é a PK; 3 - MATRICULA (numero_aluno,nome_turma,numero_posicao), onde numero_aluno e nome_turma formam a PK, numero_aluno é FK referenciando ALUNO e nome_turma é FK referenciando TURMA. Marque a opção que contém o código em SQL para exibir o(s) nome(s) da(s) turma(s) que tem mais de 20 alunos matriculados: SELECT nome_turma,count(*) FROM TURMA t INNER JOIN MATRICULA m ON t.nome_turma = m.nome_turma WHERE count(*) > 20 SELECT * FROM TURMA t,MATRICULA m ON t.nome_turma = m.nome_turma WHERE count(*) > 20 SELECT t.nome_turma,count(*) FROM TURMA t INNER JOIN MATRICULA m ON t.nome_turma = m.nome_turma HAVING count(*) > 20 GROUP BY t.nome_turma SELECT t.nome_turma,count(*) FROM TURMA t INNER JOIN MATRICULA m ON t.nome_turma = m.nome_turma GROUP BY 1 HAVING count(*) > 20 SELECT nome_turma,count(*) FROM TURMA t INNER JOIN MATRICULA m ON t.nome_turma = m.nome_turma GROUP BY nome_turma WHERE count(*) > 20 4. Observe a tabela empregado: Qual será o resultado se executarmos a consulta abaixo: São Paulo, Santos, Santos, Rio de Janeiro, Niterói Niterói, Rio de Janeiro, Santos, São Paulo São Paulo, Santos, Rio de Janeiro, Niterói Niterói, Rio de Janeiro, Santos, Santos, São Paulo Niterói, Rio de Janeiro, Santos 5. Para o comando apresentado a seguir, indique a alternativa que apresenta o resultado obtido com a sua execução: SELECT ID, DESCRICAO FROM Turma ORDER BY DESCRICAO desc; Seleciona todos os campos da tabela Turma ordenando os registros por DESCRICAO em ordem decrescente Seleciona os campos ID e DESCRICAO da tabela Turma ordenando os registros por DESCRICAO em ordem decrescente Seleciona todos os registros da tabela Turma Seleciona todos os campos e os registros da tabela turma Seleciona os campos ID e DESCRICAO da tabela Turma 6. Quando usar o Group By Quando usar funções de Coluna Quando usar o Order By em conjunto com a função SUM Quando Usar o Order By Sempre apos o comando Where Quando usar a Função Where 7. Considere a seguinte tabela de Empregados: Empregado (CodEmpregado, Nome, Salario) Escolha o comado SQL que liste o nome de todos os empregados sem repetição e em ordem decrescente: SELECT Nome FROM Empregado ORDER BY Nome SELECT DISTINCT Nome FROM Empregado GROUP BY Nome SELECT ORDER BY Nome FROM Empregado WHERE DISTINCT Nome SELECT DISTINCT Nome FROM Empregado ORDER BY Nome DESC SELECT Nome FROM Empregado ORDER BY DISTINCT Nome 8. Dentre as opções a seguir, qual não é uma função de grupo? MED(X) SUM(x) CONT(*) MAX(x) AVG (x) 1. Quando dois conjuntos de dados são concatenados de acordo com uma determinada condição, representa o resultado da operação relacional: intersecção restrição união projeção junção 2. seis três cinco sete quatro 3. Considere o seguinte comando SQL: SELECT D.NM_DEPARTAMENTO, SUM(P.SALARIO) FROM TB_DEPARTAMENTO D INNER JOIN TB_PROFESSOR P ON (D.COD_DEPARTAMENTO = P.COD_DEPARTAMENTO) É CORRETO afirmar: Se existir uma linha na tabela TB_PROFESSOR com valor NULO (NULL) para o atributo SALARIO, o resultado da consulta também será um valor NULO (NULL). A junção INNER JOIN não pode ser utilizada com a função de agregação SUM( ). A consulta irá retornar o mesmo número de linhas da tabela TB_PROFESSOR. A sintaxe do comando está incorreta, pois deveria apresentar a cláusula GROUP BY. soma total. 4. Três alugueis do Tipo1, três do Tipo2 e um do Tipo3. Um aluguel do Tipo1, três do Tipo2 e três do Tipo3. Dois alugueis do Tipo1, quatro do Tipo2 e um do Tipo3. Dois alugueis do Tipo1, três do Tipo2 e dois do Tipo3. Um aluguel do Tipo1, quatro do Tipo2 e dois do Tipo3.5. quatro e três. quatro e quatro. três e quatro. cinco e cinco. cinco e quatro. 6. SELECT fi.nome filial, count(*) FROM Filial fi INNER JOIN Carro c ON fi.idfilial=c.filial_idfilial GROUP BY filial SELECT fi.nome filial, count(*) FROM Filial fi RIGHTJOIN Carro c ON fi.idfilial=c.filial_idfilial GROUP BY filial SELECT fi.nome filial, count(*) FROM Filial fi INNER JOIN Carro c SELECT fi.nome filial, count(*) FROM Filial fi INNER JOIN Carro c ON fi.idfilial=c.filial_idfilial SELECT fi.nome filial, count(*) FROM Filial fi LEFT JOIN Carro c ON fi.idfilial=c.filial_idfilial GROUP BY filial 7. O comando select permite gerar produto cartesiano porque os bancos relacionais utilizam álgebra relacional. O select permite produto cartesiano mas por outra ração que não é a algebra relacional. A primeira sentença está certa porém a segunda está errada. A primeira sentença está errada porém a segunda está certa. Ambas sentenças estão erradas. Ambas sentenças estão certas. 8. Na sintaxe ANSI da junção Interior, na sua forma padrão é: select [colunas] from tabela1 LEFT JOIN tabela2 ON ; select [colunas] from tabela1 INNER JOIN tabela2 ON ; select [colunas] from tabela1 RIGHT JOIN tabela2 ON ; select * from tabela1 CROSS JOIN tabela2; select * from tabela1 LEFT JOIN tabela2; 1. SELECT NOMETIPOIMOVEL, TAMANHO, NUMQUARTOS , NUMBANHEIROS "NUMERO QUARTOS E BANHEIROS" FROM IMOVEL I, TIPOIMOVEL T WHERE I.CODTIPOIMOVEL = T.CODTIPOIMOVEL; SELECT NOMETIPOIMOVEL, TAMANHO, NUMQUARTOS || - || NUMBANHEIROS "NUMERO QUARTOS E BANHEIROS" FROM IMOVEL , TIPOIMOVEL WHERE NOMETIPOIMOVEL = APARTAMENTO PADRÃO; SELECT NOMETIPOIMOVEL, TAMANHO, NUMQUARTOS || - || NUMBANHEIROS "NUMERO QUARTOS E BANHEIROS" FROM IMOVEL I, TIPOIMOVEL T WHERE I.CODTIPOIMOVEL = T.CODTIPOIMOVEL AND NOMETIPOIMOVEL = APARTAMENTO PADRÃO; SELECT NOMETIPOIMOVEL, TAMANHO, NUMQUARTOS "NUMERO QUARTOS E BANHEIROS", NUMBANHEIROS FROM IMOVEL , TIPOIMOVEL WHERE UPPER(NOMETIPOIMOVEL) = APARTAMENTO PADRÃO; SELECT NOMETIPOIMOVEL, TAMANHO, NUMQUARTOS || - || NUMBANHEIROS "NUMERO QUARTOS E BANHEIROS" FROM IMOVEL I, TIPOIMOVEL T WHERE I.CODTIPOIMOVEL = T.CODTIPOIMOVEL AND UPPER(NOMETIPOIMOVEL) = APARTAMENTO PADRÃO; 2. A junção irrestrita também é conhecida como: Junção Interior Autojunção Junção Contínua Junção Cruzada Junção Exterior 3. SELECT PNOME || || SNOME CLIENTE, VALORDIARIA, PERIODO FROM CLIENTE NATURAL JOIN ALUGUEL WHERE PERIODO > (SELECT AVG(PERIODO) FROM ALUGUEL); SELECT PNOME || || SNOME CLIENTE, VALORDIARIA, PERIODO FROM CLIENTE NATURAL JOIN ALUGUEL WHERE VALORDIARIA*PERIODO > (SELECT AVG(VALORDIARIA) FROM ALUGUEL); SELECT PNOME || || SNOME CLIENTE, VALORDIARIA, PERIODO FROM CLIENTE NATURAL JOIN ALUGUEL WHERE VALORDIARIA > (SELECT AVG(PERIODO) FROM ALUGUEL); SELECT PNOME || || SNOME CLIENTE, VALORDIARIA, PERIODO FROM CLIENTE NATURAL JOIN ALUGUEL WHERE PERIODO > (SELECT AVG(VALORDIARIA) FROM ALUGUEL); SELECT PNOME || || SNOME CLIENTE, VALORDIARIA, PERIODO FROM CLIENTE NATURAL JOIN ALUGUEL WHERE VALORDIARIA > (SELECT AVG(VALORDIARIA) FROM ALUGUEL); 4. eM um banco de dados há três tabelas: T1, T2 e T3, com 10, 20 e 30 registros respectivamente. Cada tabela possui um atributo A, sobre o qual é definida uma chave primária. Nesse cenário, está correto concluir que o comando select T1.* from T1 cross join T2 cross join T3 produz um resultado que, além da linha de títulos, possui: 10 linhas; 600 linhas; 6.000 linhas. 20 linhas; 30 linhas; 5. O esquema de banco de dados apresentado abaixo faz parte de um banco de dados criado a partir de um conjunto de dados públicos de captura de tubarões entre os anos de 2001 e 2013 na costa da Austrália. Os dados podem ser baixados no endereço: https://data.qld.gov.au/dataset/shark-control-program-shark-catch-statistics/resource/5c6be990-3938-4125-8cca-dac0cd734263 Características do esquema: Chave primária sublinhada e chave estrangeira em itálico. Seguem algumas tabelas do Esquema: Nome (IDNome, IDEspécie, NomePopular) Tubarão (IDTubarão, IDEspécie, Comprimento, Sexo) Captura (NumCaptura, IDTubarão, IDLocal, Data, TempAgua) Local (IDLocal, CodArea, NomeLocal) Area (CodArea, NomeArea) Sabendo-se que a tabela nome contém nomes populares de tubarões e deseja-se listar o comprimento e o sexo de todos os tubarões que tem nome popular terminado com a letra k. Assinale a alternativa abaixo que retorna corretamente a consulta desejada: SELECT Comprimento, Sexo FROM Tubarão T, Espécie E, Nome N WHERE T.IDEspecie = N.IDEspécie AND NomePopular like %k; SELECT Comprimento, Sexo FROM Tubarão T, Espécie E, Nome N WHERE T.IDEspecie = E.IDEspecie AND N.IDEspécie = E.IDEspecie AND UPPER (NomePopular) like _k; SELECT * FROM Tubarão T, Espécie E, Nome N WHERE T.IDEspecie = E.IDEspecie AND N.IDEspécie = E.IDEspecie AND NomePopular like %k; SELECT Comprimento, Sexo FROM Tubarão T, Espécie E, Nome N WHERE T.IDEspecie = E.IDEspecie AND N.IDEspécie = E.IDEspecie AND NomePopular like %k; SELECT Comprimento, Sexo FROM Tubarão T, Espécie E, Nome N WHERE T.IDEspecie = E.IDEspecie AND N.IDEspécie = E.IDEspecie AND UPPER (NomePopular) like %k%; 6. SEJA O MODELO: Forncedor(cod_fornec, nome_fornec, telefone, cidade, uf) Estado(UF, nome_estado) A expressão SQL que obtém os nomes dos estados para os quais não há fornecedores cadastrados é: SELECT E.nome_estado FROM Estado AS E WHERE E.UF IN (SELECT F.UF FROM FORNECEDOR AS F) SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor AS F WHERE E.UF = F.UF SELECT E.nome_estado FROM Estado AS E, FROM Fornecedor as F WHERE E.nome_estado = F.UF SELECT E.UF FROM ESTADO AS E WHERE E.nome_estado NOT IN (SELECT F.UF FROM FORNECEDOR AS F) SELECT E.nome_estado FROM Estado AS E WHERE E.UF NOT IN (SELECT F.UF FROM FORNECEDOR AS F) 7. Considere as seguintes tabelas de um banco de dados: Estado (UF, NomeEstado) Cidade (CodCidade, NomeCidade, UF) UF referencia Estado Escolha o comando SQL que liste o nome de cada estado e a quantidade de cidades cadastradas para cada um: (J) SELECT E.NomeEstado, Count(*) FROM Cidade C, Estado E WHERE C.UF = E.UF HAVING Count(*) >= 1 SELECT Count(*) FROM Estado SELECT E.NomeEstado, Count(*) FROM Cidade C, Estado E GROUP BY E.NomeEstado SELECT UF, Count(*) FROM Cidade GROUP BY UF SELECT E.NomeEstado, Count(*) FROM Cidade C, Estado E WHERE C.UF = E.UF GROUP BY E.NomeEstado 1. Em um banco de dados de empregados, a tabela EMP contém os campos CPF, NOME, SALARIO e DEPTNO dos empregados, sendo o último uma chave estrangeira para o departamento. Que consulta SQL fornece o CPF, NOME, SALARIO e DEPTNO de todos os funcionários que ganham mais do que qualquer empregado do departamento 5? SELECT CPF, NOME, MAX(SALARIO), DEPTNO FROM EMP WHERE SALARIO > (SELECT MAX (SALARIO) FROM EMP WHERE DEPTNO = 5); SELECT CPF, NOME, SALARIO, DEPTNO FROM EMP WHERE SALARIO > MAX(SALARIO) AND DEPTNO = 5; SELECT CPF, NOME, SALARIO, DEPTNO FROM EMP WHERE SALARIO > (SELECT MAX (SALARIO) FROM EMP WHERE DEPTNO = 5); SELECT CPF, NOME, SALARIO, DEPTNO FROM EMP WHERE SALARIO > (SELECT MAX (SALARIO) FROM EMP) AND DEPTNO = 5; SELECT CPF, NOME, MAX(SALARIO), DEPTNO FROM EMP WHERE SALARIO > MAX(SALARIO) AND DEPTNO = 5; 2. Qual dos operadores de comparação de consultas Multi-Linhas a seguir NÃO é válido?= ANY <> ALL = > ALL < ALL 3. Qual dos operadores de conjunto a seguir, devemos tomar cuidado na hora de colocarmos a ordem das tabelas, pois retorna diferentes resultados ao se inverter a ordem das tabelas? UNION ALL UNION MINUS INTERSECT MINUS ALL 4. De acordo com a tabela de banco de dados relacional abaixo: Carro(placacarro(PK),tipo,modelo,ano,chassis,km,valor,cor,filial_idfilial(FK)) -Construa uma consulta em SQL para retornar "o ano dos carros que são mais velhos que a média dos anos de todos os carros". SELECT ano, AVG(ano) FROM carro SELECT ano FROM carro WHERE ano > AVG(ano) SELECT ano FROM carro WHERE ano > (SELECT AVG(*) FROM carro) SELECT ano FROM carro WHERE ano = (SELECT AVG(ano) FROM carro) SELECT ano FROM carro WHERE ano > (SELECT AVG(ano) FROM carro) 5. (FCC - 2009 - Análise de Sistemas - Suporte - ADAPTADA) Uma instrução Select usada na cláusula Where ou Having de outra instrução Select é Um índice. Um join. Uma subconsulta. Um crosstab. Uma visão. 6. Considere as seguintes tabelas de um banco de dados: - FORNECEDOR { for_codigo, for_nome, for_telefone, for_cidade, est_uf } - ESTADO { est_uf, est_nome } A instrução SQL que recupera os nomes dos estados para os quais não há fornecedores cadastrados é: SELECT e.est_nome FROM estado AS e, FROM fornecedor AS f WHERE e.est_uf = f.est_uf; SELECT e.est_uf FROM estado AS e WHERE e.est_nome NOT IN ( SELECT f.est_uf FROM fornecedor AS f ); SELECT e.est_nome FROM estado AS e WHERE e.est_uf NOT IN ( SELECT f.est_uf FROM fornecedor AS f ); SELECT e.est_nome FROM estado AS e WHERE e.est_uf IN ( select f.est_uf FROM fornecedor AS f ); SELECT e.est_nome FROM estado AS e, fornecedor AS f WHERE e.est_nome <> f.est_uf; 7. Dada a instrução SQL: SELECT * FROM VENDEDOR WHERE salario > (SELECT AVG(salario) FROM VENDEDOR); É correto afirmar que serão selecionados todos os registros da tabela VENDEDOR cujo conteúdo do campo "salario" seja maior que o número de vendedores cadastrados. se trata de um exemplo de INNER JOIN. serão selecionados todos os registros da tabela VENDEDOR cujo conteúdo do campo "salario" seja maior que a média dos salários de todos os vendedores. serão selecionados todos os registros da tabela VENDEDOR cujo conteúdo do campo "salario" seja maior que a soma dos salários de todos os vendedores. se trata de um exemplo de OUTER JOIN. 8. Considerando-se as tabelas e o comando SQL mostrados acima, é correto concluir que o número de registros removidos da tabela Y pela execução desse comando é: 3 4 5 2 1 IMPLEMENTAÇÃO DE BANCO DE DADOS Lupa Calc. CCT0835_A9_202004101919_V1 Aluno: PAULO VITOR HEIZER DA COSTA Matr.: 202004101919 Disc.: IMPL.BANCO DE DADOS 2020.3 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Qual das alternativas a seguir apresenta a sintaxe correta do comando SELECT aplicando as cláusulas GROUP BY e HAVING? SELECT FROM WHERE GROUP BY HAVING SELECT HAVING FROM WHERE GROUP BY SELECT HAVING FROM WHERE GROUP BY SELECT FROM HAVING GROUP BY WHERE SELECT FROM GROUP BY WHERE HAVING 2. Sobre a cláusula WHERE do comando SELECT, é correto afirmar que: É utilizado em todos os comandos SELECT Especifica condição de ordenação Filtra as colunas a serem exibidas no resultado Filtra as linhas a serem exibidas no resultado Nunca pode ser utilizado com uma junção 3. O comando SELECT FROM corresponde a seguinte operação da álgebra relacional: União Interseção Projeção Seleção Junção 4. Considere a seguinte consulta SQL: SELECT nome, count(*) FROM aluno GROUP BY nome Esta consulta tem como resultado. o atributo nome e o número de registros existentes para cada nome, da tabela aluno. o atributo nome e a soma do conteúdo do atributo nome, da tabela aluno. todos os atributos das tabelas nome e aluno. o atributo nome e o número de registros existentes para cada nome, na tabela nome. todos os atributos da tabela nome, além do atributo especial Count. 5. Ano: 2014 - Banca: CESGRANRIO - Órgão: FINEP - Prova: Analista - Desenvolvimento de Sistemas Ao implementar um sistema de gerência de fornecedores, o desenvolvedor percebeu que não existia no banco de dados relacional da empresa qualquer representação da entidade PRODUTO que aparecia em seu modelo de dados. Para corrigir essa falha, preparou um comando SQL que alteraria o esquema do banco de dados. Tal comando SQL deve ser iniciado com CREATE PRODUTO : TABLE ALTER SCHEMA ADD TABLE PRODUTO CREATE TABLE PRODUTO CREATE PRODUTO AS TABLE ALTER TABLE PRODUTO 6. Considere a relação: FUNCIONARIO (matrícula, cargo, salario, admissao) A consulta SQL que mostra o total dos salários dos funcionários é: SELECT SALARIO FROM FUNCIONARIO WHERE SUM (SALARIO); Nenhuma das repostas acima SELECT SUM (SALARIO) FROM FUNCIONARIO WHERE SALARIO; SELECT * FROM FUNCIONARIO WHERE SUM (SALARIO); SELECT SUM (SALARIO) FROM FUNCIONARIO; 7. SELECT * FROM Imovel WHERE NumVagasGaragem IN(1,2,4) ORDER BY Tamanho DESC SELECT * FROM Imovel WHERE NumQuartos BETWEEN 2 AND 4 ORDER BY Tamanho DESC SELECT * FROM Imovel WHERE NumBanheiros BETWEEN 2 AND 4 ORDER BY Tamanho SELECT * FROM Imovel WHERE NumBanheiros BETWEEN 2 AND 4 ORDER BY Tamanho DESC SELECT * FROM Imovel WHERE NumVagasGaragem IN(1,2,4) ORDER BY Tamanho 1. A cláusula having, quando usada, estabelece uma condição sobre uma agregação obtida de: group by em uma expressão select. sum em uma expressão create. group by em uma cláusula order by. order by em uma expressão select. Reorganiza-se automaticamente com pequenas mudanças locais. 2. UM recurso do comando SELECT é a possibilidade de agruparmos nossos dados. Para isso usamos a cláusula: ORDER JOIN ORDER BY SUM GROUP BY 3. Qual a sintaxe SQL-SELECT errada? SELECT X.COLUNA1, AVG(Y.COLUNA2) FROM TABELA1 X INNER JOIN TABELA2 Y ON X.COLUNA3=Y.COLUNA4 GROUP BY X.COLUNA1; SELECT COUNT(*) FROM TABELA1; SELECT COLUNA1, COLUNA2 FROM TABELA1 WHERE COLUNA3 IN (1,2,3); SELECT COLUNA1, COLUNA2, COLUNA3 FROM TABELA1 ORDER BY 1 ASC, 2 DESC, 3 ASC; SELECT COLUNA1, COLUNA2 FROM TABELA1 WHERE COLUNA3 LIKE (%X%) ORDER BY 3; 4. Considere que existe uma tabela empregados com os seguintes dados: TABELA EMPREGADOS MATRICULA NOME DATA_NASCIMENTO 122233 MARIA DA SILVA 01/01/1982 222545 JOSE DOS SANTOS 10/10/1990 142533 ANTONIO ALVES 20/05/1980 213211 JERONIMO SOUZA 15/06/2015 O comando SQL que traz todos os dados da tabela ordenados pela ordem alfabetica dos nomes dos empregados é:SELECT * FROM EMPREGADO ORDERED BY NOME ASCENDING; SELECT NOME AND EMPREGADO FROM EMPREGADO ORDER BY NOME ASC; SELECT (MATRICULA, NOME) FROM EMPREGADO E ORDER BY Nome; SELECT * FROM EMPREGADO ORDER BY NOME; SELECT *.* FROMEMPREGADO ORDERED BY NOME; 5. O esquema de banco de dados apresentado abaixo faz parte de um banco de dados criado a partir de um conjunto de dados públicos de captura de tubarões entre os anos de 2001 e 2013 na costa da Austrália. Os dados podem ser baixados no endereço: https://data.qld.gov.au/dataset/shark-control-program-shark-catch-statistics/resource/5c6be990-3938-4125-8cca-dac0cd734263 Características do esquema: Chave primária sublinhada e chave estrangeira em itálico. Seguem algumas tabelas do Esquema: Ordem (IDOrdem, NomeOrdem) Espécie (IDEspécie, IDOrdem. Nome_Científico, TamMaior, TamMenor, TamMédio) Esp_País (IDEspécie, CodPaís) País (CodPaís, NomePaís) Tubarão (IDTubarão, IDEspécie, Comprimento, Sexo) Assinale qual das alternativas abaixo representa uma consulta que retorna a quantidade de espécies de tubarões encontradas no Brasil cuja coluna é nomeada de QTD: SELECT COUNT(*) QTD FROM ESPÉCIE E, PAÍS P WHERE NOMEPAÍS = "Brasil"; SELECT COUNT(*) QTD FROM ESPÉCIE E, ESP_PAÍS EP, PAÍS P WHERE E.IDESPECIE = EP.IDESPÉCIE AND EP.CODPAÍS = P.CODPAÍS AND NOMEPAÍS = Brasil; SELECT COUNT(*) QTD FROM ESPÉCIE E, PAÍS P WHERE E.IDESPECIE = P.IDESPÉCIE AND NOMEPAÍS = Brasil; SELECT COUNT(*) QTD FROM ESPÉCIE E, ESP_PAÍS EP, PAÍS P WHERE E.IDESPECIE = EP.IDESPÉCIE AND EP.CODPAÍS = P.CODPAÍS AND NOMEPAÍS = "Brasil"; SELECT COUNT(*) QTD FROM ESPÉCIE E, ESP_PAÍS P,PAÍS P WHERE NOMEPAÍS = Brasil; 6. O esquema de banco de dados apresentado abaixo faz parte de um banco de dados criado a partir de um conjunto de dados públicos de captura de tubarões entre os anos de 2001 e 2013 na costa da Austrália. Os dados podem ser baixados no endereço: https://data.qld.gov.au/dataset/shark-control-program-shark-catch-statistics/resource/5c6be990-3938-4125-8cca-dac0cd734263 Características do esquema: Chave primária sublinhada e chave estrangeira em itálico. Seguem algumas tabelas do Esquema: Nome (IDNome, IDEspécie, NomePopular) Tubarão (IDTubarão, IDEspécie, Comprimento, Sexo) Captura (NumCaptura, IDTubarão, IDLocal, Data, TempAgua) Local (IDLocal, CodArea, NomeLocal) Area (CodArea, NomeArea) Deseja-se consultar a quantidade de tubarões do sexo feminino que foram capturados entre os anos de 2002 e 2013. Assinale a opção abaixo que realiza esta consulta: SELECT COUNT (*) QTD FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO AND SEXO = F AND DATA BETWEEN 01/01/2002 AND 31/12/2013; SELECT COUNT (tubarão) QTD FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO AND SEXO = F AND DATA BETWEEN 2002 AND 2013; SELECT COUNT (TUBARÃO) QTD FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO AND SEXO = F AND DATA BETWEEN 01/01/2002 AND 31/12/2013; SELECT COUNT (*) QTD FROM TUBARÃO, CAPTURA WHERE SEXO = F AND DATA BETWEEN 01/01/2002 AND 31/12/2013; SELECT COUNT (*) QTD FROM TUBARÃO T, CAPTURA C WHERE C.IDTUBARÃO = T.IDTUBARÃO AND SEXO = F AND DATA BETWEEN 2002 AND 2013; 7. Considere a seguinte representação de uma tabela de um banco de dados relacional: Produto (Cod, Descricao, QtdeEstoque, Categoria) O comando SQL para se obter a soma dos valores do atributo QtdeEstoque, agrupada por Categoria, apenas para as Categorias com QtdeEstoque total superior a 20 unidades, é: SELECT GROUP (Categoria), COUNT (QtdeEstoque) FROM Produto WHERE QtdeEstoque > 20 SELECT Categoria, SUM (QtdeEstoque) FROM Produto GROUP BY Categoria HAVING SUM (QtdeEstoque) > 20 SELECT GROUP (Categoria), SUM (QtdeEstoque) FROM Produto WHERE QtdeEstoque > 20 SELECT Categoria, Qtde FROM Produto WHERE Qtde > 20 GROUP BY Categoria SELECT Categoria, COUNT (QtdeEstoque) FROM Produto WHERE Qtde > 20 GROUP BY Categoria
Compartilhar