Baixe o app para aproveitar ainda mais
Prévia do material em texto
Os atributos de uma tabela constituem: Os índices da tabela. As tuplas da tabela. As linhas da tabela. As colunas da tabela. Os nomes das tabelas. Analise as seguintes afirmações: "(1) O valor de uma chave estrangeira só pode ser inserido em uma tabela se já existe na tabela onde é chave primária PORQUE (2) esta restrição garante a integridade referencial." Podemos afirmar: A primeira afirmação é falsa e a segunda é verdadeira. As duas afirmações são verdadeiras e primeira não justifica a segunda As duas afirmações são falsas. As duas afirmações são verdadeiras e primeira justifica a segunda. A primeira afirmação é verdadeira e a segunda é falsa. Dentre as vantagens da utilização dos SGBDs a seguir, qual NÃO é uma vantagem? Independência dos dados. Compartilhamento de Dados. Padronização dos dados. Dependência entre programas e dados. Redução ou Eliminação de redundâncias. [Concurso: MPE-AL ¿ Técnico do Ministério Público -Geral, 2018] O conjunto de programas responsável pelo gerenciamento de uma base de dados e que, entre outras funções, suporta uma linguagem de consulta, gera relatórios e disponibiliza uma interface para que os seus clientes possam incluir, alterar ou consultar dados, é chamado de Banco de Dados Relacional (BDR). Sistema de Suporte à Decisão (SSD). Dicionário de Dados (DD). Sistema Gerenciador de Bancos de Dados (SGBD). Modelo Entidade Relacionamento (MER). Uma chave candidata é: um conjunto de atributos que descrevem as características dos elementos a serem modelados. um grupo de valores atômicos a partir dos quais um ou mais atributos (ou colunas) retiram seus valores reais. um conjunto de valores que cada atributo, definido no esquema, assume em um determinado instante, formando o conjunto de tuplas. uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela. uma ou mais colunas que identificam univocamente a relação, porém não fazem parte da chave primária. De uma chave primária é certo afirmarmos: I Pode ser simples ou composta IINão pode constar entre as chaves candidatas da relação III O atributo da chave primária deve ser único Estão corretas: II e III I e II Somente I I, II e III I e III No modelo Relacional uma relação é uma tabela onde são armazenados dados. Podemos afirmar que as relações apresentam as seguintes características: I. Não há tuplas duplicadas em uma relação. II. Ordem das tuplas na relação é relevante para diferenciar as relações. III. Os valores dos atributos devem ser atômicos, não sendo divisíveis em componentes. É correto apenas o que se afirma em I e III II e III II I III Considere o esquema de banco de dados ilustrado na figura abaixo em que as chaves primárias estão sublinhadas. Podemos afirmar que a coluna cod_curso da tabela Aluno é _____________ da tabela Curso na coluna cod_curso. Assinale a alternativa que contém a sentença que completa a frase acima: Chave candidata Chave estrangeira Chave primária Chave Super Chave Em relação a álgebra relacional, o operador de _____________ permite combinar seleções e um produto cartesiano em uma só operação. Interseção União Diferença Projeção Junção A partir da tabela abaixo, identifique a expressão, em álgebra relacional, que permite listar a matrícula dos funcionários do setor de Projetos: σ setor = "Projetos" (Funcionarios_ste) π Funcionarios_ste (σ matricula, setor = "Projetos") π matricula (σ setor = "Projetos" (Funcionarios_ste)) π setor = "Projetos" (σ matricula (Funcionarios_ste)) σ matricula (π setor = "Projetos" (Funcionarios_ste)) Considere as relações: ALUNO (matriculaluno, nomealuno, endereço, telefone) CURSA (matricula, codigo) matricula REFERENCIA matriculaluno em ALUNO codigo REFERENCIA codigodisciplina em DISCIPLINA DISCIPLINA (codigodisciplina, nomedisciplina, creditos) A consulta em álgebra relacional que responde a questão "Quais os alunos (nome e matrícula) que cursam a disciplina com código CCT0199" está corretamente representada em: Não existe consulta que reponda a questão p matriculaaluno, nomealuno (CURSA matriculaluno = ⋈matricula DISCIPLINA) p matriculaaluno, nomealuno (ALUNOmatriculaluno = ⋈matricula (scodigo = CCT0199 (DISCIPLINA))) p matriculaluno, nomealuno (ALUNO matriculaluno = ⋈matricula (scodigo = CCT0199 (CURSA))) p matriculaaluno, nomealuno (ALUNO matriculaluno = ⋈matricula DISCIPLINA) Considere a relação: FILME (nome, diretor, tempoduracao, genero, ano) A consulta em álgebra relacional que retorna o nome e o ano de todos os filmes de ação com tempo de duração entre 120 e 180 minutos. p nome, ano (s(genero = "ação" OR tempoduracao >= 120 AND tempoduracao <= 180) (FILME) ) p nome, ano (p(genero = "ação" AND tempoduracao >= 120 AND tempoduracao <= 180) (FILME) ) p nome, ano (s(genero = "ação" AND tempoduracao = 120) (FILME) ) p nome, ano (s(genero = "ação" AND tempoduracao >= 120 AND tempoduracao <= 180) (FILME) ) p nome, ano (s(genero = "ação" AND tempoduracao >= 120 OR tempoduracao <= 180) (FILME) ) Considere as relações: PROFESSOR (matriculaprf, nomeprf, titulacao, anoadmissao) MINISTRA (matricula, codigo) matricula REFERENCIA matriculaprf em PROFESSOR codigo REFERENCIA codigodisciplina em DISCIPLINA DISCIPLINA (codigodisciplina, nomedisciplina, creditos) A consulta em álgebra relacional que responde a questão "Quem são os professores (nome e matrícula) que ministram a disciplina Implementação de Bancos de Dados" está corretamente representada em: p matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈matricula (MINISTRA codigo = ⋈codigodisciplina (snomedisciplina = "Implementação de Bancos de Dados" (DISCIPLINA))) p matriculaprf, nomeprf (PROFESSORmatriculaprf = ⋈matricula MINISTRA) Não existe consulta que responda a esta questão. p matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈matricula (snomedisciplina = "Implementação de Bancos de Dados" (DISCIPLINA)) p matriculaprf, nomeprf (PROFESSOR matriculaprf = ⋈matricula (MINISTRAcodigo = ⋈codigodisciplina (DISCIPLINA))) De acordo com a tabela a seguir, como fica a instrução de seleção para recuperarmos os funcionários possuem ID maior do que 102, trabalham no Departamento 10 e ganham mais de R$ 2.000,00 de Salário? s ID > 102 E id_Depto = 10 E Salario > 2000 (Empregado) s ID > 102 OU id_Depto = 10 E Salario > 2000 (Empregado) s ID = 102 OU id_Depto = OU E Salario > 2000 (Empregado) s ID > 102 OU id_Depto = 10 OU Salario > 2000 (Empregado) s ID = 102 E id_Depto = 10 E Salario > 2000 (Empregado) Sejam as relações: T1 = p nome (s(sexo="FEMININO") and (salário>1500) (EMPREGADO)) T2 = p nome (sdept=5 (EMPREGADO)) A relação T3 = T1 - T2 conterá: Nome de todas mulheres que ganham mais do que 1500 e não estão lotadas no departamento 5. Nome de todas mulheres que ganham mais do 1500 Nome de todas mulheres que ganham mais do que 1500 e estão lotadas no departamento 5. Nome de todas mulheres que ganham mais do que 1500 ou estão lotadas no departamento 5. Nome de todas mulheres que ganham 1500 e estão lotados no departamento 5. 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ãocorretas: II e III Somente a II Somente I I e III Somente III SQL é uma linguagem? Para desenho de telas. Para criação de scripts. Para criar regras de negócios que rodam no servidor. Para desenvolvimento de aplicações gráficas. Para manipulação de banco de dados. São comandos da categoria de Definição de Dados (DDL): COMMIT / ROLLBACK GRANT / REVOKE CREATE / ALTER / DROP INSERT / UPDATE / DELETE SELECT O comando SQL que apaga um tabela é: UPDATE DROP TABLE DELETE TABLE INSERT INTO REMOVE TABLE Qual o efeito da seguinte instrução no banco de dados? DELETE FROM tabela Exclui o banco de dados inteiro Exclui a primeira linha da tabela Exclui todas as colunas da tabela Exclui todas as linhas da tabela Exclui a tabela do banco de dados No Script SQL de criação da tabela pagamento aparece a palavra 'funcionario' 4 vezes. Sendo assim, é possível afirmar que se referem, respectivamente: coluna, tabela, apelido, chave primária apelido, atributo, tabela, chave estrangeira campo, atributo, apelido, tabela tupla, chave primária, apelido, chave estrangeira atributo, apelido, campo, tabela Como ficaria o comando SQL para criar a tabela a seguir? CREATE TABLE X_PROD ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_EMPR ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_PROD ( CODIGO VARCHAR2(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_EMPR ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL UNIQUE, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) CREATE TABLE X_PROD ( CODIGO NUMBER(5) PRIMARY KEY, DESCRICAO VARCHAR2(40) NOT NULL, QUANTIDADE NUMBER(8), VALOR_UNIT NUMBER(9,2) ) Em uma SQL a Linguagem de Manipulação de Dados compreende os comandos para inserir, remover e modificar informações em um banco de dados. a Linguagem de Definição de Dados fornece tabelas para criação e modificação de comandos. os comandos básicos da Linguagem de Definição de Dados são Select, Insert, Update e Delete. os comandos básicos da Linguagem de Definição de Dados são Sort, Insert, Undo e Store. a Linguagem de Manipulação de Relacionamentos compreende os comandos para construir tabelas em um banco de dados. Considere o esquema abaixo: PROFESSOR (matriculaprf, nomeprf, titulacao, anoadmissao) MINISTRA (matricula, codigo) matricula REFERENCIA matriculaprf em PROFESSOR codigo REFERENCIA codigodisciplina em DISCIPLINA DISCIPLINA (codigodisciplina, nomedisciplina, creditos) Os comandos SQL apresentam todos os elementos necessários para a sua criação estão representados em: CREATE TABLE PROFESSOR ( MATRICULAPRF NUMBER (5) NOT NULL,NOMEPRF VARCHAR(20) NOT NULL, TITULACAO VARCHAR (15) NOT NULL, ANOADMISSAO VARCHAR (4) NOT NULL, PRIMARY KEY (MATRICULAPRF)); CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA VARCHAR (5) NOT NULL, NOMEDISCIPLINA VARCHAR(20) NOT NULL, CREDITOS NUMBER (2) NOT NULL, PRIMARY KEY (CODIGODISCIPLINA)); CREATE TABLE MINISTRA (MATRICULA NUMBER (5) NOT NULL, CODIGO VARCHAR (5), PRIMARY KEY (MATRICULA, CODIGO)); CREATE TABLE PROFESSOR ( MATRICULAPRF NOT NULL,NOMEPRF NOT NULL, TITULACAO NOT NULL, ANOADMISSAO NOT NULL, PRIMARY KEY (MATRICULAPRF)); CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA NOT NULL,NOMEDISCIPLINA NOT NULL, CREDITOS NOT NULL, PRIMARY KEY (CODIGODISCIPLINA)); CREATE TABLE MINISTRA (MATRICULA NOT NULL, CODIGO NOT NULL, PRIMARY KEY (MATRICULA, CODIGO), FOREIGN KEY MATRICULA REFERENCES PROFESSOR (MATRICULAPRF), FOREIGN KEY CODIGO REFERENCES DISCIPLINA (CODIGODISCIPLINA)); CREATE TABLE PROFESSOR ( MATRICULAPRF NUMBER(5) NOT NULL,NOMEPRF VARCHAR(20) NOT NULL, TITULACAO VARCHAR (15) NOT NULL, ANOADMISSAO VARCHAR (4) NOT NULL, PRIMARY KEY (MATRICULAPRF)); CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA VARCHAR (5) NOT NULL,NOMEDISCIPLINA VARCHAR(20) NOT NULL, CREDITOS NUMBER (2) NOT NULL, PRIMARY KEY (CODIGODISCIPLINA)); CREATE TABLE MINISTRA (MATRICULA NUMBER (5) NOT NULL, CODIGO VARCHAR (5) NOT NULL, PRIMARY KEY (MATRICULA, CODIGO), FOREIGN KEY MATRICULA REFERENCES PROFESSOR (MATRICULAPRF), FOREIGN KEY CODIGO REFERENCES DISCIPLINA (CODIGODISCIPLINA)); CREATE TABLE PROFESSOR ( MATRICULAPRF NUMBER (5) NOT NULL, NOMEPRF VARCHAR(20) NOT NULL, TITULACAO VARCHAR (15) NOT NULL, ANOADMISSAO VARCHAR (4) NOT NULL); CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA VARCHAR (5) NOT NULL,NOMEDISCIPLINA VARCHAR(20) NOT NULL, CREDITOS NUMBER (2) NOT NULL); CREATE TABLE MINISTRA (MATRICULA NUMBER (5) NOT NULL, CODIGO VARCHAR (5) NOT NULL); CREATE TABLE PROFESSOR ( MATRICULAPRF NUMBER (5) NOT NULL,NOMEPRF VARCHAR(20) NOT NULL, TITULACAO VARCHAR (15) NOT NULL, ANOADMISSAO VARCHAR (4) NOT NULL); CREATE TABLE DISCIPLINA ( CODIGODISCIPLINA VARCHAR (5) NOT NULL,NOMEDISCIPLINA VARCHAR(20) NOT NULL, CREDITOS NUMBER (2) NOT NULL); CREATE TABLE MINISTRA (MATRICULA NUMBER(5) NOT NULL, CODIGO VARCHAR (5) NOT NULL, PRIMARY KEY (MATRICULA, CODIGO), FOREIGN KEY MATRICULA REFERENCES PROFESSOR (MATRICULAPRF), FOREIGN KEY CODIGO REFERENCES DISCIPLINA (CODIGODISCIPLINA)); Qual comando SQL é utilizado para obter um conjunto de dados em uma tabela em um banco de dados? SELECT INSERT JOIN UPDATE GET Os operadores aritméticos, lógicos e de comparação são usados em consultas SQL para? Não é utilizado em Banco de Dados. Realizar tarefas como somar ou agrupar valores, comparar valores. Para excluir dados por um procedimento no banco. Fazer uma atualização de dados mais precisa. Criar novas consultas. Dentre as sub-linguagens definidas na Linguagem SQL, o comando SELECT faz parte de qual delas? DCL DML Controle de transações DRL DDL O comando SELECT FROM WHERE corresponde as seguintes operações da álgebra relacional: União e Interseção Seleção e Junção Seleção e Projeção Projeção e União Seleção e Diferença De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para: Apresentar apenas os nomes completos dos Empregados que tem salario entre R$ 1.000,00 e R$ 2.000,00. SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE SALARIO BETWEEN 1000 TO 2000; SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE SALARIO BETWEEN 1000 AND 2000; SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO WHERE SALARIO BETWEEN 1000 TO 2000; SELECT PRIM_NOME || ' ' || ULT_NOME FROM EMPREGADO WHERE SALARIO 1000 BETWEEN 2000; SELECT PRIM_NOME, ULT_NOME FROM EMPREGADO WHERE SALARIO BETWEEN 1000 AND 2000; Sobre a cláusula WHERE do comando SELECT, é correto afirmar que: Nunca pode ser utilizado com uma junção Filtra as linhas a serem exibidas no resultado É utilizado em todos os comandos SELECT Filtra as colunas a serem exibidas no resultado Especifica condição de ordenação Considere a seguinte tabela de um banco de dados: PESSOA { pes_codigo, pes_nome, pes_email, pes_rg, pes_idade, pes_codigo_conjuge } Qual das instruções abaixo permite recuperar os campos nome e e-mail da pessoa e o nome e e-mail do seu cônjuge. Select p.pes_nome as Nome, p.pes_email as Email c.pes_nome as Conjuge c.pes_email as EmailConjuge From pessoa p inner join from pessoa c on (p.pes_codigo = c.pes_codigo_conjuge) Select pes_nome, pes_email, pes_nome, pes_email From pessoa inner join pessoa using (pes_codigo) Select p.pes_nome, p.pes_email, c.pes_nome, c.pes_email From pessoa p, pessoa c Where pes_codigo = pes_codigo_conjuge Select p.pes_nome, p.pes_email, c.pes_nome, c.pes_email From pessoap, pessoa c Where p.pes_codigo = c.pes_codigo_conjuge Select p.pes_nome, p.pes_email, c.pes_nome, c.pes_email From pessoa p inner join pessoa c using (pes_codigo) O comando SELECT FROM corresponde a seguinte operação da álgebra relacional: Interseção Seleção Junção União Projeção UM recurso do comando SELECT é a possibilidade de agruparmos nossos dados. Para isso usamos a cláusula: ORDER ORDER BY JOIN GROUP BY SUM Considere a tabela a seguir: Qual a função a ser utilizada em um script SQL quando se desejar obter o número de cidades cadastradas? sum(reg) count(cidade) avg(reg) max(reg) count(*) 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 Categoria, SUM (QtdeEstoque) FROM Produto GROUP BY Categoria HAVING SUM (QtdeEstoque) > 20 SELECT GROUP (Categoria), COUNT (QtdeEstoque) FROM Produto WHERE 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 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, ESP_PAÍS P,PAÍS P WHERE 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 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 NOMEPAÍS = "Brasil"; Qual o resultado da consulta SELECT COUNT(DISTINCT X) FROM R? 4 1 3 2 0 Após a execução dos seguintes comandos em linguagem SQL: CREATE TABLE Carros (Codigo int PRIMARY KEY, Modelo varchar(30)) INSERT INTO Carros VALUES (NULL, Alfa Romeo) INSERT INTO Carros VALUES (5000, Mazda) SELECT COUNT(*) FROM Carros Será retornado o valor: 1 NULL 5000 2 0 Considere a relação: FUNCIONARIO (matrícula, cargo, salario, admissao) A consulta SQL que mostra o total dos salários dos funcionários é: SELECT SUM (SALARIO) FROM FUNCIONARIO WHERE SALARIO; SELECT SUM (SALARIO) FROM FUNCIONARIO; SELECT SALARIO FROM FUNCIONARIO WHERE SUM (SALARIO); SELECT * FROM FUNCIONARIO WHERE SUM (SALARIO); Nenhuma das repostas acima Dentre as opções a seguir, qual não é uma função de grupo? CONT(*) MED(X) AVG (x) MAX(x) SUM(x) Quando dois conjuntos de dados são concatenados de acordo com uma determinada condição, representa o resultado da operação relacional: junção projeção intersecção restrição união 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 INNER JOIN Carro c ON fi.idfilial=c.filial_idfilial GROUP BY filial SELECT fi.nome filial, count(*) FROM Filial fi LEFT JOIN 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 RIGHTJOIN Carro c ON fi.idfilial=c.filial_idfilial GROUP BY filial A partir das relações abaixo, responda em SQL: quantos alunos (nota maior ou igual a 6) foram aprovados na disciplina Banco de Dados com o professor Rui? Use inner join. Relações: PROFESSOR (idprofessor, nomeprofessor); LECIONA (idprofessor, iddisciplina); DISCIPLINA (iddisciplina, nomedisciplina); ALUNO (matricula, nomealuno); MATRICULA (inscrição, iddisciplina, matricula, nota, período, ano) SELECT count(*) AS total FROM professor p LEFT JOIN leciona l ON p.idprofessor = l.idprofessor LEFT JOIN disciplina d ON l.iddisciplina = d.iddisciplina LEFT JOIN matricula m ON m.iddisciplina = d.iddisciplina WHERE nomeprofessor = Rui OR nomedisciplina = Banco de Dados SELECT count(distinct) AS total FROM professor p INNER JOIN leciona l ON p.idprofessor = l.idprofessor INNER JOIN disciplina d ON l.iddisciplina = d.iddisciplina INNER JOIN matricula m ON m.iddisciplina = d.iddisciplina WHERE nomeprofessor = Rui AND nomedisciplina = Banco de Dados SELECT count(*) AS total FROM professor p, leciona l, matricula m WHERE p.idprofessor = l.idprofessor AND m.iddisciplina = d.iddisciplina AND nomeprofessor = Rui AND nomedisciplina = Banco de Dados SELECT count(distinct) AS total FROM professor p RIGHT JOIN leciona l ON p.idprofessor = l.idprofessor RIGHT JOIN disciplina d ON l.iddisciplina = d.iddisciplina RIGHT JOIN matricula m ON m.iddisciplina = d.iddisciplina WHERE nomeprofessor = Rui OR nomedisciplina = Banco de Dados SELECT sum(*) AS total FROM professor p, leciona l, matricula m WHERE p.idprofessor = l.idprofessor AND m.iddisciplina = d.iddisciplina AND nomeprofessor = Rui AND nomedisciplina = Banco de Dados O comando select permite gerar produto cartesiano porque os bancos relacionais utilizam álgebra relacional. Ambas sentenças estão certas. 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. O select permite produto cartesiano mas por outra ração que não é a algebra relacional. três e quatro. quatro e quatro. cinco e quatro. cinco e cinco. quatro e três. quatro sete cinco três seis Um aluguel do Tipo1, três do Tipo2 e três do Tipo3. Um aluguel do Tipo1, quatro do Tipo2 e dois do Tipo3. Dois alugueis do Tipo1, três do Tipo2 e dois do Tipo3. Três alugueis do Tipo1, três do Tipo2 e um do Tipo3. Dois alugueis do Tipo1, quatro do Tipo2 e um do Tipo3. Em uma junção Cruzada entre três tabelas com respectivamente 10, 8 e 4 resgistros, gerará uma saída com quantos registros? 160 registros 220 registros 20 registros 320 registros 22 registros seis três sete cinco quatro (UPENET - 2012 - JUCEPE - Analista de Tecnologia da Informação) CREATE TABLE Empregado ( Matricula char(5) PRIMARY KEY, Nome varchar(30), numDepto int ); CREATE TABLE Departamento ( numDepto int UNIQUE, nomeDepto varchar(30) ); ALTER TABLE Empregado ADD CONSTRAINT fk_empregado_depto FOREIGN KEY (numDepto) REFERENCES Departamento(numDepto); INSERT INTO Departamento VALUES (1, Vendas´);INSERTINTODepartamen→VALUES(2,Vendas´);INSERTINTODepartamen→VALUES(2,Engenharia´); INSERT INTO Departamento VALUES (3, Contabilidade´);INSERTINTODepartamen→VALUES(4,Contabilidade´);INSERTINTODepartamen→VALUES(4,RH´); INSERTINTO Empregado VALUES (11111´,11111´,Juliana´, 1); INSERT INTO Empregado VALUES (22222´,22222´,Gabriela´, 3); INSERT INTO Empregado VALUES (33333´,33333´,Francisco´, 3); INSERT INTO Empregado VALUES (44444´,44444´,Inácio´, 4); INSERT INTO Empregado VALUES (55555´ ,55555´ ,João´, 4); INSERT INTO Empregado VALUES (66666´,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? Seis Cinco Sete Três Quatro três cinco seis sete quatro Dois. Três. Cinco. Quatro. Seis. SELECT ALL FROM TipoImovel T, Imovel I WHERE T.CodTipoImovel = I.CodTipoImovel SELECT * FROM TipoImovel NATURAL JOIN Imovel SELECT * FROM TipoImovel, Imovel SELECT ALL FROM TipoImovel, Imovel SELECT * FROM TipoImovel T, Imovel I WHERE T.CodTipoImovel = I.CodTipoImovel Um banco de dados relacional foi criado através da execução dos comandos em SQL a seguir Considerando que a consulta de seleção fornecida a seguir foi executada sobre o banco de dados com esquema e estado resultantes da sequência de comandos anteriores, qual a quantidade de registos retornados? select * from empregado left outer join departamento on empregado.departamento_id = departamento.dep_id; 5 3 4 6 7 SELECT * FROM TipoImovel T NATURAL JOIN Imovel I ON T.CodTipoImovel = I.CodTipoImovel SELECT * FROM TipoImovel T RIGHT JOIN Imovel I ON T.CodTipoImovel = I.CodTipoImovel SELECT * FROM TipoImovel T LEFT JOIN Imovel I ON T.CodTipoImovel = I.CodTipoImovel SELECT * FROM TipoImovel T FULL JOIN Imovel I ON T.CodTipoImovel = I.CodTipoImovel SELECT * FROM TipoImovel T, Imovel I WHERE T.CodTipoImovel= I.CodTipoImovel(+) Quatro. Seis. Dois. Três. Cinco. I. Sempre que uma condição na cláusula where de uma consulta aninhada referencia algum atributo de uma relação declarada na consulta externa, as duas consultas são consideradas correlacionadas. II. Na consulta correlacionada a consulta aninhada é avaliada uma vez para cada tupla (ou combinação de tuplas) na consulta externa. Assinale a opção correta: Ambas são verdadeiras, mas a segunda não complementa a primeira Ambas são falsas Ambas são verdadeiras e a segunda complementa a primeira A primeira afirmação e verdadeira e a segunda é falsa A primeira afirmação é falsa e a segunda é verdadeira 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 é: 4 2 5 3 1 SELECT * FROM TipoImovel T INNER JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL SELECT * FROM TipoImovel T LEFT JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL SELECT * FROM TipoImovel T FULL JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL SELECT * FROM TipoImovel T RIGHT JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL SELECT * FROM TipoImovel T CROSS JOIN Imovel I ON T.CODTIPOIMOVEL = I.CODTIPOIMOVEL (FGV - 2010 - DETRAN-RN - Assessor Técnico - Administração de Banco de Dados) Assinale a alternativa correta sobre fragmento de comando a seguir: (select distinct nome_cliente from contas) intersect (select distinct nome_cliente from emprestimos) Se um cliente não possui conta mas possui empréstimos no banco, aparecerá no resultado. Se um cliente tem diversas contas e empréstimos no banco, não aparecerá no resultado. Se um cliente tem diversas contas e empréstimos no banco, aparecerá somente uma vez no resultado. Se um cliente tem diversas contas e empréstimos no banco, aparecerá todas as repetições no resultado. Se um cliente possui conta mas não possui empréstimos no banco, aparecerá no resultado. 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 > (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, MAX(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) AND DEPTNO = 5; Sobre o script abaixo: SELECT nome pessoa from Pessoa UNION ALL SELECT numero from Empregado Assinale a alternativa correta: Não existe retorno, uma vez que os dados são diferentes das colunas. O script retorna dados de diferentes tabelas sem repetição. Retorna os nomes dos empregados e os números sem repetição. Retorna os números dos empregados e os nomes das pessoas com repetição. Retorna os números dos empregados e os nomes das pessoas sem repetição. 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 OUTER JOIN. 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 soma 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 média dos salários de todos os vendedores. (NCE-UFRJ - 2005 - BNDES - Análise de Sistemas - Desenvolvimento) Considere um banco de dados simplificado referente ao controle de concursos, constituído pelas tabelas Concurso, Cargo, Candidato e Inscrição, criadas pelo script SQL mostrado abaixo. create table concurso (id_concurso int not null primary key, concurso varchar(60) not null); create table cargo (id_cargo int not null primary key,cargo varchar(60) not null, id_concurso int not null, constraint ci0 foreign key (id_concurso) references concurso (id_concurso)); create table candidato (id_candidato int not null primary key, nome varchar(40) not null); A consulta SQL que produz a lista dos candidatos que se inscreveram em todos os concursos é: select nome from candidato cd where exists (select * from concurso cc where not exists (select * from inscrição i where i.id_concurso=cc.id_concurso and i.id_candidato=cd.id_candidato)) select nome from candidato cd where not exists (select * from concurso cc where not exists (select * from inscrição i where i.id_concurso <> cc.id_concurso and i.id_candidato <> cd.id_candidato)) select nome from candidato cd where not exists (select * from concurso cc where exists (select * from inscrição i where i.id_concurso=cc.id_concurso and i.id_candidato=cd.id_candidato)) select nome from candidato cd where not exists (select * from concurso cc where not exists (select * from inscrição i where i.id_concurso=cc.id_concurso and i.id_candidato=cd.id_candidato)) select nome from candidato cd where exists (select * from concurso cc wherenot in (select * from inscrição i where i.id_concurso=cc.id_concurso and i.id_candidato=cd.id_candidato))
Compartilhar