Obtenha dados de perguntas de várias tabelas
1.Which of the following is not related to a Relational Database?
- Selection
- Projection
- Joining
- Nenhuma das acima
Answer: D. As opções A, B e C são os principais recursos do Oracle Relational Database.
2.Which of the following methods is used for writing a query with columns from multiple tables?
- SELECT
- GRUPO POR
- ORDENAR POR
- JOINS
Answer: D. As junções são usadas para conectar várias tabelas e dados de coluna do projeto de várias tabelas no Oracle.
3.Which of the following is one of the most common methods to join multiple tables?
- Hash Join
- Equijoin
- Self Join
- Cross Join
Answer: B. Equijoin é um dos tipos de junção que é a técnica mais comum e simples para juntar mais de uma mesa. Equijoins também são chamados de junções simples ou junções internas. Os equijoins envolvem a chave primária e a chave estrangeira.
4.Which of following will be used to join rows with other tables if the column values fall in a range defined by inequality operators?
- Equijoin
- Junção simples
- Non-equijoin
- Nenhuma das acima
Answer: C. Equijoins usam operadores de igualdade para unir linhas, não-equijoins usam operadores de desigualdade.
5.Which of the following statements is true about Oracle joins?
- Valores NULL são incluídos no conjunto de resultados
- Apenas as linhas que têm condições correspondentes são buscadas
- Todas as linhas que estão presentes em qualquer uma das tabelas são obtidas
- Nenhuma das acima
Answer: B. Valores NULL e entradas diferentes em colunas de junção comuns são excluídos quando junções são usadas.
6.Which of the following can be used to join the rows of a table with other rows of the same table?
- Equijoin
- Non-equijoin
- Junção externa
- Self-join
Answer: D. A associação é baseada em colunas com relacionamentos lógicos e geralmente hierárquicos entre si.
7.What is true about a cartesian join of two tables in Oracle DB?
- Deve ser evitado por ser caro e não otimizado
- É formado quando cada linha de uma tabela é unida a todas as linhas da segunda tabela
- Ambos a e B
- Nenhuma das acima
Answer: B. A junção cartesiana geralmente é o resultado de condições de junção ausentes ou inadequadas. É simplesmente o produto cruzado de duas tabelas.
8.Which of the following is one of the basic types of joins in Oracle DB ?
- Junção externa
- Self-join
- Equi-join
- Tudo acima
Answer: C. Equi-join e não-equijoin são os dois tipos básicos de junções no banco de dados Oracle.
9.What is the main condition for using joins between a source table and a target table in Oracle DB for getting a non-cartesian product result?
- Não há condição
- Pelo menos uma das colunas em ambas as tabelas deve ser comum.
- Os nomes das colunas em ambas as tabelas de junção devem ser os mesmos para usar junções
- Nenhuma das acima
Answer: B. As tabelas devem ser conectadas por meio de uma coluna comum relacionando duas entidades. A tabela unida em uma coluna comum produz produtos não cartesianos.
10. Which of the following can be used to fetch rows from multiple tables in a single SQL query?
- SELECT
- WHERE
- FROM
- Equi-joins
Answer: D. Equijoins também são chamados de junções simples ou junções internas. Equijoin envolve a chave primária e a chave estrangeira.
11.What is true about the source table and the target table in terms of Oracle Joins?
- Eles devem ter pelo menos uma coluna com o mesmo nome
- Todas as colunas devem ter o mesmo nome e mesmo tipo de dados para unir as duas tabelas
- As tabelas de origem e destino não podem ser trocadas e são específicas da posição
- Nenhuma das acima
Answer: D. As tabelas de origem e de destino podem ser trocadas e não são fixadas em suas posições. Dependendo do tipo de junção usado na consulta, o resultado pode ser diferente ou permanecer o mesmo.
12.What is true about Natural joins in Oracle DB?
- Os nomes das colunas das tabelas de origem e destino devem ser idênticos
- Se os nomes das colunas das tabelas de origem e destino não forem iguais, o Oracle implicitamente fará o necessário
- NATURAL JOINS, USING e ON são as palavras-chave associadas a Natural Joins
- Tudo acima
Answer: C. A palavra-chave NATURAL JOIN instrui o Oracle a identificar colunas com nomes idênticos entre as tabelas de origem e de destino. As junções naturais usam todas as colunas com nomes e tipos de dados correspondentes para juntar as tabelas. A cláusula USING pode ser usada para especificar apenas as colunas que devem ser usadas para um equijoin.
13.Assume the tables EMPLOYEES and DEPARTMENT have to be joined using NATURAL JOIN. What is the difference between the following two queries which follow? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT department_id
FROM employees NATURAL JOIN department
WHERE first_name = 'John'
AND last_name = 'Bacon';
SELECT department_id
FROM department NATURAL JOIN employees
WHERE first_name = 'John'
AND last_name = 'Bacon';
- Não há diferença
- O resultado é diferente em ambos os casos
- Ambas as consultas darão um erro ORA na execução
- Nenhuma das acima
Answer: B. As tabelas de origem e destino podem ser trocadas ao usar NATURAL JOIN, fornecendo conjuntos de resultados relacionalmente diferentes.
14.Which of the following options is true regarding the NATURAL JOIN in Oracle DB?
- Ao usar o NATURAL JOIN, é obrigatório mencionar os nomes de todas as colunas de ambas as tabelas
- NATURAL JOIN pode ser usado apenas se os nomes de todas as colunas de ambas as tabelas forem idênticos
- A junção em NATURAL JOIN acontece somente quando o usuário especifica as colunas das tabelas de origem e destino.
- Não há necessidade de mencionar as colunas ao usar NATURAL JOINS.
Answer: D. Há uma junção implícita das colunas das tabelas de origem e de destino quando um NATURAL JOIN é usado. Um NATURAL JOIN é uma operação JOIN que cria uma cláusula de junção implícita para você com base nas colunas comuns nas duas tabelas que estão sendo unidas. As colunas comuns são colunas que têm o mesmo nome em ambas as tabelas.
15. What is the difference between a NATURAL JOIN and a join with JOIN..ON?
- Não há diferença entre os dois
- JOIN..ON junta as tabelas de origem e destino em colunas específicas com o mesmo nome
- NATURAL JOIN associa implicitamente todas as colunas correspondentes das tabelas de origem e destino
- Nenhuma das acima
Answer: B, C. A condição de junção para a junção natural é basicamente um equijoin de todas as colunas com o mesmo nome. Use a cláusula ON para especificar condições arbitrárias ou especifique as colunas a serem juntadas. A condição de junção é separada de outras condições de pesquisa. A cláusula ON torna o código fácil de entender.
16.What is true about the JOIN..ON clause in Oracle DB?
- Não depende das colunas nas tabelas de origem e destino terem nomes idênticos
- Apenas as colunas das tabelas de origem e de destino que têm nomes idênticos podem ser usadas com esta cláusula
- É um formato do NATURAL JOIN
- Tudo acima
Answer: A, C. A condição de junção para a junção natural é basicamente um equijoin de todas as colunas com o mesmo nome. Use a cláusula ON para especificar condições arbitrárias ou especificar colunas para unir. A condição de junção é separada de outras condições de pesquisa. A cláusula ON torna o código fácil de entender.
17. The database designer has named the key (unique) columns from two tables differently.While joining these tables, which among the following will be the best practice?
- JOIN..ON
- Cláusulas NATURAL JOIN ou JOIN ... ON
- Ambos a e B
- Nenhuma das acima
Answer: A. Usar NATURAL JOINS neste caso pode gerar resultados inesperados, pois há uma pesquisa implícita de colunas com nomes idênticos que, neste caso, não estão presentes.
18.What of the following can be used to fetch non-matching rows along with the matching rows between a source and a target table in Oracle DB?
- EQUI-JOIN
- SELF-JOIN
- NATURAL JOIN
- OUTER-JOIN
Answer: D. Uma junção externa é criada quando os registros precisam ser incluídos nos resultados sem ter registros correspondentes nas tabelas de junção. Esses registros são combinados com registros NULL para que sejam incluídos na saída.
19. What are Cartesian Joins also known as in Oracle DB?
- Equi-join
- Anti-join
- Cross-Join
- Nenhuma das acima
Answer: C. Uma junção cartesiana entre duas tabelas retorna todas as combinações possíveis de linhas das tabelas. Uma junção cartesiana pode ser produzida não incluindo uma operação de junção na consulta ou usando um CROSS JOIN.
20.What will be the result of a NATURAL JOIN between two tables EMPLOYEES and DEPARTMENT as given in the query below? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT * FROM employees NATURAL JOIN department;
- A coluna comum DEPARTMENT_ID com nome idêntico em ambas as tabelas aparecerá duas vezes no conjunto de resultados
- Todas as colunas com nomes idênticos unidos ao NATURAL JOIN aparecerão duas vezes no conjunto de resultados
- O conjunto de resultados terá apenas uma coluna para cada par de colunas com nomes idênticos de ambas as tabelas
- Nenhuma das acima
Answer: C. As palavras-chave NATURAL JOIN não requerem uma condição para estabelecer a relação entre duas tabelas. No entanto, deve existir uma coluna comum. Os qualificadores de coluna não podem ser usados com as palavras-chave NATURAL JOIN.
21.What is the difference between a NATURAL JOIN and an EQUI-JOIN in Oracle DB?
- Não há diferença
- Eles são os mesmos em relação ao conjunto de resultados que é obtido de ambos
- Ambos a e B
- Nenhuma das acima
Answer: D. NATURAL JOIN une todas as colunas com nomes idênticos, enquanto EQUI-JOIN requer que as colunas sejam explicitamente mencionadas na consulta SQL.
22.What is an INNER JOIN in Oracle DB?
- A junção que fornece os registros correspondentes entre duas tabelas é chamada de INNER JOIN
- Uma junção interna pode usar operadores como <,>, <>
- Ambos a e B
- Nenhuma das acima
Answer: C. Uma junção pode ser uma junção interna, na qual os únicos registros retornados têm um registro correspondente em todas as tabelas, ou uma junção externa, na qual os registros podem ser retornados independentemente de haver um registro correspondente na junção.
23.What is the difference between a INNER JOIN and an EQUI-JOIN in Oracle DB?
- Eles são os mesmos em termos de sintaxe e conjuntos de resultados obtidos.
- Um INNER JOIN é um subconjunto de um EQUI-JOIN
- Um INNER JOIN pode usar operadores como <,>, <> junto com "=" enquanto EQUI-JOIN usa apenas o operador "="
- Tudo acima
Answer: C. EQUI-JOIN é um tipo de INNER JOIN contendo o operador "=" em uma condição de junção, enquanto o INNER JOIN pode conter operadores de igualdade e não igualdade
24.What is true about NATURAL JOINS in terms of ANSI SQL: 1999 syntaxes in Oracle DB?
- Um operador de igualdade (=) é usado
- Eles buscam resultados diferentes quando comparados à sintaxe tradicional
- A sintaxe ANSI SQL usa palavras como NATURAL JOIN nas consultas SQL
- Nenhuma das acima.
Answer: C. A sintaxe ANSI SQL é diferente da maneira tradicional de usar (=) nas formas tradicionais. Existem palavras-chave como NATURAL JOIN etc. na sintaxe ANSI SQL para distinguir as junções usadas.
25.What of the following is true with respect to the query given below? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT first_name, salary
FROM employees e, departments d
WHERE e.department_id (+) = d.department_id ;
- Há uma junção externa entre o department_id de ambas as tabelas que é equivalente a uma junção externa direita em ANSI SQL
- Existe uma junção externa entre o department_id de ambas as tabelas que é equivalente a uma junção Left Outer em ANSI SQL
- Ele busca todos os registros do department_id da tabela de funcionários, sejam eles correspondentes ou não
- Ele busca todos os registros de department_id da tabela de departamentos, sejam eles correspondentes ou não
Answer: A, D. A condição e.department_id (+) = d.department_id significa que irá realizar uma Right Outer Join e todos os department_id s da tabela de departamentos serão exibidos, sejam eles correspondentes ou não
26.Which of the following syntax models is used in extensively in the software systems worldwide?
- ANSI SQL: 1999
- A sintaxe tradicional do Oracle e a sintaxe ANSI SQL: 1999
- Sintaxe Oracle tradicional
- Todas as opções
Answer: C. A sintaxe ANSI SQL: 1999 embora não seja usada tanto quanto a sintaxe tradicional do Oracle, ainda é uma das sintaxes que pode ser usada no Oracle SQL
27.What of the following is true regarding the Cartesian product in Oracle DB?
- Se 'N' é o número de tabelas unidas, então se não. de junções é N-1, o produto cartesiano não é executado
- Se 'N' é o número de tabelas unidas, então se não. de junções é N, o produto cartesiano é executado
- Se 'N' é o número de tabelas unidas, então se não. de junções é N + 1, o produto cartesiano é executado
- Se 'N' é o número de tabelas unidas, então se não. de junções é N-1 ou menos, o produto cartesiano é executado.
Answer: A. Uma junção cartesiana entre duas tabelas retorna todas as combinações possíveis de linhas das tabelas. Uma junção cartesiana pode ser produzida não incluindo uma operação de junção na consulta ou usando um CROSS JOIN. Uma consulta deve ter pelo menos (N-1) condições de junção para evitar um produto cartesiano, onde N é o número de tabelas na consulta.
28.What is the reason of error in the following SQL query? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT first_name, last_name
FROM employees, departments
WHERE department_id (+) = department_id ;
- Não há apelidos usados para as tabelas.
- A palavra RIGHT OUTER JOIN não é usada aqui, portanto, gera o erro
- O (+) deve estar no lado direito da condição de igualdade e não no lado esquerdo
- Aliases de tabela devem ser usados com o department_id na condição para remover a nomenclatura ambígua
Answer: D. Sem os aliases da tabela, o Oracle não consegue derivar a origem das colunas que estão sendo unidas e, portanto, lança um erro de ambiguidade na execução.
29.Which of the following is used to avoid the ambiguous column problem in Oracle DB?
- ;
- ,
- .
- /
Answer: C. A sintaxe para remover o problema de coluna ambígua é: table_alias.column_name
30.Which of the following is the most appropriate about the following query? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT employee_id , first_name, last_name
FROM employees e right outer join department d
On e.department_id = d.department_id ;
- Dá os detalhes dos funcionários que não estão em nenhum departamento
- Dá os detalhes dos departamentos que não têm nenhum funcionário
- Dá os detalhes de todos os departamentos, independentemente de terem ou não algum funcionário
- Fornece detalhes sobre os funcionários que foram contratados na empresa 'ABC', independentemente dos departamentos.
Answer: C. Com o método JOIN para junções externas, você pode adicionar as palavras-chave LEFT, RIGHT ou FULL. Uma junção externa esquerda inclui todos os registros da tabela listada no lado esquerdo da junção, mesmo se nenhuma correspondência for encontrada com a outra tabela na operação de junção. Uma junção externa completa inclui todos os registros de ambas as tabelas, mesmo se nenhum registro correspondente na outra tabela for encontrado.
31.What will be the outcome of the following query? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT *
FROM employees e, department d
WHERE a.department_id = b.department_id ;
- Ele fornecerá todos os valores correspondentes de ambas as tabelas que têm o mesmo departamento_id
- Ele fornecerá todas as colunas da tabela de funcionários e apenas as 100 primeiras linhas da tabela de departamentos
- Isso gerará um erro ORA: identificador inválido "b.department_id"
- Nenhuma das opções acima
Answer: C. Os mesmos aliases devem estar na cláusula WHERE conforme declarado na cláusula FROM
32.Which of the following is true regarding the USING and ON clauses in table joins? (Choose more than one options if applicable)
- A cláusula ON pode ser usada para unir tabelas em colunas com o mesmo tipo de dados, mas não necessariamente com o mesmo nome
- As cláusulas USING e ON são usadas apenas em equijoins e não equijoins
- Não mais de uma condição pode ser usada com a cláusula ON
- A cláusula WHERE pode ser escrita após a cláusula USING..ON para aplicar condições adicionais
Answer: A, D. A abordagem JOIN ... USING é semelhante à abordagem NATURAL JOIN, exceto que a coluna comum é especificada na cláusula USING. Uma condição não pode ser incluída na cláusula USING para indicar como as tabelas estão relacionadas. Além disso, os qualificadores de coluna não podem ser usados para a coluna comum especificada na cláusula USING. A abordagem JOIN ... ON une tabelas com base em uma condição especificada. A palavra-chave JOIN na cláusula FROM indica as tabelas a serem unidas e a cláusula ON indica como as duas tabelas estão relacionadas. Esta abordagem deve ser usada se as tabelas que estão sendo unidas não tiverem uma coluna comum com o mesmo nome em cada tabela.
33.How many tables can be joined by using the JOINS in Oracle DB?
- 1
- 2
- 255
- Sem limite
Answer: D. Atualmente não há limite para o número de mesas participantes em uma junção.
34. What is true when multiple joins are used in an SQL statement?
- As junções são avaliadas da esquerda para a direita
- As junções são avaliadas da direita para a esquerda
- Não há precedência no processo de avaliação de junções
- Nenhuma das acima
Answer: A. Quando existem várias junções em uma instrução, elas são avaliadas da esquerda para a direita.
35.What is true with respect to the following query? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SELECT bonus, first_name, department_id
FROM bonus b NATURAL JOIN employees e NATURAL JOIN department d;
- O uso de NATURAL JOIN para unir várias tabelas é a melhor opção e produz resultados precisos
- A probabilidade de erro é muito menor quando NATURAL JOINs são usados para unir várias tabelas
- As cláusulas USING..JOIN..ON fornecem resultados mais precisos do que NATURAL JOINs ao unir várias tabelas
- O Oracle associa implicitamente várias tabelas quando um NATURAL JOIN é usado e, portanto, é uma boa prática usar NATURAL JOINS
Answer: C. O uso de NATURAL JOINS pode criar produtos cartesianos de linhas e também está sujeito a erros com conjuntos de resultados não confiáveis.
36.What is true about the clauses JOIN..ON in Oracle DB?
- Eles não são muito confiáveis em comparação com NATURAL JOINS ao juntar várias tabelas
- A cláusula JOIN..ON é semelhante à cláusula WHERE, que limita as linhas com condições
- Uma cláusula WHERE adicional é obrigatória quando a cláusula JOIN..ON é usada
- Nenhuma das acima
Answer: B. A abordagem JOIN .... ON junta tabelas com base em uma condição especificada. A palavra-chave JOIN na cláusula FROM indica as tabelas a serem unidas e a cláusula ON indica como as duas tabelas estão relacionadas. Esta abordagem deve ser usada se as tabelas que estão sendo unidas não tiverem uma coluna comum com o mesmo nome em cada tabela.
Examine the table structures as given. Answer the questions 37 and 38 that follow the query given below:
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT e.salary, d.department_id
FROM employees e JOIN department d
On (e.department_id = d.department_id and e.last_name = 'Brandon');
37.What is true with respect to the query given above?
- Fornece um erro ORA, pois a cláusula WHERE obrigatória não está presente
- A cláusula JOIN..ON não pode conter mais de uma condição
- A consulta ignora a última condição e é executada sem um erro ORA
- A cláusula JOIN..ON pode ser escrita na forma fornecida acima para colocar mais condições.
Answer: D. A cláusula WHERE pode ser omitida e as condições relevantes podem ser acomodadas na própria cláusula JOIN..ON, conforme mostrado na consulta fornecida
38.With respect to the given query, if the JOIN used is replaced with NATURAL JOIN, it throws an error. What is the reason for this error?
- Quando o NATURAL JOIN é usado, uma cláusula WHERE é obrigatória, omitindo o que dá um erro
- A cláusula ON deve ser substituída pela cláusula USING
- As palavras NATURAL, JOIN e USING estão mutuamente exclusivamente no contexto da mesma cláusula de junção
- Uma consulta não pode combinar as cláusulas NATURAL JOIN e ON (ou USING) durante a junção.
Answer: C, D.
39.What is true about Non-equijoins in Oracle DB?
- Eles se juntam com base na palavra-chave NON-EQUI JOIN
- Eles são usados usando a cláusula JOIN..ON com o sinal "="
- Os resultados são obtidos quando o resultado da desigualdade mencionada é avaliado como verdadeiro.
- Nenhuma das acima
Answer: C. As junções não equi são usadas com a cláusula JOIN..ON, mas com operadores de desigualdade.
Examine the structures of the tables EMPLOYEES and DEPARTMENTS as given and answer the questions 40 and 41 that follow.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
40.What will be the outcome of the following query in Oracle DB?
SELECT e.first_name, e.last_name, e.employee_id
FROM employees e JOIN department d
ON (e.salary BETWEEN 1000 AND 10000);
- Ele lançará um erro ORA, pois a condição na cláusula ON está incorreta.
- Ele lançará um erro ORA devido a um erro de sintaxe, pois não há sinal de igualdade "=" na cláusula ON
- Será executado com sucesso e fornecerá o nome, sobrenome e ID de funcionário dos funcionários com a condição mencionada.
- Junções não equi só podem ser usadas para mostrar inigualidades e não intervalos.
Answer: C.
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- O resultado da operação de correspondência de desigualdade é verdadeiro
- O resultado da operação de correspondência de desigualdade é 0
- O resultado da operação de correspondência de desigualdade é 1
- O resultado da operação de correspondência de desigualdade é falso
Answer: A. Uma associação de igualdade é criada quando os dados que unem registros de duas tabelas diferentes são uma correspondência exata (ou seja, uma condição de igualdade cria o relacionamento). A abordagem tradicional usa um sinal de igual como o operador de comparação na cláusula WHERE. A abordagem JOIN pode usar as palavras-chave NATURAL JOIN, JOIN ... USING ou JOIN ... ON.
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- O resultado da operação de correspondência de desigualdade é verdadeiro
- O resultado da operação de correspondência de desigualdade é 0
- O resultado da operação de correspondência de desigualdade é 1
- O resultado da operação de correspondência de desigualdade é falso
Answer: A. Uma associação de igualdade é criada quando os dados que unem registros de duas tabelas diferentes são uma correspondência exata (ou seja, uma condição de igualdade cria o relacionamento). A abordagem tradicional usa um sinal de igual como o operador de comparação na cláusula WHERE. A abordagem JOIN pode usar as palavras-chave NATURAL JOIN, JOIN ... USING ou JOIN ... ON.
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- O resultado da operação de correspondência de desigualdade é verdadeiro
- O resultado da operação de correspondência de desigualdade é 0
- O resultado da operação de correspondência de desigualdade é 1
- O resultado da operação de correspondência de desigualdade é falso
Answer: A. Uma associação de igualdade é criada quando os dados que unem registros de duas tabelas diferentes são uma correspondência exata (ou seja, uma condição de igualdade cria o relacionamento). A abordagem tradicional usa um sinal de igual como o operador de comparação na cláusula WHERE. A abordagem JOIN pode usar as palavras-chave NATURAL JOIN, JOIN ... USING ou JOIN ... ON.
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- O resultado da operação de correspondência de desigualdade é verdadeiro
- O resultado da operação de correspondência de desigualdade é 0
- O resultado da operação de correspondência de desigualdade é 1
- O resultado da operação de correspondência de desigualdade é falso
Answer: A. Uma associação de igualdade é criada quando os dados que unem registros de duas tabelas diferentes são uma correspondência exata (ou seja, uma condição de igualdade cria o relacionamento). A abordagem tradicional usa um sinal de igual como o operador de comparação na cláusula WHERE. A abordagem JOIN pode usar as palavras-chave NATURAL JOIN, JOIN ... USING ou JOIN ... ON.
43.What is true regarding a Self-Join in Oracle DB?
- Apenas duas tabelas são necessárias para a junção funcionar
- As colunas no conjunto de resultados são obtidas de duas tabelas, mas são exibidas em uma tabela
- Conceitualmente, a tabela de origem se duplica para criar a tabela de destino. (Oracle não duplica tabelas)
- Tudo acima
Answer: C. As autojunções são usadas quando uma tabela deve ser unida a si mesma para recuperar os dados de que você precisa. Os aliases de tabela são necessários na cláusula FROM para realizar uma autojunção.
44. With respect to the query and the table structure given below,answer the question.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SELECT *
FROM employees a join employees b
WHERE a.employee_id = b.employee_id ;
Qual das tabelas a seguir o Oracle trata como tabela de origem e tabela de destino?
- a é a origem eb é o destino
- b é a origem e a é o destino
- O Oracle não trata nenhuma das tabelas como origem ou destino
- Nenhuma das acima
Answer: A. A primeira ocorrência da tabela de funcionários é considerada como fonte e as ocorrências subsequentes como b, ce assim por diante.
45.In what scenarios can we use Self-Joins ideally in Oracle DB?
- Quando precisamos encontrar os registros duplicados em uma tabela
- Quando precisamos obter valores NULL de uma tabela
- Quando precisamos exibir uma coluna de uma tabela duas vezes
- Quando precisamos exibir a hierarquia de entidades relevantes
Answer: D.
46. What is true about NATURAL JOINS in Oracle DB?
- As colunas unidas têm o mesmo nome, mas podem ter diferentes tipos de dados
- As colunas unidas podem ter o mesmo tipo de dados, mas nomes diferentes
- As colunas unidas devem ter nomes idênticos e o mesmo tipo de dados
- Nenhuma das acima
Answer: C. As palavras-chave NATURAL JOIN não requerem uma condição para estabelecer a relação entre duas tabelas. No entanto, deve existir uma coluna comum. Os qualificadores de coluna não podem ser usados com as palavras-chave NATURAL JOIN.
47.A report has to be extracted which gives the department name, department ID, department city and location ID only for departments 100 and 101. Using NATURAL JOINS, which of the following options will give the required results?
SELECT department_id , department_name ,location, city FROM departments NATURAL JOIN locations WHERE department_id in (100,101);
SELECT department_id , department_name ,location, city FROM locations NATURAL JOIN departments WHERE department_id BETWEEN 100 AND 101;
-
SELECT department_id , department_name ,location, city FROM departments NATURAL JOIN locations WHERE department_id >100 AND department_id >101;
-
SELECT department_id , department_name ,location, city FROM departments NATURAL JOIN locations ;
Answer: A. O WHERE pode ser usado para condições adicionais após a cláusula NATURAL JOIN.
48.In which of the following scenarios shall a USING clause or a NATURAL JOIN clause be used?
- Quando os nomes das colunas das tabelas são idênticos, use a cláusula USING
- Quando os tipos de dados das colunas das tabelas são idênticos, use NATURAL JOINS
- Se várias colunas têm os mesmos nomes, mas os tipos de dados não correspondem, USING pode ser usado
- NATURAL JOINS devem ser usados apenas quando os nomes das colunas e seus tipos de dados são os mesmos
Answer: C, D. NATURAL JOINS e USING são mutuamente exclusivos, a cláusula USING deve ser usada para corresponder apenas a uma coluna quando mais de uma coluna corresponder.
49.Examine the table structures given. What will be the outcome of the following query? (Choose the most appropriate answer)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SELECT e.name, b.bonus
FROM employees e
JOIN bonus b
USING (job_id)
WHERE e.job_id like 'SA%');
- Fornece os nomes e bônus obtidos por todos os funcionários de alguma empresa
- Fornece os nomes e bônus obtidos por todos os funcionários em um determinado cargo em uma empresa
- É executado com sucesso dando todos os nomes e os bônus obtidos por todos os funcionários em todos os empregos
- Ele lança um erro ORA.
Answer: D. As colunas usadas na cláusula USING não devem ter um qualificador (nome da tabela ou alias) em nenhuma parte da instrução SQL.
50.What is true with respect to INNER JOINS and OUTER JOINS in Oracle DB?
- INNER JOIN retorna apenas as linhas que são correspondidas
- OUTER JOIN retorna apenas as linhas que não são correspondidas
- OUTER JOIN retorna as linhas que são correspondidas, bem como aquelas que não correspondem
- Nenhuma das acima
Answer: A, C. Uma junção pode ser uma junção interna, na qual os únicos registros retornados têm um registro correspondente em todas as tabelas, ou uma junção externa, na qual os registros podem ser retornados independentemente de haver um registro correspondente na junção. Uma junção externa é criada quando os registros precisam ser incluídos nos resultados sem ter registros correspondentes nas tabelas de junção. Esses registros são combinados com registros NULL para que sejam incluídos na saída.
51. What is true regarding FULL OUTER JOIN in Oracle DB?
- Quando LEFT OUTER JOIN e RIGHT OUTER JOIN aparecem na mesma consulta, é chamado de FULL OUTER JOIN
- Um FULL OUTER JOIN é o mesmo que OUTER JOIN
- Ambos a e B
- Uma junção entre duas tabelas que retorna os resultados de uma junção INNER e um LEFT e RIGHT OUTER JOIN é chamada de FULL OUTER JOIN
Answer: D. Uma junção externa completa inclui todos os registros de ambas as tabelas, mesmo se nenhum registro correspondente na outra tabela for encontrado.
Examine the given table structures and answer the questions 52 and 53 that follow.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
52.Consider the following query.
SELECT e.job_id , e.first_name, d.department_id
FROM departments D JOIN employees e JOIN BONUS b
USING (job_id );
Esta consulta resulta em um erro. Qual é o motivo do erro?
- A JOIN..USING pode acontecer apenas entre duas tabelas de cada vez
- A cláusula USING na consulta não possui nenhuma coluna do departamento
- Não há cláusula WHERE na consulta
- Nenhuma das acima
Answer: A. Tabela1 JOIN tabela2 JOIN tabela3 não é permitida sem as cláusulas ON para entre cada JOIN
53.You need to display all the non-matching rows from the EMPLOYEES table and the non-matching rows from the DEPARTMENT table without giving a Cartesian product of rows between them. Which of the following queries will give the desired output?
SELECT * FROM employees e, department d WHERE e.department_id = d.department_id ;
SELECT * FROM employees e NATURAL JOIN department d;
SELECT * FROM employees e FULL OUTER JOIN department d ON e.department_id = d.department_id ;
SELECT * FROM employees e JOIN department d ON ( e.department_id > d.department_id ) ;
Answer: C. O FULL OUTER JOIN retorna as linhas não correspondentes de ambas as tabelas. Uma junção externa completa inclui todos os registros de ambas as tabelas, mesmo se nenhum registro correspondente na outra tabela for encontrado.
54.Which of the following ANSI SQL: 1999 join syntax joins are supported by Oracle?
- Produtos cartesianos
- Junções naturais
- Aderir OUTER completo
- Equijoins
Answer: D.
55.Which of the following is not a format for Outer Joins in Oracle DB?
- Right
- Left
- Centre
- Full
Answer: C. Exceto 'Center', os 3 tipos restantes são os tipos de formatos das Junções Externas no banco de dados Oracle. Com o método JOIN para junções externas, você pode adicionar as palavras-chave LEFT, RIGHT ou FULL.
Examine the given table structures. Answer the questions 56, 57 and 58 that follow by referring to the following query:
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT *
FROM employees e NATURAL JOIN department d;
56.You need to find the results obtained by the above query only for the departments 100 and 101. Which of the following clauses should be added / modified to the above query?
- ON (e.department_id = d.department_id) deve ser adicionado
- USING (e.department_id) deve ser adicionado
- ONDE e.department_id em (100,101) deve ser adicionado
- Nenhuma das acima
Answer: C. A cláusula NATURAL JOIN corresponde implicitamente a todas as colunas nomeadas idênticas. Para adicionar condições adicionais, a cláusula WHERE pode ser usada.
57.You need to find the results obtained by the above query for all those employees who have salaries greater than 20000. Which of the following clauses should be added / modified to the above query?
- ON (e.department_id = d.department_id) ONDE salário> 20000;
- USING (e.department_id) ONDE salário> 20000;
- USANDO (id_departamento) ONDE salário> 20000;
- ONDE salário> 20000;
Answer: D.
58.If the NATURAL JOIN in the above query is replaced by only JOIN which of the following should be added / modified to the above query to give the results pertaining to Department 100?
- LIGADO (id_departamento = 100);
- USING (e.department_id = 100);
- ONDE d.department_id = 100;
- ON (e.department_id = d.department_id e d.department_id = 100);
Answer: D. Os equi-joins podem ser adicionados para mais condições após a cláusula ON.
59.A report has to be extracted to get the Managers for all the employees in the departments 10 and 20 of a company 'ABC'. Which of the following queries will give the required results? (Consider the table structure as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (employee_id );
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (b.employee_id = a.employee_id );
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (a.manager_id = b.employee_id ) WHERE department_id in (10,20);
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (a.manager_id = b.employee_id ) WHERE a.department_id in (10,20);
Answer: D. A opção C está incorreta porque o departamento_id sem alias na cláusula WHERE lançará um erro.
60.Which of the following queries will give results without duplicate values between the two tables EMPLOYEES and DEPARTMENT? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT * FROM employees e NATURAL JOIN department d;
SELECT * FROM employees e JOIN department d;
SELECT * FROM employees e NATURAL JOIN department d USING (e.department_id );
SELECT * FROM employees e FULL OUTER JOIN department d USING (department_id );
Answer: D. O FULL OUTER JOIN fornecerá todas as linhas correspondentes e não correspondentes de ambas as tabelas, excluindo os valores duplicados.
Examine the structures for the tables as given here and answer the questions 61 to 64.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SQL> desc locations
Name Null? Type
----------------------- -------- ----------------
LOCATION_ID NOT NULL NUMBER(4)
STREET_ADDRESS VARCHAR2(40)
POSTAL_CODE VARCHAR2(12)
CITY NOT NULL VARCHAR2(30)
STATE_PROVINCE VARCHAR2(25)
COUNTRY_ID CHAR(2)
SQL> desc locations
Name Null? Type
----------------------- -------- ----------------
LOCATION_ID NOT NULL NUMBER(4)
STREET_ADDRESS VARCHAR2(40)
POSTAL_CODE VARCHAR2(12)
CITY NOT NULL VARCHAR2(30)
STATE_PROVINCE VARCHAR2(25)
COUNTRY_ID CHAR(2)
61.What is true about the following query? (Choose the most appropriate answer)
SELECT *
FROM bonus b, employees e
WHERE b.job_id (+) = e.job_id ;
- Ele exibirá todos os bônus obtidos por todos os funcionários.
- Ele exibirá NULL para a coluna de bônus se um determinado funcionário não tiver recebido nenhum bônus
- Ambos a e B
- Nenhuma das acima
Answer: B. O (+) está no LHS da equação significa que é um RIGHT OUTER JOIN e vice-versa.
62.You have to list all the departments who have no employees yet in a company named 'XYZ'. Which of the following queries will give you the required results?
SELECT department_id , department_name FROM departments d NATURAL JOIN employees e;
SELECT department_id , department_name FROM employees e JOIN departments d ON (e.department_id = d.department_id );
SELECT department_id , department_name FROM employees e LEFT OUTER JOIN departments d USING (department_id );
SELECT department_id , department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id );
Answer: D.
63.You need to extract a report which displays 'No department yet' for all those employees who are yet to be allocated to a department. Which of the following will fulfill the purpose?
SELECT nvl(department_id ,'No department yet') FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id );
SELECT nvl(department_id ,'No department yet') FROM departments d LEFT OUTER JOIN employees e ON (e.department_id = d.department_id );
SELECT nvl(department_id ,'No department yet') FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id );
SELECT nvl(department_id ,'No department yet') FROM employees e FULL OUTER JOIN departments d ON (e.department_id = d.department_id );
Answer: C.
64.You need to extract a report which displays all the departments which have not been assigned to a city yet. Which of the following queries will give you the required output?
SELECT department_id , department_name FROM departments d NATURAL JOIN locations l;
SELECT department_id , department_name FROM departments d FULL OUTTER JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d JOIN locations l USING (location_id);
SELECT department_id , department_name FROM departments d LEFT OUTER JOIN locations l ON (d.location_id = l.location_id);
Answer: D.
65.In which two cases an OUTER JOIN should be used?
- Se as colunas das tabelas unidas tiverem valores NULL
- Se as tabelas unidas tiverem colunas NOT NULL
- Se as tabelas unidas tiverem apenas dados sem correspondência
- Se as tabelas unidas tiverem dados correspondentes e não correspondentes
Answer: A, D. Uma junção externa é criada quando os registros precisam ser incluídos nos resultados sem ter registros correspondentes nas tabelas de junção. Esses registros são combinados com registros NULL para que sejam incluídos na saída.
66.You need to find the salary grade obtained by each employee. Which of the following query will you use? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc grade
Name Null? Type
----------------------- -------- ----------------
GRADE NUMBER
LOSAL NUMBER
HISAL NUMBER
SELECT employee_id , salary, grade FROM employees e JOIN grade g ON g.grade BETWEEN g.losal AND g.hisal
SELECT employee_id , salary, grade FROM employees e FULL OUTER JOIN grade g WHERE g.grade > g.losal AND < g.hisal;
SELECT employee_id , salary, grade FROM employees e JOIN grade g ON (MIN(g.grade) = g.losal AND MAX(g.grade) = g.hisal);
- Nenhuma das acima
Answer: A.
67.Examine the table structures given.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
Avalie esta instrução SQL:
SELECT e.employee_id , (.25* e.salary) + (.5 * e.commission_pct) + (.75 * b.bonus) as calc_val
FROM employees e, bonus b
WHERE e.employee_id = b.employee_id ;
O que acontecerá se você remover todos os parênteses do cálculo?
- O valor exibido na coluna calc_val será menor.
- O valor exibido na coluna calc_val será maior.
- Não haverá diferença na coluna calc_val.
- Um erro será relatado.
Answer: C.
68.Consider the exhibit and examine the structures of the EMPLOYEES, DEPARTMENTS, and GRADE tables. For which situation would you use a non-equijoin query?
- Para encontrar a nota de cada um dos funcionários
- Para listar o nome, job_id e nome do gerente para todos os funcionários
- Para encontrar o nome do departamento de funcionários.
- Para descobrir o número de funcionários que trabalham para o departamento administrativo e ganham menos de 30.000
Answer: A. Uma junção de não igualdade estabelece um relacionamento baseado em qualquer coisa diferente de uma condição de igualdade. Os valores de intervalo usados com junções de não igualdade devem ser mutuamente exclusivos.
69.In which three cases would you use the USING clause? (Choose three.)
- Você deseja criar um não-equijoin.
- As tabelas a serem unidas têm várias colunas NULL.
- As tabelas a serem unidas possuem colunas com o mesmo nome e diferentes tipos de dados.
- Você deseja usar uma junção NATURAL, mas deseja restringir o número de colunas na condição de junção.
Answer: C, D. A abordagem JOIN .... USING é semelhante à abordagem NATURAL JOIN, exceto que a coluna comum é especificada na cláusula USING. Uma condição não pode ser incluída na cláusula USING para indicar como as tabelas estão relacionadas. Além disso, os qualificadores de coluna não podem ser usados para a coluna comum especificada na cláusula USING.
70.If the tables EMPLOYEES and BONUS have two columns with identical names viz: - SALARY and JOB_ID, which of the following queries are equivalent to each other? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SELECT * FROM employees E JOIN bonus B on (salary, job_id )
SELECT * FROM employees E NATURAL JOIN bonus B on (salary, job_id )
SELECT * FROM employees E JOIN bonus B USING (salary, job_id )
SELECT * FROM employees E JOIN bonus B on (salary, job_id )
Answer: B, C.
71.Examine the table structures as given.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
Examine as duas instruções SQL a seguir:
Query 1SELECT first_name,department_id
FROM employees E JOIN departments D
USING (department_id );
Query 2
SELECT first_name,department_id
FROM employees E NATURAL JOIN departments D
USING (department_id );
Qual afirmação é verdadeira em relação ao resultado?
- Apenas a consulta 1 é executada com sucesso e fornece o resultado necessário.
- Apenas a consulta 2 é executada com sucesso e fornece o resultado necessário.
- Ambas as consultas 1 e 2 são executadas com sucesso e fornecem resultados diferentes.
- Ambas as consultas 1 e 2 são executadas com sucesso e fornecem o mesmo resultado necessário.
Answer: D.
72.You need to generate a report showing the department location along with the employee name for all hires made before 20th January, 2013.
Você emite a seguinte consulta:
SELECT department_name , first_name||' '||last_name
FROM employees E JOIN department d
ON ( hire_date < '20-JAN-2013')
JOIN locations L
ON (l.location_id = d.location_id) ;
Qual afirmação é verdadeira em relação à consulta acima?
- Ele é executado com sucesso e fornece o resultado necessário.
- É executado com sucesso, mas não fornece o resultado necessário.
- Isso produz um erro porque a ordem de junção das tabelas está incorreta.
- Isso produz um erro porque as condições equijoin e não equijoin não podem ser usadas na mesma instrução SELECT.
Answer: B.
73.Examine the structure of the EMPLOYEES table:
Você deseja descobrir se os detalhes de algum funcionário foram inseridos mais de uma vez usando diferentes EMPLOYEE_ID, listando todos os nomes duplicados. Qual método você pode usar para obter o resultado necessário?
- self-join
- junção externa completa com junção automática
- junção externa esquerda com junção automática
- junção externa direita com junção automática
Answer: A. As autojunções são usadas quando uma tabela deve ser unida a si mesma para recuperar os dados de que você precisa. Os aliases de tabela são necessários na cláusula FROM para realizar uma autojunção.
Examine the structure of the tables DEPARTMENTS and LOCATIONS and answer the questions 74 and 75 that follow.
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SQL> desc locations
Name Null? Type
----------------------- -------- ----------------
LOCATION_ID NOT NULL NUMBER(4)
STREET_ADDRESS VARCHAR2(40)
POSTAL_CODE VARCHAR2(12)
CITY NOT NULL VARCHAR2(30)
STATE_PROVINCE VARCHAR2(25)
COUNTRY_ID CHAR(2)
74.You need to find out the departments that have not been allocated any location. Which query would give the required result?
SELECT d.department_id , d.department_name FROM departments d JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d RIGHT OUTER JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d FULL JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d LEFT OUTER JOIN locations l ON (d.location_id = l.location_id);
Answer: B.
75.You want to list all departments that are not located in any location along with the department name. Evaluate the following query:
SELECT d.department_id , d.department_name ,l.location_id, l.city
FROM departments D __________________ location L
ON (d.location_id = l.location_id);
Quais duas opções de JOIN podem ser usadas no espaço em branco na consulta acima para fornecer a saída correta?
- JOIN
- NATURAL JOIN
- LEFT OUTER JOIN
- DIREITO OUTER JOIN
Answer: A, C.
76. You need to generate a report that shows all department IDs, with corresponding employees (if any) and bonus details (if any), for all employees. Which FROM clause gives the required result? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
- DOS departamentos LEFT OUTER JOIN funcionários USANDO (department_id) bônus FULL OUTER JOIN
- FULL OUTER JOIN departamento USANDO (departamento_id);
- Bônus de JOIN funcionários USANDO (job_id)
- DOS funcionários FULL OUTER JOIN departamentos Bônus FULL OUTER JOIN
Answer: A.
77. Examine the following exhibits:
Você deseja gerar um relatório listando os IDs dos funcionários e suas comissões e departamentos correspondentes (se houver), se as comissões existem ou não. Avalie a seguinte consulta:
SELECT e.employee_id , bonus, department_name FROM bonus b_____________ employees
USING (job_id ) ____________ departments
USING (department_id )
WHERE commission_pct IS NOT NULL;
Qual combinação de junções usadas nos espaços em branco na consulta acima fornece a saída correta?
- JUNTE-SE; LEFT OUTER JOIN
- FULL OUTER JOIN; FULL OUTER JOIN
- DIREITO OUTER JOIN; LEFT OUTER JOIN
- LEFT OUTER JOIN; DIREITO OUTER JOIN
Answer: A.
78.Predict the outcome of the following query.
SELECT e.salary, bonus
FROM employees E JOIN bonus b
USING (salary,job_id );
- Ele é executado com sucesso.
- Ele lança um erro porque o bônus em SELECT não tem um alias
- Ele gera um erro porque a cláusula USING não pode ter mais de 1 coluna.
- É executado com sucesso, mas os resultados não estão corretos.
Answer: D.
View the Exhibit and examine the structure of the EMPLOYEES, DEPARTMENTS, LOCATIONS and BONUS. Answer the questions from 79 and 80 that follow:
79.You need to list all the departments in the city of Zurich. You execute the following query:
SELECT D.DEPARTMENT_ID , D.DEPARTMENT_NAME , L.CITY
FROM departments D JOIN LOCATIONS L
USING (LOC_ID,CITY)
WHERE L.CITY = UPPER('ZURICH');
Preveja o resultado da consulta acima.
- Ele é executado com sucesso.
- Fornece um erro porque um qualificador é usado para CITY na instrução SELECT.
- Isso dá um erro porque os nomes das colunas no SELECT não correspondem
- Isso dá um erro porque a cláusula USING tem CITY, que não é uma coluna correspondente.
Answer: D. Apenas os nomes das colunas correspondentes devem ser usados na cláusula USING.
80.Answer the question that follows the query given below:
SELECT e.first_name, d.department_id , e.salary, b.bonus
FROM bonus b join employees e
USING (job_id )
JOIN department d
USING (department_id )
WHERE d.loc = 'Zurich';
Você precisa extrair um relatório que forneça o nome, número do departamento, salário e bônus dos funcionários de uma empresa chamada 'ABC'. Qual das seguintes consultas resolverá o propósito?
SELECT e.first_name, d.department_id , e.salary, b.bonus FROM bonus b join employees e join departments d on (b.job_id = e.job_id ) on (e.department_id =d.department_id ) WHERE d.loc = 'Zurich';
SELECT e.first_name, d.department_id , e.salary, b.bonus FROM bonus b join employees e on (b.job_id = e.job_id ) JOIN department d on (e.department_id =d.department_id ) WHERE d.loc = 'Zurich';
SELECT e.first_name, d.department_id , e.salary, b.bonus FROM employees e join bonus b USING (job_id ) JOIN department d USING (department_id ) WHERE d.loc = 'Zurich';
- Nenhuma das acima
Answer: C. A consulta A lançará um erro sintático, a consulta B lançará um erro de identificador inválido entre bônus e departamento.
Examine the Exhibits given below and answer the questions 81 to 85 that follow.
81. You need to find the managers' name for those employees who earn more than 20000. Which of the following queries will work for getting the required results?
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E JOIN employees M USING (e.manager_id = m.employee_id ) WHERE e.salary >20000;
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E JOIN employees M USING (e.manager_id) WHERE e.salary >20000;
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E NATURAL JOIN employees M USING (e.manager_id = m.employee_id ) WHERE e.salary >20000;
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E JOIN employees M ON (e.manager_id = m.employee_id ) WHERE e.salary >20000;
Answer: D.
82.You issue the following query:
SELECT e.employee_id ,d.department_id
FROM employees e NATURAL JOIN department d NATURAL JOIN bonus b
WHERE department_id =100;
Qual afirmação é verdadeira em relação ao resultado desta consulta?
- Ele é executado com sucesso.
- Isso produz um erro porque a junção NATURAL pode ser usada apenas com duas tabelas.
- Isso produz um erro porque uma coluna usada na junção NATURAL não pode ter um qualificador.
- Isso produz um erro porque todas as colunas usadas na junção NATURAL devem ter um qualificador.
Answer: C.
83.You want to display all the employee names and their corresponding manager names. Evaluate the following query:
SELECT e.first_name "EMP NAME", m.employee_name "MGR NAME"
FROM employees e ______________ employees m
ON e.manager_id = m.employee_id ;
Qual opção JOIN pode ser usada no espaço em branco na consulta acima para obter a saída necessária?
- JOIN interno simples
- FULL OUTER JOIN
- LEFT OUTER JOIN
- DIREITO OUTER JOIN
Answer: C. Uma junção externa esquerda inclui todos os registros da tabela listada no lado esquerdo da junção, mesmo se nenhuma correspondência for encontrada com a outra tabela na operação de junção.
Consider the below exhibit and following query to answer questions 84 and 85. (Assume the table department has manager_id and department_name as its columns)
Select *
FROM employees e JOIN department d
ON (e.employee_id = d.manager_id);
84. You need to display a sentence "(first_name) (last_name) is manager of the (department_name) department". Which of the following SELECT statements will successfully replace '*' in the above query to fulfill this requirement?
SELECT e.first_name||' '||e.last_name||' is manager of the '||d.department_name||' department.' "Managers"
SELECT e.first_name, e.last_name||' is manager of the '||d.department_name||' department.' "Managers"
SELECT e.last_name||' is manager of the '||d.department_name||' department.' "Managers"
- Nenhuma das acima
Answer: A.
85.What will happen if we omit writing the braces "( )" after the ON clause in the above query?
- Ele fornecerá apenas os nomes dos funcionários e os nomes dos gerentes serão excluídos do conjunto de resultados
- Ele dará o mesmo resultado que com colchetes "()"
- Isso gerará um erro ORA, pois é obrigatório escrever as chaves "()" ao usar a cláusula JOIN..ON
- Nenhuma das acima
Answer: B. As chaves não são obrigatórias, mas usá-las fornece uma legibilidade clara das condições dentro delas.
86. Which of the following queries creates a Cartesian join?
SELECT title, authorid FROM books, bookauthor;
SELECT title, name FROM books CROSS JOIN publisher;
SELECT title, gift FROM books NATURAL JOIN promotion;
- tudo acima
Answer: A, B. Uma junção cartesiana entre duas tabelas retorna todas as combinações possíveis de linhas das tabelas. Uma junção cartesiana pode ser produzida não incluindo uma operação de junção na consulta ou usando um CROSS JOIN.
87. Which of the following operators is not allowed in an outer join?
- AND
- =
- OR
- >
Answer: C. O Oracle levanta a exceção "ORA-01719: operador de junção externa (+) não permitido no operando de OR ou IN"
88. Which of the following queries contains an equality join?
SELECT title, authorid FROM books, bookauthor WHERE books.isbn = bookauthor.isbn AND retail > 20;
SELECT title, name FROM books CROSS JOIN publisher;
SELECT title, gift FROM books, promotion WHERE retail >= minretail AND retail <= maxretail;
- Nenhuma das acima
Answer: A. Uma junção de igualdade é criada quando os dados de junção de registros de duas tabelas diferentes são uma correspondência exata (ou seja, uma condição de igualdade cria o relacionamento).
89. Which of the following queries contains a non-equality join?
SELECT title, authorid FROM books, bookauthor WHERE books.isbn = bookauthor.isbn AND retail > 20;
SELECT title, name FROM books JOIN publisher USING (pubid);
SELECT title, gift FROM books, promotion WHERE retail >= minretail AND retail <= maxretail;
- Nenhuma das acima
Answer: D. Nenhuma junção corresponde aos valores da coluna de diferentes tabelas com base em uma expressão de desigualdade. O valor da coluna de junção em cada linha da tabela de origem é comparado aos valores correspondentes na tabela de destino. Uma correspondência será encontrada se a expressão usada na junção, com base em um operador de desigualdade, for avaliada como verdadeira. Quando tal junção é construída, uma nenhuma junção é executada. Uma nenhuma junção é especificada usando a sintaxe JOIN..ON, mas a condição de junção contém um operador de desigualdade em vez de um sinal de igual.
90. The following SQL statement contains which type of join?
SELECT title, order#, quantity
FROM books FULL OUTER JOIN orderitems
ON books.isbn = orderitems.isbn;
- equality
- self-join
- non-equality
- junção externa
Answer: D. Uma junção externa completa inclui todos os registros de ambas as tabelas, mesmo se nenhum registro correspondente na outra tabela for encontrado.
91. Which of the following queries is valid?
SELECT b.title, b.retail, o.quantity FROM books b NATURAL JOIN orders od NATURAL JOIN orderitems o WHERE od.order# = 1005;
SELECT b.title, b.retail, o.quantity FROM books b, orders od, orderitems o WHERE orders.order# = orderitems.order# AND orderitems.isbn=books.isbn AND od.order#=1005;
SELECT b.title, b.retail, o.quantity FROM books b, orderitems o WHERE o.isbn = b.isbn AND o.order#=1005;
- Nenhuma das acima
Answer: C. Se as tabelas nas junções tiverem alias, as colunas selecionadas devem ser referenciadas com o alias e não com os nomes reais das tabelas.
92. Given the following query.
SELECT zip, order#
FROM customers NATURAL JOIN orders;
Qual das seguintes consultas é equivalente?
SELECT zip, order# FROM customers JOIN orders WHERE customers.customer# = orders.customer#;
SELECT zip, order# FROM customers, orders WHERE customers.customer# = orders.customer#;
SELECT zip, order# FROM customers, orders WHERE customers.customer# = orders.customer# (+);
- nenhuma das acima
Answer: B. A junção natural instrui o Oracle a identificar colunas com nomes idênticos entre as tabelas de origem e destino.
93. Examine the table structures as given. Which line in the following SQL statement raises an error?
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
1. SELECT e.first_name, d.department_name
2. FROM employees e, department d
3. WHERE e.department_id=d.department_id
- linha 1
- linha 2
- linha 3
- Sem erros
Answer: A. Se uma consulta usar nomes de alias na condição de junção, sua coluna deve usar o alias para referência.
94. Given the following query:
SELECT lastname, firstname, order#
FROM customers LEFT OUTER JOIN orders
USING (customer#)
ORDER BY customer#;
Qual das seguintes consultas retorna os mesmos resultados?
SELECT lastname, firstname, order# FROM customers c OUTER JOIN orders o ON c.customer# = o.customer# ORDER BY c.customer#;
SELECT lastname, firstname, order# FROM orders o RIGHT OUTER JOIN customers c ON c.customer# = o.customer# ORDER BY c.customer#;
SELECT lastname, firstname, order# FROM customers c, orders o WHERE c.customer# = o.customer# (+) ORDER BY c.customer#;
- Nenhuma das acima
Answer: B, C.
95. Which of the below statements are true?
- As funções de grupo não podem ser usadas em relação aos dados de várias fontes de dados.
- Se várias tabelas unidas em uma consulta contiverem colunas idênticas, o Oracle selecionará apenas uma delas.
- A junção natural é usada para juntar linhas de duas tabelas com base em colunas idênticas.
- A e B
Answer: C. As funções de grupo podem ser usadas em uma consulta usando junções Oracle. As colunas ambíguas devem ser referenciadas usando um qualificador.
96. Which line in the following SQL statement raises an error?
1. SELECT name, title
2. FROM books JOIN publisher
3. WHERE books.pubid = publisher.pubid
4. AND
5. cost < 45.95
- linha 1
- linha 2
- linha 3
- linha 4
Answer: C. Como as tabelas são unidas com a palavra-chave JOIN, a condição de igualdade deve ser escrita com a cláusula USING e não com a cláusula WHERE.
97. Given the following query:
SELECT title, gift
FROM books CROSS JOIN promotion;
Qual das seguintes consultas é equivalente?
SELECT title, gift FROM books NATURAL JOIN promotion;
SELECT title FROM books INTERSECT SELECT gift FROM promotion;
SELECT title FROM books UNION ALL SELECT gift FROM promotion;
SELECT title, gift FROM books, promotion;
Answer: D. As junções cartesianas são iguais às junções cruzadas.
98. If the CUSTOMERS table contains seven records and the ORDERS table has eight records, how many records does the following query produce?
SELECT *
FROM customers CROSS JOIN orders;
- 0
- 56
- 7
- 15
Answer: B. A junção cruzada é o produto cruzado das linhas contidas nas duas tabelas.
99. Which of the following SQL statements is not valid?
SELECT b.isbn, p.name FROM books b NATURAL JOIN publisher p;
SELECT isbn, name FROM books b, publisher p WHERE b.pubid = p.pubid;
SELECT isbn, name FROM books b JOIN publisher p ON b.pubid = p.pubid;
SELECT isbn, name FROM books JOIN publisher USING (pubid);
Answer: A. As colunas ambíguas devem ser referenciadas com os qualificadores de tabela.
100. Which of the following lists all books published by the publisher named 'Printing Is Us'?
SELECT title FROM books NATURAL JOIN publisher WHERE name = 'PRINTING IS US';
SELECT title FROM books, publisher WHERE pubname = 1;
SELECT * FROM books b, publisher p JOIN tables ON b.pubid = p.pubid WHERE name = 'PRINTING IS US';
- nenhuma das acima
Answer: A. Assumindo que a coluna NAME não está contida na tabela BOOKS, a consulta A é válida.
101. Which of the following SQL statements is not valid?
SELECT isbn FROM books MINUS SELECT isbn FROM orderitems;
SELECT isbn, name FROM books, publisher WHERE books.pubid (+) = publisher.pubid (+);
SELECT title, name FROM books NATURAL JOIN publisher
- Todas as instruções SQL acima são válidas.
Answer: B. A consulta B levanta uma exceção "ORA-01468: um predicado pode fazer referência a apenas uma tabela externa associada".
102. Which of the following statements about an outer join between two tables is true?
- Se o relacionamento entre as tabelas for estabelecido com uma cláusula WHERE, ambas as tabelas podem incluir o operador de junção externa.
- Para incluir registros sem correspondência nos resultados, o registro é emparelhado com um registro NULL na tabela deficiente.
- As palavras-chave RIGHT, LEFT e FULL são equivalentes.
- tudo acima
Answer: B.
103. Which line in the following SQL statement raises an error?
1. SELECT name, title
2. FROM books b, publisher p
3. WHERE books.pubid = publisher.pubid
4. AND
5. (retail > 25 OR retail-cost > 18.95);
- linha 1
- linha 3
- linha 4
- linha 5
Answer: B. Como as tabelas usadas na consulta possuem um qualificador, as colunas devem ser referenciadas usando o mesmo.
104. What is the maximum number of characters allowed in a table alias?
- 10
- 155
- 255
- 30
Answer: D. O alias da tabela pode ter no máximo 30 caracteres.
105. Which of the following SQL statements is valid?
SELECT books.title, orderitems.quantity FROM books b, orderitems o WHERE b.isbn= o.ibsn;
SELECT title, quantity FROM books b JOIN orderitems o;
SELECT books.title, orderitems.quantity FROM books JOIN orderitems ON books.isbn = orderitems.isbn;
- nenhuma das acima
Answer: C.