Zusammenfassung der Ressource
Frage 1
Frage
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)
Antworten
-
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 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'
-
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(*) 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'
Frage 2
Frage
Listar cpf e nome do cliente que possui o veículo placa BDQ2012.
Antworten
-
Nenhuma das consultas acima.
-
SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa = 'BDQ2012';
-
SELECT c.cpf, v.veiculo FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa = 'BDQ2012';
-
SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf ;
-
SELECT c.cpf, c.cliente FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa = 'BDQ2012';
Frage 3
Frage
Para se obter todos as matrículas, nomes e descrições dos departamentos de todos empregados independente de terem ou não códigos de departamento atribuídos (entenda-se por nulo os departamentos não atribuídos) deve-se escrever qual o select:
Antworten
-
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E LEFT JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = D.ID_DEP_CODIGO;
-
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E RIGHT JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = D.ID_DEP_CODIGO;
-
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = D.ID_DEP_CODIGO WHERE E.NU_EMP_DEPARTAMENTO IS NULL;
-
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = D.ID_DEP_CODIGO;
-
SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO != D.ID_DEP_CODIGO;
Frage 4
Frage
Qual das consultas abaixo retorna o nome e a placa de todos os veículos?
Antworten
-
SELECT c.cpf, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf WHERE v.placa;
-
SELECT placa FROM Veiculo INNER JOIN Cliente ON Cliente_cpf = cpf;
-
SELECT c.nome FROM Veiculo v INNER JOIN Cliente c ON cpf = cpf;
-
SELECT v.placa, c.nome FROM Veiculo v INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf;
-
SELECT v.placa, c.nome FROM Cliente INNER JOIN Cliente c ON v.Cliente_cpf = c.cpf;
Frage 5
Frage
Na sintaxe ANSI da junção Interior, na sua forma padrão é:
Antworten
-
select [colunas] from tabela1 LEFT JOIN tabela2 ON ;
-
select [colunas] from tabela1 RIGHT JOIN tabela2 ON ;
-
select * from tabela1 LEFT JOIN tabela2;
-
select [colunas] from tabela1 INNER JOIN tabela2 ON ;
-
select * from tabela1 CROSS JOIN tabela2;
Frage 6
Frage
Em uma junção Cruzada entre três tabelas com respectivamente 10, 8 e 4 resgistros, gerará uma saída com quantos registros?
Antworten
-
20 registros
-
320 registros
-
22 registros
-
160 registros
-
220 registros
Frage 7
Frage
Para se obter a quantidade de empregados por cargo deve-se digitar qual o select abaixo:
Antworten
-
SELECT DESCRICAO AS CARGO, COUNT(MATRICULA) AS QTDE FROM CARGO C INNER JOIN EMPREGADO E ON CODIGO = CARGO GROUP BY DESCRICAO;
-
SELECT C.DESCRICAO AS CARGO, SUM(E.MATRICULA) AS QTDE FROM CARGO C INNER JOIN EMPREGADO E ON C.CODIGO = E.CARGO GROUP BY C.DESCRICAO;
-
SELECT C.DESCRICAO AS CARGO, COUNT(E.MATRICULA) AS QTDE FROM CARGO C INNER JOIN EMPREGADO E GROUP BY C.DESCRICAO;
-
SELECT C.DESCRICAO AS CARGO, COUNT(E.MATRICULA) AS QTDE FROM CARGO C INNER JOIN EMPREGADO E ON C.CODIGO = E.CARGO GROUP BY C.DESCRICAO;
-
SELECT C.DESCRICAO AS CARGO, COUNT(E.MATRICULA) AS QTDE GROUP BY C.DESCRICAO FROM CARGO C INNER JOIN EMPREGADO E ON C.CODIGO = E.CARGO;
Frage 8
Antworten
-
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;
-
SELECT NOMEP FROM PROFESSOR P , TCC T, ALUNO A WHERE P.MATP = A.MATP AND A.MATA = T.MATA;
-
SELECT DISTINCT NOMEP FROM PROFESSOR P , TCC T, ALUNO A;