Obtenir des données à partir de plusieurs tables Questions
1.Which of the following is not related to a Relational Database?
- Selection
- Projection
- Joining
- Aucune de ces réponses
Answer: D. Les options A, B et C sont les principales fonctionnalités de la base de données relationnelle Oracle.
2.Which of the following methods is used for writing a query with columns from multiple tables?
- SELECT
- PAR GROUPE
- COMMANDÉ PAR
- JOINS
Answer: D. Les jointures sont utilisées pour connecter plusieurs tables et projeter des données de colonne à partir de plusieurs tables dans Oracle.
3.Which of the following is one of the most common methods to join multiple tables?
- Joindre par hachage
- Equijoin
- Auto-rejoindre
- Jointure croisée
Answer: B. L'équijointure est l'un des types de jointures qui est la technique la plus courante et la plus simple pour joindre plus d'une table. Les équijointures sont également appelées jointures simples ou jointures internes. Les équi-jointures impliquent une clé primaire et une clé étrangère.
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
- Jointure simple
- Non-equijoin
- Aucune de ces réponses
Answer: C. Les équi-jointures utilisent des opérateurs d'égalité pour joindre des lignes, les non-équi-jointures utilisent des opérateurs d'inégalité.
5.Which of the following statements is true about Oracle joins?
- Les valeurs NULL sont incluses dans le jeu de résultats
- Seules les lignes qui ont des conditions correspondantes sont récupérées
- Toutes les lignes présentes dans l'une des tables sont récupérées
- Aucune de ces réponses
Answer: B. Les valeurs NULL et les entrées différentes dans les colonnes de jointure communes sont exclues lorsque des jointures sont utilisées.
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
- Jointure externe
- Self-join
Answer: D. L'association est basée sur des colonnes avec des relations logiques et généralement hiérarchiques entre elles.
7.What is true about a cartesian join of two tables in Oracle DB?
- Il doit être évité car coûteux et non optimisé
- Il est formé lorsque chaque ligne d'une table est jointe à toutes les lignes de la deuxième table
- Les deux, A et B
- Aucune de ces réponses
Answer: B. La jointure cartésienne est souvent le résultat de conditions de jointure manquantes ou inadéquates, c'est simplement le produit croisé de deux tables.
8.Which of the following is one of the basic types of joins in Oracle DB ?
- Jointure externe
- Self-join
- Equi-join
- Tout ce qui précède
Answer: C. L'équi-jointure et la non-équi-jointure sont les deux types de base de jointures dans Oracle DB.
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?
- Il n'y a pas de condition
- Au moins une des colonnes des deux tableaux doit être commune.
- Les noms des colonnes dans les deux tables de jointure doivent être les mêmes pour l'utilisation de jointures
- Aucune de ces réponses
Answer: B. Les tables doivent être reliées par une colonne commune reliant deux entités. La table jointe sur une colonne commune produit un produit non cartésien.
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. Les équijointures sont également appelées jointures simples ou jointures internes. L'équijointure implique une clé primaire et une clé étrangère.
11.What is true about the source table and the target table in terms of Oracle Joins?
- Ils doivent avoir au moins une colonne du même nom
- Toutes les colonnes doivent avoir le même nom et le même type de données pour joindre les deux tables
- Les tables source et cible ne peuvent pas être permutées et sont spécifiques à la position
- Aucune de ces réponses
Answer: D. Les tables source et cible peuvent être permutées et ne sont pas fixées à leurs positions. Selon le type de jointure utilisé dans la requête, le résultat peut différer ou rester le même.
12.What is true about Natural joins in Oracle DB?
- Les noms de colonne de la source et des tables cible doivent être identiques
- Si les noms de colonne des tables source et cible ne sont pas les mêmes, Oracle fait implicitement le nécessaire
- NATURAL JOINS, USING et ON sont les mots-clés associés aux Natural Joins
- Tout ce qui précède
Answer: C. Le mot-clé NATURAL JOIN indique à Oracle d'identifier les colonnes avec des noms identiques entre les tables source et cible. Les jointures naturelles utilisent toutes les colonnes avec des noms et des types de données correspondants pour joindre les tables. La clause USING peut être utilisée pour spécifier uniquement les colonnes à utiliser pour une équijointure.
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';
- Il n'y a pas de différence
- Le résultat est différent dans les deux cas
- Les deux requêtes donneront une erreur ORA lors de l'exécution
- Aucune de ces réponses
Answer: B. Les tables source et cible peuvent être permutées tout en utilisant NATURAL JOIN, donnant des ensembles de résultats relationnellement différents.
14.Which of the following options is true regarding the NATURAL JOIN in Oracle DB?
- Lors de l'utilisation de NATURAL JOIN, il est obligatoire de mentionner les noms de toutes les colonnes des deux tables
- NATURAL JOIN ne peut être utilisé que si les noms de toutes les colonnes des deux tables sont identiques
- La jointure dans NATURAL JOIN se produit uniquement lorsque l'utilisateur spécifie les colonnes des tables source et cible.
- Il n'est pas nécessaire de mentionner les colonnes lors de l'utilisation de NATURAL JOINS.
Answer: D. Il y a une jointure implicite des colonnes de la source et des tables cible lorsqu'un NATURAL JOIN est utilisé. Une jointure naturelle est une opération JOIN qui crée une clause de jointure implicite pour vous en fonction des colonnes communes dans les deux tables jointes. Les colonnes communes sont des colonnes qui ont le même nom dans les deux tables.
15. What is the difference between a NATURAL JOIN and a join with JOIN..ON?
- Il n'y a pas de différence entre les deux
- JOIN..ON joint les tables source et cible sur des colonnes spécifiques avec le même nom
- NATURAL JOIN joint implicitement toutes les colonnes correspondantes des tables source et cible
- Aucune de ces réponses
Answer: B, C. La condition de jointure pour la jointure naturelle est essentiellement une équi-jointure de toutes les colonnes avec le même nom.Utilisez la clause ON pour spécifier des conditions arbitraires ou pour spécifier les colonnes à joindre.La condition de jointure est séparée des autres conditions de recherche. La clause ON rend le code facile à comprendre.
16.What is true about the JOIN..ON clause in Oracle DB?
- Cela ne dépend pas des colonnes des tables source et cible ayant des noms identiques
- Seules les colonnes des tables source et cible qui ont des noms identiques peuvent être utilisées avec cette clause
- C'est un format du NATURAL JOIN
- Tout ce qui précède
Answer: A, C. La condition de jointure pour la jointure naturelle est essentiellement une équi-jointure de toutes les colonnes portant le même nom. Utilisez la clause ON pour spécifier des conditions arbitraires ou spécifier les colonnes à joindre. La condition de jointure est séparée des autres conditions de recherche. La clause ON rend le code facile à comprendre.
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
- Clauses NATURAL JOIN ou JOIN ... ON
- Les deux, A et B
- Aucune de ces réponses
Answer: A. L'utilisation de NATURAL JOINS dans ce cas peut donner des résultats inattendus car il y a une recherche implicite de colonnes avec des noms identiques qui dans ce cas n'est pas présente.
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
- JOINT NATUREL
- OUTER-JOIN
Answer: D. Une jointure externe est créée lorsque des enregistrements doivent être inclus dans les résultats sans avoir d'enregistrements correspondants dans les tables de jointure. Ces enregistrements sont mis en correspondance avec des enregistrements NULL afin qu'ils soient inclus dans la sortie.
19. What are Cartesian Joins also known as in Oracle DB?
- Equi-join
- Anti-join
- Cross-Join
- Aucune de ces réponses
Answer: C. Une jointure cartésienne entre deux tables renvoie toutes les combinaisons possibles de lignes des tables. Une jointure cartésienne peut être produite en n'incluant pas d'opération de jointure dans la requête ou en utilisant un 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;
- La colonne commune DEPARTMENT_ID avec un nom identique dans les deux tables apparaîtra deux fois dans l'ensemble de résultats
- Toutes les colonnes ayant des noms identiques jointes avec le NATURAL JOIN, apparaîtront deux fois dans le jeu de résultats
- L'ensemble de résultats n'aura qu'une seule colonne pour chaque paire de colonnes de nom identique dans les deux tables
- Aucune de ces réponses
Answer: C. Les mots clés NATURAL JOIN ne nécessitent pas de condition pour établir la relation entre deux tables. Cependant, une colonne commune doit exister. Les qualificatifs de colonne ne peuvent pas être utilisés avec les mots clés NATURAL JOIN.
21.What is the difference between a NATURAL JOIN and an EQUI-JOIN in Oracle DB?
- Il n'y a pas de différence
- Ils sont identiques en ce qui concerne le jeu de résultats obtenu à la fois
- Les deux, A et B
- Aucune de ces réponses
Answer: D. NATURAL JOIN joint toutes les colonnes avec des noms identiques alors qu'EQUI-JOIN exige que les colonnes soient explicitement mentionnées dans la requête SQL.
22.What is an INNER JOIN in Oracle DB?
- La jointure donnant les enregistrements correspondants entre deux tables est appelée INNER JOIN
- Une jointure interne peut utiliser des opérateurs tels que <,>, <>
- Les deux, A et B
- Aucune de ces réponses
Answer: C. Une jointure peut être une jointure interne, dans laquelle les seuls enregistrements renvoyés ont un enregistrement correspondant dans toutes les tables, ou une jointure externe, dans laquelle les enregistrements peuvent être renvoyés, qu'il existe ou non un enregistrement correspondant dans la jointure.
23.What is the difference between a INNER JOIN and an EQUI-JOIN in Oracle DB?
- Ils sont les mêmes en termes de syntaxe et de jeux de résultats obtenus.
- Un INNER JOIN est un sous-ensemble d'un EQUI-JOIN
- Un INNER JOIN peut utiliser des opérateurs tels que <,>, <> avec "=" tandis que EQUI-JOIN n'utilise que l'opérateur "="
- Tout ce qui précède
Answer: C. EQUI-JOIN est un type de INNER JOIN contenant l'opérateur "=" dans une condition de jointure, alors que INNER JOIN peut contenir à la fois des opérateurs d'égalité et de non-égalité
24.What is true about NATURAL JOINS in terms of ANSI SQL: 1999 syntaxes in Oracle DB?
- Un opérateur d'égalité (=) est utilisé
- Ils obtiennent des résultats différents par rapport à la syntaxe traditionnelle
- La syntaxe ANSI SQL utilise des mots tels que NATURAL JOIN dans les requêtes SQL
- Aucune de ces réponses.
Answer: C. La syntaxe ANSI SQL est différente de la manière traditionnelle d'utiliser (=) de manière traditionnelle. Il existe des mots-clés comme NATURAL JOIN etc. dans la syntaxe ANSI SQL pour distinguer les jointures utilisées.
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 ;
- Il existe une jointure externe entre le department_id des deux tables, ce qui équivaut à une jointure externe droite dans ANSI SQL
- Il existe une jointure externe entre le department_id des deux tables, ce qui équivaut à une jointure externe gauche dans ANSI SQL
- Il récupère tous les enregistrements du department_id de la table des employés, qu'ils correspondent ou non
- Il récupère tous les enregistrements du department_id de la table department, qu'ils correspondent ou non
Answer: A, D. La condition e.department_id (+) = d.department_id signifie qu'il effectuera une jointure externe droite et que tous les department_id de la table department seront affichés, qu'ils correspondent ou non
26.Which of the following syntax models is used in extensively in the software systems worldwide?
- ANSI SQL: 1999
- La syntaxe Oracle traditionnelle et la syntaxe ANSI SQL: 1999
- Syntaxe traditionnelle d'Oracle
- Toutes les options
Answer: C. La syntaxe ANSI SQL: 1999, bien qu'elle ne soit pas utilisée autant que la syntaxe Oracle traditionnelle, reste l'une des syntaxes pouvant être utilisées dans Oracle SQL
27.What of the following is true regarding the Cartesian product in Oracle DB?
- Si 'N' est le nombre de tables jointes, alors si non. des jointures est N-1, le produit cartésien n'est pas effectué
- Si 'N' est le nombre de tables jointes, alors si non. des jointures est N, le produit cartésien est effectué
- Si 'N' est le nombre de tables jointes, alors si non. des jointures est N + 1, le produit cartésien est effectué
- Si 'N' est le nombre de tables jointes, alors si non. des jointures est N-1 ou moins, le produit cartésien est effectué.
Answer: A. Une jointure cartésienne entre deux tables renvoie toutes les combinaisons possibles de lignes des tables. Une jointure cartésienne peut être produite en n'incluant pas d'opération de jointure dans la requête ou en utilisant un CROSS JOIN. Une requête doit avoir au moins (N-1) conditions de jointure pour éviter un produit cartésien, où N est le nombre de tables dans la requête.
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 ;
- Aucun alias n'est utilisé pour les tables.
- Le mot RIGHT OUTER JOIN n'est pas utilisé ici, d'où l'erreur
- Le (+) doit être sur le côté droit de la condition d'égalité et non sur le côté gauche
- Les alias de table doivent être utilisés avec le department_id dans la condition pour supprimer les dénominations ambiguës
Answer: D. Sans les alias de table, Oracle ne peut pas dériver l'origine des colonnes jointes et renvoie donc une erreur d'ambiguïté lors de l'exécution.
29.Which of the following is used to avoid the ambiguous column problem in Oracle DB?
- ;
- ,
- .
- /
Answer: C. La syntaxe permettant de supprimer le problème de colonne ambiguë est la suivante: alias_table.colonne_nom
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 ;
- Il donne les détails des employés qui ne sont dans aucun service
- Il donne les détails des départements qui n'ont aucun employé
- Il donne les détails de tous les départements, qu'ils aient ou non des employés
- Il donne le détail des employés qui ont été embauchés dans l'entreprise «ABC» quels que soient les services.
Answer: C. Avec la méthode JOIN pour les jointures externes, vous pouvez ajouter les mots-clés LEFT, RIGHT ou FULL. Une jointure externe gauche inclut tous les enregistrements de la table répertoriée sur le côté gauche de la jointure, même si aucune correspondance n'est trouvée avec l'autre table dans l'opération de jointure. Une jointure externe complète inclut tous les enregistrements des deux tables, même si aucun enregistrement correspondant dans l'autre table n'est trouvé.
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 ;
- Il donnera toutes les valeurs correspondantes des deux tables qui ont le même department_id
- Il donnera toutes les colonnes de la table des employés et seulement les 100 premières lignes de la table des départements
- Cela donnera une erreur ORA: "b.department_id" identifiant invalide
- Aucune des options ci-dessus
Answer: C. Les mêmes alias devraient dans la clause WHERE que ceux déclarés dans la clause FROM
32.Which of the following is true regarding the USING and ON clauses in table joins? (Choose more than one options if applicable)
- La clause ON peut être utilisée pour joindre des tables sur des colonnes avec le même type de données mais pas nécessairement le même nom
- Les clauses USING et ON ne sont utilisées que sur les équidés et les non-équi-jointures
- Pas plus d'une condition ne peut être utilisée avec la clause ON
- La clause WHERE peut être écrite après la clause USING..ON pour appliquer des conditions supplémentaires
Answer: A, D. L'approche JOIN ... USING est similaire à l'approche NATURAL JOIN, sauf que la colonne commune est spécifiée dans la clause USING. Une condition ne peut pas être incluse dans la clause USING pour indiquer comment les tables sont liées. De plus, les qualificatifs de colonne ne peuvent pas être utilisés pour la colonne commune spécifiée dans la clause USING. L'approche JOIN ... ON joint les tables en fonction d'une condition spécifiée. Le mot clé JOIN dans la clause FROM indique les tables à joindre et la clause ON indique comment les deux tables sont liées. Cette approche doit être utilisée si les tables jointes n'ont pas de colonne commune avec le même nom dans chaque table.
33.How many tables can be joined by using the JOINS in Oracle DB?
- 1
- 2
- 255
- Sans limites
Answer: D. Il n'y a actuellement aucune limite sur le nombre de tables participant à une jointure.
34. What is true when multiple joins are used in an SQL statement?
- Les jointures sont évaluées de gauche à droite
- Les jointures sont évaluées de droite à gauche
- Il n'y a pas de priorité dans le processus d'évaluation des jointures
- Aucune de ces réponses
Answer: A. Lorsque plusieurs jointures existent dans une instruction, elles sont évaluées de gauche à droite.
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;
- L'utilisation de NATURAL JOIN pour joindre plusieurs tables est une meilleure option et donne des résultats précis
- La probabilité d'erreur est très inférieure lorsque NATURAL JOINs est utilisé pour joindre plusieurs tables
- Les clauses USING..JOIN..ON donnent des résultats plus précis que NATURAL JOINs lors de la jonction de plusieurs tables
- Oracle joint implicitement plusieurs tables lorsqu'un NATURAL JOIN est utilisé et c'est donc une bonne pratique d'utiliser NATURAL JOINS
Answer: C. L'utilisation de NATURAL JOINS peut créer des produits cartésiens de lignes et est également sujette aux erreurs avec des ensembles de résultats non fiables.
36.What is true about the clauses JOIN..ON in Oracle DB?
- Ils ne sont pas très fiables par rapport aux JOINS NATURELS lors de la jonction de plusieurs tables
- La clause JOIN..ON est similaire à la clause WHERE qui limite les lignes avec des conditions
- Une clause WHERE supplémentaire est obligatoire lorsque la clause JOIN..ON est utilisée
- Aucune de ces réponses
Answer: B. L'approche JOIN .... ON joint les tables en fonction d'une condition spécifiée. Le mot clé JOIN dans la clause FROM indique les tables à joindre et la clause ON indique comment les deux tables sont liées. Cette approche doit être utilisée si les tables jointes n'ont pas de colonne commune avec le même nom dans chaque table.
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?
- Cela donne une erreur ORA car la clause WHERE obligatoire n'est pas présente
- La clause JOIN..ON ne peut pas contenir plus d'une condition
- La requête ignore la dernière condition et s'exécute sans erreur ORA
- La clause JOIN..ON peut être écrite sous la forme donnée ci-dessus pour mettre plus de conditions.
Answer: D. La clause WHERE peut être omise et les conditions pertinentes peuvent être intégrées dans la clause JOIN..ON elle-même comme indiqué dans la requête donnée
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?
- Lorsque NATURAL JOIN est utilisé, une clause WHERE est obligatoire, omettant ce qui donne une erreur
- La clause ON doit être remplacée par la clause USING
- Les mots NATURAL, JOIN et USING sont mutuellement exclusivement dans le contexte de la même clause de jointure
- Une requête ne peut pas combiner les clauses NATURAL JOIN et ON (ou USING) lors de la jointure.
Answer: C, D.
39.What is true about Non-equijoins in Oracle DB?
- Ils rejoignent sur la base du mot-clé NON-EQUI JOIN
- Ils sont utilisés en utilisant la clause JOIN..ON avec le signe "="
- Les résultats sont obtenus lorsque le résultat de l'inégalité mentionnée est vrai.
- Aucune de ces réponses
Answer: C. Les jointures non équi sont utilisées avec la clause JOIN..ON mais avec des opérateurs d'inégalité.
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);
- Cela lèvera une erreur ORA car la condition de la clause ON est incorrecte.
- Cela générera une erreur ORA en raison d'une erreur de syntaxe car il n'y a pas de signe d'égalité "=" dans la clause ON
- Il s'exécutera avec succès et donnera le prénom, le nom et l'ID d'employé des employés avec la condition mentionnée.
- Les jointures non équi ne peuvent être utilisées que pour afficher les inégalités et non les plages.
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?
- Le résultat de l'opération de correspondance d'inégalité est vrai
- Le résultat de l'opération de correspondance d'inégalité est 0
- Le résultat de l'opération de correspondance d'inégalité est 1
- Le résultat de l'opération de correspondance d'inégalité est faux
Answer: A. Une jointure d'égalité est créée lorsque les données joignant des enregistrements de deux tables différentes sont une correspondance exacte (c'est-à-dire qu'une condition d'égalité crée la relation). L'approche traditionnelle utilise un signe égal comme opérateur de comparaison dans la clause WHERE. L'approche JOIN peut utiliser les mots clés 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?
- Le résultat de l'opération de correspondance d'inégalité est vrai
- Le résultat de l'opération de correspondance d'inégalité est 0
- Le résultat de l'opération de correspondance d'inégalité est 1
- Le résultat de l'opération de correspondance d'inégalité est faux
Answer: A. Une jointure d'égalité est créée lorsque les données joignant des enregistrements de deux tables différentes sont une correspondance exacte (c'est-à-dire qu'une condition d'égalité crée la relation). L'approche traditionnelle utilise un signe égal comme opérateur de comparaison dans la clause WHERE. L'approche JOIN peut utiliser les mots clés 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?
- Le résultat de l'opération de correspondance d'inégalité est vrai
- Le résultat de l'opération de correspondance d'inégalité est 0
- Le résultat de l'opération de correspondance d'inégalité est 1
- Le résultat de l'opération de correspondance d'inégalité est faux
Answer: A. Une jointure d'égalité est créée lorsque les données joignant des enregistrements de deux tables différentes sont une correspondance exacte (c'est-à-dire qu'une condition d'égalité crée la relation). L'approche traditionnelle utilise un signe égal comme opérateur de comparaison dans la clause WHERE. L'approche JOIN peut utiliser les mots clés 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?
- Le résultat de l'opération de correspondance d'inégalité est vrai
- Le résultat de l'opération de correspondance d'inégalité est 0
- Le résultat de l'opération de correspondance d'inégalité est 1
- Le résultat de l'opération de correspondance d'inégalité est faux
Answer: A. Une jointure d'égalité est créée lorsque les données joignant des enregistrements de deux tables différentes sont une correspondance exacte (c'est-à-dire qu'une condition d'égalité crée la relation). L'approche traditionnelle utilise un signe égal comme opérateur de comparaison dans la clause WHERE. L'approche JOIN peut utiliser les mots clés NATURAL JOIN, JOIN ... USING ou JOIN ... ON.
43.What is true regarding a Self-Join in Oracle DB?
- Seules deux tables sont nécessaires pour que la jointure fonctionne
- Les colonnes de l'ensemble de résultats sont obtenues à partir de deux tables mais sont affichées dans une table
- Conceptuellement, la table source se duplique pour créer la table cible. (Oracle ne duplique pas les tables)
- Tout ce qui précède
Answer: C. Les auto-jointures sont utilisées lorsqu'une table doit être jointe à elle-même pour récupérer les données dont vous avez besoin. Les alias de table sont requis dans la clause FROM pour effectuer une auto-jointure.
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 ;
Laquelle des tables suivantes Oracle traite-t-elle comme table source et table cible?
- a est la source et b est la cible
- b est la source et a est la cible
- Oracle ne traite aucune des tables comme source ou cible
- Aucune de ces réponses
Answer: A. La première occurrence de la table des employés est prise comme source et les occurrences suivantes comme b, c et ainsi de suite.
45.In what scenarios can we use Self-Joins ideally in Oracle DB?
- Lorsque nous avons besoin de trouver les enregistrements en double dans une table
- Lorsque nous devons obtenir des valeurs NULL à partir d'une table
- Lorsque nous devons afficher une colonne d'un tableau deux fois
- Lorsque nous devons afficher la hiérarchie des entités pertinentes
Answer: D.
46. What is true about NATURAL JOINS in Oracle DB?
- Les colonnes jointes portent le même nom mais peuvent avoir différents types de données
- Les colonnes jointes peuvent avoir le même type de données mais des noms différents
- Les colonnes jointes doivent avoir des noms identiques et le même type de données
- Aucune de ces réponses
Answer: C. Les mots clés NATURAL JOIN ne nécessitent pas de condition pour établir la relation entre deux tables. Cependant, une colonne commune doit exister. Les qualificatifs de colonne ne peuvent pas être utilisés avec les mots clés 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. Le WHERE peut être utilisé pour des conditions supplémentaires après la clause NATURAL JOIN.
48.In which of the following scenarios shall a USING clause or a NATURAL JOIN clause be used?
- Lorsque les noms des colonnes des tables sont identiques, utilisez la clause USING
- Lorsque les types de données des colonnes des tables sont identiques, utilisez NATURAL JOINS
- Si plusieurs colonnes ont les mêmes noms mais que les types de données ne correspondent pas, USING peut être utilisé
- NATURAL JOINS ne doit être utilisé que lorsque les noms de colonnes et leurs types de données sont identiques
Answer: C, D. NATURAL JOINS et USING sont mutuellement exclusifs, la clause USING doit être utilisée pour ne correspondre qu'à une seule colonne lorsque plusieurs colonnes correspondent.
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%');
- Il donne les noms et les bonus obtenus par tous les employés d'une entreprise
- Il donne les noms et bonus obtenus par tous les employés à un titre de poste particulier dans une entreprise
- Il s'exécute avec succès en donnant tous les noms et la prime obtenue par tous les employés dans tous les emplois
- Il lance une erreur ORA.
Answer: D. La ou les colonnes utilisées dans la clause USING ne doivent pas avoir de qualificatif (nom de table ou alias) dans l'instruction SQL.
50.What is true with respect to INNER JOINS and OUTER JOINS in Oracle DB?
- INNER JOIN renvoie uniquement les lignes qui correspondent
- OUTER JOIN renvoie uniquement les lignes qui ne correspondent pas
- OUTER JOIN renvoie les lignes qui correspondent ainsi que celles qui ne correspondent pas
- Aucune de ces réponses
Answer: A, C. Une jointure peut être une jointure interne, dans laquelle les seuls enregistrements renvoyés ont un enregistrement correspondant dans toutes les tables, ou une jointure externe, dans laquelle les enregistrements peuvent être renvoyés indépendamment du fait qu'il existe ou non un enregistrement correspondant dans la jointure. les enregistrements doivent être inclus dans les résultats sans avoir d'enregistrements correspondants dans les tables de jointure. Ces enregistrements sont mis en correspondance avec des enregistrements NULL afin qu'ils soient inclus dans la sortie.
51. What is true regarding FULL OUTER JOIN in Oracle DB?
- Lorsque la jointure externe gauche et la jointure externe droite apparaissent dans la même requête, cela s'appelle une jointure externe complète
- Une jointure externe complète est identique à une jointure externe
- Les deux, A et B
- Une jointure entre deux tables qui renvoie les résultats d'une jointure INNER et une jointure externe gauche et droite est appelée jointure externe complète
Answer: D. Une jointure externe complète inclut tous les enregistrements des deux tables, même si aucun enregistrement correspondant dans l'autre table n'est trouvé.
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 );
Cette requête génère une erreur. Quelle est la raison de l'erreur?
- Un JOIN..USING ne peut se produire qu'entre deux tables à la fois
- La clause USING dans la requête ne contient aucune colonne du département
- Il n'y a pas de clause WHERE dans la requête
- Aucune de ces réponses
Answer: A. Table1 JOIN table2 JOIN table3 n'est pas autorisé sans les clauses ON pour entre chaque 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. La FULL OUTER JOIN renvoie les lignes non correspondantes des deux tables. Une jointure externe complète inclut tous les enregistrements des deux tables, même si aucun enregistrement correspondant dans l'autre table n'est trouvé.
54.Which of the following ANSI SQL: 1999 join syntax joins are supported by Oracle?
- Produits cartésiens
- Jointures naturelles
- Jointure externe complète
- Equijoins
Answer: D.
55.Which of the following is not a format for Outer Joins in Oracle DB?
- Right
- Left
- Centre
- Full
Answer: C. Sauf «Center», les 3 types restants sont les types de formats des jointures externes dans Oracle DB. Avec la méthode JOIN pour les jointures externes, vous pouvez ajouter les mots-clés 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) doit être ajouté
- USING (e.department_id) doit être ajouté
- WHERE e.department_id dans (100,101) doit être ajouté
- Aucune de ces réponses
Answer: C. La clause NATURAL JOIN correspond implicitement à toutes les colonnes nommées identiques. Pour ajouter des conditions supplémentaires, la clause WHERE peut être utilisée.
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) WHERE salaire> 20000;
- USING (e.department_id) WHERE salaire> 20000;
- USING (department_id) WHERE salaire> 20000;
- O salaire> 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?
- ACTIVÉ (id_département = 100);
- UTILISATION (e.department_id = 100);
- WHERE d.department_id = 100;
- ON (e.department_id = d.department_id et d.department_id = 100);
Answer: D. Les équi-jointures peuvent être ajoutées pour plus de conditions après la clause 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. L'option C est incorrecte car le department_id sans alias dans la clause WHERE générera une erreur.
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. La FULL OUTER JOIN donnera toutes les lignes correspondantes ainsi que les lignes non correspondantes des deux tables à l'exclusion des valeurs en double.
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 ;
- Il affichera tous les bonus obtenus par tous les employés.
- Il affichera NULL pour la colonne bonus si un employé particulier n'a reçu aucun bonus
- Les deux, A et B
- Aucune de ces réponses
Answer: B. Le (+) est sur la LHS de l'équation signifie que c'est une JOINTURE EXTÉRIEURE DROITE et 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?
- Si les colonnes des tables jointes ont des valeurs NULL
- Si les tables jointes ont des colonnes NOT NULL
- Si les tables jointes ne contiennent que des données sans correspondance
- Si les tables jointes contiennent à la fois des données concordantes et non concordantes
Answer: A, D. Une jointure externe est créée lorsque des enregistrements doivent être inclus dans les résultats sans avoir d'enregistrements correspondants dans les tables de jointure. Ces enregistrements sont mis en correspondance avec des enregistrements NULL afin qu'ils soient inclus dans la sortie.
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);
- Aucune de ces réponses
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)
Évaluez cette instruction 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 ;
Que se passera-t-il si vous supprimez toutes les parenthèses du calcul?
- La valeur affichée dans la colonne calc_val sera inférieure.
- La valeur affichée dans la colonne calc_val sera plus élevée.
- Il n'y aura aucune différence dans la colonne calc_val.
- Une erreur sera signalée.
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?
- Pour trouver la note de chacun des employés
- Pour répertorier le nom, l'id_travail et le nom du responsable de tous les employés
- Pour trouver le nom du service des employés.
- Pour trouver le nombre d'employés travaillant pour le service administratif et gagnant moins de 30000
Answer: A. Une jointure sans égalité établit une relation basée sur autre chose qu'une condition d'égalité. Les valeurs de plage utilisées avec les jointures sans égalité doivent être mutuellement exclusives.
69.In which three cases would you use the USING clause? (Choose three.)
- Vous souhaitez créer une non-équi-jointure.
- Les tables à joindre ont plusieurs colonnes NULL.
- Les tables à joindre ont des colonnes du même nom et des types de données différents.
- Vous souhaitez utiliser une jointure NATURELLE, mais vous souhaitez limiter le nombre de colonnes dans la condition de jointure.
Answer: C, D. L'approche JOIN .... USING est similaire à l'approche NATURAL JOIN, sauf que la colonne commune est spécifiée dans la clause USING. Une condition ne peut pas être incluse dans la clause USING pour indiquer comment les tables sont liées. De plus, les qualificatifs de colonne ne peuvent pas être utilisés pour la colonne commune spécifiée dans la clause 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)
Examinez les deux instructions SQL suivantes:
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 );
Quelle affirmation est vraie concernant le résultat?
- Seule la requête 1 s'exécute avec succès et donne le résultat requis.
- Seule la requête 2 s'exécute avec succès et donne le résultat requis.
- Les requêtes 1 et 2 s'exécutent avec succès et donnent des résultats différents.
- Les requêtes 1 et 2 s'exécutent avec succès et donnent le même résultat requis.
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.
Vous émettez la requête suivante:
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) ;
Quelle déclaration est vraie concernant la requête ci-dessus?
- Il s'exécute avec succès et donne le résultat souhaité.
- Il s'exécute avec succès mais ne donne pas le résultat requis.
- Cela produit une erreur car l'ordre de jointure des tables est incorrect.
- Cela produit une erreur car les conditions d'équi-jointure et de non-équi-jointure ne peuvent pas être utilisées dans la même instruction SELECT.
Answer: B.
73.Examine the structure of the EMPLOYEES table:
Vous voulez savoir si les détails d'un employé ont été saisis plus d'une fois en utilisant un EMPLOYEE_ID différent, en énumérant tous les noms en double. Quelle méthode pouvez-vous utiliser pour obtenir le résultat souhaité?
- self-join
- jointure externe complète avec auto-jointure
- jointure externe gauche avec auto-jointure
- jointure externe droite avec auto-jointure
Answer: A. Les auto-jointures sont utilisées lorsqu'une table doit être jointe à elle-même pour récupérer les données dont vous avez besoin. Les alias de table sont requis dans la clause FROM pour effectuer une auto-jointure.
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);
Quelles deux options JOIN peuvent être utilisées dans le vide dans la requête ci-dessus pour donner la sortie correcte?
- JOIN
- JOINT NATUREL
- JOINTURE EXTERNE GAUCHE
- JOINTURE EXTÉRIEURE DROITE
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)
- FROM départements GAUCHE OUTER JOIN employés UTILISATION (department_id) FULL OUTER JOIN bonus
- FULL OUTER JOIN department USING (department_id);
- FROM bonus JOIN employés USING (job_id)
- DES employés FULL OUTER JOIN départements Bonus FULL OUTER JOIN
Answer: A.
77. Examine the following exhibits:
Vous souhaitez générer un rapport répertoriant les identifiants des employés et leurs commissions et départements correspondants (le cas échéant), si les commissions existent ou non. Évaluez la requête suivante:
SELECT e.employee_id , bonus, department_name FROM bonus b_____________ employees
USING (job_id ) ____________ departments
USING (department_id )
WHERE commission_pct IS NOT NULL;
Quelle combinaison de jointures utilisée dans les espaces dans la requête ci-dessus donne la sortie correcte?
- JOINDRE; JOINTURE EXTERNE GAUCHE
- JOINTURE EXTÉRIEURE PLEINE; JOINTURE EXTÉRIEURE COMPLÈTE
- JOINTURE EXTÉRIEURE DROITE; JOINTURE EXTERNE GAUCHE
- JOINTURE EXTERNE GAUCHE; JOINTURE EXTÉRIEURE DROITE
Answer: A.
78.Predict the outcome of the following query.
SELECT e.salary, bonus
FROM employees E JOIN bonus b
USING (salary,job_id );
- Il s'exécute avec succès.
- Il lance une erreur car le bonus dans SELECT n'est pas aliasé
- Il génère une erreur car la clause USING ne peut pas avoir plus d'une colonne.
- Il s'exécute avec succès mais les résultats ne sont pas corrects.
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');
Prédisez le résultat de la requête ci-dessus.
- Il s'exécute avec succès.
- Cela donne une erreur car un qualificatif est utilisé pour CITY dans l'instruction SELECT.
- Cela donne une erreur car les noms de colonne dans SELECT ne correspondent pas
- Cela donne une erreur car la clause USING a CITY qui n'est pas une colonne correspondante.
Answer: D. Seuls les noms de colonne correspondants doivent être utilisés dans la clause 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';
Vous devez extraire un rapport qui donne le prénom, le numéro de service, le salaire et les primes des employés d'une entreprise nommée «ABC». Laquelle des requêtes suivantes résoudra l'objectif?
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';
- Aucune de ces réponses
Answer: C. La requête A lancera une erreur syntaxique, la requête B lancera une erreur d'identifiant invalide entre le bonus et le département.
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;
Quelle affirmation est vraie concernant le résultat de cette requête?
- Il s'exécute avec succès.
- Cela produit une erreur car la jointure NATURELLE ne peut être utilisée qu'avec deux tables.
- Cela produit une erreur car une colonne utilisée dans la jointure NATURELLE ne peut pas avoir de qualificatif.
- Cela produit une erreur car toutes les colonnes utilisées dans la jointure NATURELLE doivent avoir un qualificatif.
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 ;
Quelle option JOIN peut être utilisée dans le vide dans la requête ci-dessus pour obtenir la sortie requise?
- JOIN intérieur simple
- JOINTURE EXTÉRIEURE COMPLÈTE
- JOINTURE EXTERNE GAUCHE
- JOINTURE EXTÉRIEURE DROITE
Answer: C. Une jointure externe gauche inclut tous les enregistrements de la table répertoriée sur le côté gauche de la jointure, même si aucune correspondance n'est trouvée avec l'autre table dans l'opération de jointure.
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"
- Aucune de ces réponses
Answer: A.
85.What will happen if we omit writing the braces "( )" after the ON clause in the above query?
- Il ne donnera que les noms des employés et les noms des managers seront exclus du jeu de résultats
- Cela donnera le même résultat qu'avec les accolades "()"
- Cela donnera une erreur ORA car il est obligatoire d'écrire les accolades "()" lors de l'utilisation de la clause JOIN..ON
- Aucune de ces réponses
Answer: B. Les accolades ne sont pas obligatoires, mais leur utilisation offre une lisibilité claire des conditions qu'elles contiennent.
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;
- Tout ce qui précède
Answer: A, B. Une jointure cartésienne entre deux tables renvoie toutes les combinaisons possibles de lignes des tables. Une jointure cartésienne peut être produite en n'incluant pas d'opération de jointure dans la requête ou en utilisant un CROSS JOIN.
87. Which of the following operators is not allowed in an outer join?
- AND
- =
- OR
- >
Answer: C. Oracle lève l'exception "ORA-01719: opérateur de jointure externe (+) non autorisé dans l'opérande 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;
- Aucune de ces réponses
Answer: A. Une jointure d'égalité est créée lorsque les données joignant des enregistrements de deux tables différentes sont une correspondance exacte (c'est-à-dire qu'une condition d'égalité crée la relation).
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;
- Aucune de ces réponses
Answer: D. Nonequijoins correspond aux valeurs de colonne de différentes tables basées sur une expression d'inégalité. La valeur de la colonne de jointure dans chaque ligne de la table source est comparée aux valeurs correspondantes dans la table cible. Une correspondance est trouvée si l'expression utilisée dans la jointure, basée sur un opérateur d'inégalité, prend la valeur true. Lorsqu'une telle jointure est construite, une non-jointure est effectuée. Une non-jointure est spécifiée à l'aide de la syntaxe JOIN..ON, mais la condition de jointure contient un opérateur d'inégalité au lieu d'un signe égal.
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
- jointure externe
Answer: D. Une jointure externe complète inclut tous les enregistrements des deux tables, même si aucun enregistrement correspondant dans l'autre table n'est trouvé.
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;
- Aucune de ces réponses
Answer: C. Si les tables des jointures ont un alias, les colonnes sélectionnées doivent être référencées avec l'alias et non avec les noms de table réels.
92. Given the following query.
SELECT zip, order#
FROM customers NATURAL JOIN orders;
Laquelle des requêtes suivantes est équivalente?
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# (+);
- Aucune de ces réponses
Answer: B. La jointure naturelle indique à Oracle d'identifier les colonnes avec des noms identiques entre les tables source et cible.
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
- ligne 1
- ligne 2
- ligne 3
- Aucune erreur
Answer: A. Si une requête utilise des noms d'alias dans la condition de jointure, leur colonne doit utiliser l'alias comme référence.
94. Given the following query:
SELECT lastname, firstname, order#
FROM customers LEFT OUTER JOIN orders
USING (customer#)
ORDER BY customer#;
Laquelle des requêtes suivantes renvoie les mêmes résultats?
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#;
- Aucune de ces réponses
Answer: B, C.
95. Which of the below statements are true?
- Les fonctions de groupe ne peuvent pas être utilisées par rapport aux données de plusieurs sources de données.
- Si plusieurs tables jointes dans une requête contiennent des colonnes identiques, Oracle n'en sélectionne qu'une.
- La jointure naturelle est utilisée pour joindre des lignes de deux tables basées sur des colonnes identiques.
- A et B
Answer: C. Les fonctions de groupe peuvent être utilisées sur une requête à l'aide de jointures Oracle. Les colonnes ambiguës doivent être référencées à l'aide d'un qualificatif.
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
- ligne 1
- ligne 2
- ligne 3
- ligne 4
Answer: C. Étant donné que les tables sont jointes à l'aide du mot clé JOIN, la condition d'égalité doit être écrite avec la clause USING et non la clause WHERE.
97. Given the following query:
SELECT title, gift
FROM books CROSS JOIN promotion;
Laquelle des requêtes suivantes est équivalente?
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. Les jointures cartésiennes sont identiques aux jointures croisées.
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. La jointure croisée est le produit croisé des lignes contenues dans les deux tables.
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. Les colonnes ambiguës doivent être référencées avec les qualificatifs de table.
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';
- Aucune de ces réponses
Answer: A. En supposant que la colonne NAME ne figure pas dans la table BOOKS, la requête A est valide.
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
- Toutes les instructions SQL ci-dessus sont valides.
Answer: B. La requête B déclenche une exception «ORA-01468: un prédicat ne peut référencer qu'une seule table jointe externe».
102. Which of the following statements about an outer join between two tables is true?
- Si la relation entre les tables est établie avec une clause WHERE, les deux tables peuvent inclure l'opérateur de jointure externe.
- Pour inclure des enregistrements sans correspondance dans les résultats, l'enregistrement est associé à un enregistrement NULL dans la table défectueuse.
- Les mots-clés RIGHT, LEFT et FULL sont équivalents.
- Tout ce qui précède
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);
- ligne 1
- ligne 3
- ligne 4
- ligne 5
Answer: B. Étant donné que les tables utilisées dans la requête ont un qualificatif, les colonnes doivent être référencées en utilisant le même.
104. What is the maximum number of characters allowed in a table alias?
- 10
- 155
- 255
- 30
Answer: D. L'alias de table peut comporter au maximum 30 caractères.
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;
- Aucune de ces réponses
Answer: C.