Buscar

Implementação de bancos de dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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))

Outros materiais