Ottieni dati da più tabelle di domande
1.Which of the following is not related to a Relational Database?
- Selection
- Projection
- Joining
- Nessuno dei precedenti
Answer: D. Le opzioni A, B e C sono le principali funzionalità di Oracle Relational Database.
2.Which of the following methods is used for writing a query with columns from multiple tables?
- SELECT
- RAGGRUPPA PER
- ORDINATO DA
- JOINS
Answer: D. I join vengono utilizzati per connettere più tabelle e dati di colonne di progetto da più tabelle in 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 è uno dei tipi di join che è la tecnica più comune e semplice per unire più di una tabella. Gli equijoin sono anche chiamati join semplici o inner join e includono la chiave primaria e la chiave esterna.
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
- Join semplice
- Non-equijoin
- Nessuno dei precedenti
Answer: C. Gli equijoin utilizzano operatori di uguaglianza per unire le righe, i non-equijoin utilizzano operatori di disuguaglianza.
5.Which of the following statements is true about Oracle joins?
- I valori NULL sono inclusi nel set di risultati
- Vengono recuperate solo le righe che hanno condizioni di corrispondenza
- Vengono recuperate tutte le righe presenti in una qualsiasi delle tabelle
- Nessuno dei precedenti
Answer: B. I valori NULL e le voci diverse nelle colonne di join comuni vengono esclusi quando vengono utilizzati i join.
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
- Unione esterna
- Self-join
Answer: D. L'associazione si basa su colonne con relazioni logiche e solitamente gerarchiche tra loro.
7.What is true about a cartesian join of two tables in Oracle DB?
- Va evitato in quanto costoso e non ottimizzato
- Si forma quando ogni riga di una tabella è unita a tutte le righe della seconda tabella
- Sia a che B
- Nessuno dei precedenti
Answer: B. Il join cartesiano è spesso il risultato di condizioni di join mancanti o inadeguate ed è semplicemente il prodotto incrociato di due tabelle.
8.Which of the following is one of the basic types of joins in Oracle DB ?
- Unione esterna
- Self-join
- Equi-join
- Tutti i precedenti
Answer: C. Equi-join e non-equijoin sono i due tipi fondamentali di join in 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?
- Non ci sono condizioni
- Almeno una delle colonne in entrambe le tabelle dovrebbe essere comune.
- I nomi delle colonne in entrambe le tabelle di join devono essere gli stessi per l'utilizzo dei join
- Nessuno dei precedenti
Answer: B. Le tabelle devono essere collegate tramite una colonna comune relativa a due entità. Le tabelle unite su una colonna comune producono un prodotto non cartesiano.
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. Gli equijoin sono anche chiamati join semplici o join interni. Equijoin coinvolge la chiave primaria e la chiave esterna.
11.What is true about the source table and the target table in terms of Oracle Joins?
- Devono avere almeno una colonna con lo stesso nome
- Tutte le colonne devono avere lo stesso nome e lo stesso tipo di dati per l'unione delle due tabelle
- Le tabelle di origine e di destinazione non possono essere scambiate e sono specifiche della posizione
- Nessuno dei precedenti
Answer: D. Le tabelle di origine e di destinazione possono essere scambiate e non sono fissate nelle rispettive posizioni. A seconda del tipo di join utilizzato nella query, il risultato può differire o rimanere lo stesso.
12.What is true about Natural joins in Oracle DB?
- I nomi delle colonne delle tabelle di origine e di destinazione devono essere identici
- Se i nomi delle colonne delle tabelle di origine e di destinazione non sono gli stessi, Oracle fa implicitamente il necessario
- NATURAL JOINS, USING e ON sono le parole chiave associate a Natural Joins
- Tutti i precedenti
Answer: C. La parola chiave NATURAL JOIN indica a Oracle di identificare le colonne con nomi identici tra le tabelle di origine e di destinazione. I join naturali utilizzano tutte le colonne con nomi e tipi di dati corrispondenti per unire le tabelle. La clausola USING può essere utilizzata per specificare solo le colonne che devono essere utilizzate per un 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';
- Non c'è differenza
- Il risultato è diverso in entrambi i casi
- Entrambe le query daranno un errore ORA durante l'esecuzione
- Nessuno dei precedenti
Answer: B. Le tabelle di origine e di destinazione possono essere scambiate durante l'utilizzo di NATURAL JOIN fornendo insiemi di risultati relazionalmente differenti.
14.Which of the following options is true regarding the NATURAL JOIN in Oracle DB?
- Durante l'utilizzo di NATURAL JOIN è obbligatorio menzionare i nomi di tutte le colonne di entrambe le tabelle
- NATURAL JOIN può essere utilizzato solo se i nomi di tutte le colonne di entrambe le tabelle sono identici
- Il join in NATURAL JOIN avviene solo quando l'utente specifica le colonne delle tabelle di origine e di destinazione.
- Non è necessario menzionare le colonne quando si utilizza NATURAL JOINS.
Answer: D. C'è un'unione implicita delle colonne dalle tabelle di origine e di destinazione quando viene utilizzato NATURAL JOIN. UN NATURAL JOIN è un'operazione JOIN che crea una clausola di join implicita basata sulle colonne comuni nelle due tabelle da unire. Le colonne comuni sono colonne che hanno lo stesso nome in entrambe le tabelle.
15. What is the difference between a NATURAL JOIN and a join with JOIN..ON?
- Non c'è differenza tra i due
- JOIN..ON unisce le tabelle di origine e di destinazione su colonne specifiche con lo stesso nome
- NATURAL JOIN unisce implicitamente tutte le colonne corrispondenti dalle tabelle di origine e di destinazione
- Nessuno dei precedenti
Answer: B, C. La condizione di join per il join naturale è fondamentalmente un equijoin di tutte le colonne con lo stesso nome. Utilizza la clausola ON per specificare condizioni arbitrarie o per specificare le colonne da unire. La condizione di join è separata dalle altre condizioni di ricerca. La clausola ON rende il codice facile da capire.
16.What is true about the JOIN..ON clause in Oracle DB?
- Non dipende dalle colonne nelle tabelle di origine e di destinazione con nomi identici
- Solo le colonne delle tabelle di origine e di destinazione che hanno nomi identici possono essere utilizzate con questa clausola
- È un formato del NATURAL JOIN
- Tutti i precedenti
Answer: A, C. La condizione di join per il join naturale è fondamentalmente un equijoin di tutte le colonne con lo stesso nome. Utilizzare la clausola ON per specificare condizioni arbitrarie o specificare le colonne da unire. La condizione di join è separata dalle altre condizioni di ricerca. La clausola ON rende il codice facile da capire.
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
- Clausole NATURAL JOIN o JOIN ... ON
- Sia a che B
- Nessuno dei precedenti
Answer: A. L'utilizzo di NATURAL JOINS in questo caso può produrre risultati imprevisti in quanto vi è una ricerca implicita di colonne con nomi identici che in questo caso non è presente.
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
- GIUNZIONE NATURALE
- OUTER-JOIN
Answer: D. Un join esterno viene creato quando i record devono essere inclusi nei risultati senza avere record corrispondenti nelle tabelle di join. Questi record vengono associati ai record NULL in modo che siano inclusi nell'output.
19. What are Cartesian Joins also known as in Oracle DB?
- Equi-join
- Anti-join
- Cross-Join
- Nessuno dei precedenti
Answer: C. Un join cartesiano tra due tabelle restituisce ogni possibile combinazione di righe dalle tabelle. Un join cartesiano può essere prodotto non includendo un'operazione di join nella query o utilizzando 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 colonna comune DEPARTMENT_ID con lo stesso nome in entrambe le tabelle apparirà due volte nel set di risultati
- Tutte le colonne con nomi identici unite al NATURAL JOIN, appariranno due volte nel set di risultati
- Il set di risultati avrà una sola colonna per ogni coppia di colonne con lo stesso nome di entrambe le tabelle
- Nessuno dei precedenti
Answer: C. Le parole chiave NATURAL JOIN non richiedono una condizione per stabilire la relazione tra due tabelle. Tuttavia, deve esistere una colonna comune. I qualificatori di colonna non possono essere utilizzati con le parole chiave NATURAL JOIN.
21.What is the difference between a NATURAL JOIN and an EQUI-JOIN in Oracle DB?
- Non c'è differenza
- Sono gli stessi rispetto al set di risultati che si ottiene da entrambi
- Sia a che B
- Nessuno dei precedenti
Answer: D. NATURAL JOIN unisce tutte le colonne con nomi identici mentre EQUI-JOIN richiede che le colonne siano esplicitamente menzionate nella query SQL.
22.What is an INNER JOIN in Oracle DB?
- Il join che fornisce i record corrispondenti tra due tabelle è chiamato INNER JOIN
- Un join interno può utilizzare operatori come <,>, <>
- Sia a che B
- Nessuno dei precedenti
Answer: C. Un join può essere un inner join, in cui gli unici record restituiti hanno un record corrispondente in tutte le tabelle, o un outer join, in cui i record possono essere restituiti indipendentemente dal fatto che sia presente un record corrispondente nel join.
23.What is the difference between a INNER JOIN and an EQUI-JOIN in Oracle DB?
- Sono gli stessi in termini di sintassi e set di risultati ottenuti.
- Un INNER JOIN è un sottoinsieme di un EQUI-JOIN
- Un INNER JOIN può utilizzare operatori come <,>, <> insieme a "=" mentre EQUI-JOIN utilizza solo l'operatore "="
- Tutti i precedenti
Answer: C. EQUI-JOIN è un tipo di INNER JOIN contenente l'operatore "=" in una condizione di join, mentre INNER JOIN può contenere sia operatori di uguaglianza che non di uguaglianza
24.What is true about NATURAL JOINS in terms of ANSI SQL: 1999 syntaxes in Oracle DB?
- Viene utilizzato un operatore di uguaglianza (=)
- Recupero risultati diversi rispetto alla sintassi tradizionale
- La sintassi ANSI SQL utilizza parole come NATURAL JOIN nelle query SQL
- Nessuno dei precedenti.
Answer: C. La sintassi ANSI SQL è diversa dal modo tradizionale di utilizzare (=) nei modi tradizionali. Esistono parole chiave come NATURAL JOIN ecc. Nella sintassi ANSI SQL per distinguere i join utilizzati.
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 ;
- Esiste un join esterno tra department_id di entrambe le tabelle che è equivalente a un join esterno destro in ANSI SQL
- Esiste un join esterno tra department_id da entrambe le tabelle che è equivalente a un join esterno sinistro in ANSI SQL
- Recupera tutti i record di department_id dalla tabella Employee indipendentemente dal fatto che corrispondano o meno
- Recupera tutti i record di department_id dalla tabella di reparto, indipendentemente dal fatto che corrispondano o meno
Answer: A, D. La condizione e.department_id (+) = d.department_id significa che eseguirà un Right Outer Join e tutti i department_id dalla tabella del dipartimento verranno visualizzati indipendentemente dal fatto che corrispondano o meno
26.Which of the following syntax models is used in extensively in the software systems worldwide?
- ANSI SQL: 1999
- Sia la sintassi Oracle tradizionale che la sintassi ANSI SQL: 1999
- Sintassi Oracle tradizionale
- Tutte le opzioni
Answer: C. La sintassi ANSI SQL: 1999 sebbene non sia utilizzata tanto quanto la sintassi Oracle tradizionale, è comunque una delle sintassi che possono essere utilizzate in Oracle SQL
27.What of the following is true regarding the Cartesian product in Oracle DB?
- Se 'N' è il numero di tabelle unite, se no. dei join è N-1, il prodotto cartesiano non viene eseguito
- Se 'N' è il numero di tabelle unite, se no. di join è N, viene eseguito il prodotto cartesiano
- Se 'N' è il numero di tabelle unite, se no. di join è N + 1, viene eseguito il prodotto cartesiano
- Se 'N' è il numero di tabelle unite, se no. di join è N-1 o inferiore, viene eseguito il prodotto cartesiano.
Answer: A. Un join cartesiano tra due tabelle restituisce ogni possibile combinazione di righe dalle tabelle. Un join cartesiano può essere prodotto non includendo un'operazione di join nella query o utilizzando un CROSS JOIN. Una query deve avere almeno (N-1) condizioni di join per impedire un prodotto cartesiano, dove N è il numero di tabelle nella query.
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 ;
- Non ci sono alias usati per le tabelle.
- La parola RIGHT OUTER JOIN non viene utilizzata qui, quindi genera l'errore
- Il segno (+) dovrebbe trovarsi a destra della condizione di uguaglianza e non a sinistra
- Gli alias di tabella devono essere utilizzati con department_id nella condizione per rimuovere nomi ambigui
Answer: D. Senza gli alias di tabella, Oracle non è in grado di derivare l'origine delle colonne unite e quindi genera un errore di ambiguità durante l'esecuzione.
29.Which of the following is used to avoid the ambiguous column problem in Oracle DB?
- ;
- ,
- .
- /
Answer: C. La sintassi per rimuovere il problema della colonna ambigua è: 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 ;
- Fornisce i dettagli di quei dipendenti che non fanno parte di alcun dipartimento
- Fornisce i dettagli di quei reparti che non hanno dipendenti
- Fornisce i dettagli di tutti i reparti indipendentemente dal fatto che abbiano o meno dipendenti
- Fornisce i dettagli dei dipendenti che sono stati assunti nella società "ABC" indipendentemente dai reparti.
Answer: C. Con il metodo JOIN per i join esterni, puoi aggiungere le parole chiave LEFT, RIGHT o FULL. Un join esterno sinistro include tutti i record della tabella elencata sul lato sinistro del join, anche se non viene trovata alcuna corrispondenza con l'altra tabella nell'operazione di join. Un join esterno completo include tutti i record di entrambe le tabelle, anche se non viene trovato alcun record corrispondente nell'altra tabella.
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 ;
- Fornirà tutti i valori corrispondenti da entrambe le tabelle che hanno lo stesso department_id
- Fornirà tutte le colonne dalla tabella dipendenti e solo le prime 100 righe dalla tabella dei reparti
- Fornirà un errore ORA: identificatore non valido "b.department_id"
- Nessuna delle opzioni precedenti
Answer: C. Gli stessi alias dovrebbero nella clausola WHERE dichiarati nella clausola 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 clausola ON può essere utilizzata per unire tabelle su colonne con lo stesso tipo di dati ma non necessariamente lo stesso nome
- Le clausole USING e ON vengono utilizzate solo su equijoin e non equijoin
- Non più di una condizione può essere utilizzata con la clausola ON
- La clausola WHERE può essere scritta dopo la clausola USING..ON per applicare condizioni aggiuntive
Answer: A, D. L'approccio JOIN ... USING è simile all'approccio NATURAL JOIN, ad eccezione della colonna comune specificata nella clausola USING. Non è possibile includere una condizione nella clausola USING per indicare in che modo le tabelle sono correlate. Inoltre, i qualificatori di colonna non possono essere utilizzati per la colonna comune specificata nella clausola USING. L'approccio JOIN ... ON unisce le tabelle in base a una condizione specificata. La parola chiave JOIN nella clausola FROM indica le tabelle da unire e la clausola ON indica in che modo le due tabelle sono correlate. Questo approccio deve essere utilizzato se le tabelle da unire non hanno una colonna comune con lo stesso nome in ogni tabella.
33.How many tables can be joined by using the JOINS in Oracle DB?
- 1
- 2
- 255
- Senza limiti
Answer: D. Al momento non c'è limite al numero di tavoli che partecipano a un join.
34. What is true when multiple joins are used in an SQL statement?
- I join vengono valutati da sinistra a destra
- I join vengono valutati da destra a sinistra
- Non c'è precedenza nel processo di valutazione dei join
- Nessuno dei precedenti
Answer: A. Quando sono presenti più join in un'istruzione, vengono valutati da sinistra a destra.
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'uso di NATURAL JOIN per unire più tabelle è un'opzione migliore e fornisce risultati accurati
- La probabilità di errore è molto inferiore quando i NATURAL JOIN vengono utilizzati per unire più tabelle
- Le clausole USING..JOIN..ON forniscono risultati più accurati rispetto alle NATURAL JOIN quando si uniscono più tabelle
- Oracle unisce implicitamente più tabelle quando viene utilizzato un NATURAL JOIN e quindi è buona norma utilizzare NATURAL JOIN
Answer: C. L'uso di NATURAL JOINS può creare prodotti cartesiani di righe e inoltre è soggetto a errori con set di risultati non affidabili.
36.What is true about the clauses JOIN..ON in Oracle DB?
- Non sono molto affidabili rispetto a NATURAL JOINS quando si uniscono più tabelle
- La clausola JOIN..ON è simile alla clausola WHERE che limita le righe con condizioni
- Una clausola WHERE aggiuntiva è obbligatoria quando viene utilizzata la clausola JOIN..ON
- Nessuno dei precedenti
Answer: B. L'approccio JOIN .... ON unisce le tabelle in base a una condizione specificata. La parola chiave JOIN nella clausola FROM indica le tabelle da unire e la clausola ON indica in che modo le due tabelle sono correlate. Questo approccio deve essere utilizzato se le tabelle da unire non hanno una colonna comune con lo stesso nome in ogni tabella.
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?
- Fornisce un errore ORA poiché la clausola WHERE obbligatoria non è presente
- La clausola JOIN..ON non può contenere più di una condizione
- La query ignora l'ultima condizione e viene eseguita senza un errore ORA
- La clausola JOIN..ON può essere scritta nella forma data sopra per mettere più condizioni.
Answer: D. La clausola WHERE può essere omessa e le condizioni pertinenti possono essere inserite nella clausola JOIN..ON stessa come mostrato nella query data
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 viene utilizzato NATURAL JOIN, una clausola WHERE è obbligatoria, omettendola che dà un errore
- La clausola ON deve essere sostituita con la clausola USING
- Le parole NATURAL, JOIN e USING sono reciprocamente esclusivamente nel contesto della stessa clausola di join
- Una query non può combinare le clausole NATURAL JOIN e ON (o USING) durante l'unione.
Answer: C, D.
39.What is true about Non-equijoins in Oracle DB?
- Si uniscono in base alla parola chiave NON-EQUI JOIN
- Vengono utilizzati utilizzando la clausola JOIN..ON con il segno "="
- I risultati si ottengono quando il risultato della disuguaglianza menzionata è vero.
- Nessuno dei precedenti
Answer: C. I join non equi vengono utilizzati con la clausola JOIN..ON ma con operatori di disuguaglianza.
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);
- Verrà generato un errore ORA poiché la condizione nella clausola ON non è corretta.
- Verrà generato un errore ORA a causa di un errore di sintassi poiché non è presente il segno di uguaglianza "=" nella clausola ON
- Verrà eseguito correttamente e fornirà il nome, il cognome e l'ID dipendente dei dipendenti con la condizione menzionata.
- I join non equi possono essere utilizzati solo per mostrare le disuguaglianze e non gli intervalli.
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?
- Il risultato dell'operazione di corrispondenza della disuguaglianza è vero
- Il risultato dell'operazione di corrispondenza della disuguaglianza è 0
- Il risultato dell'operazione di corrispondenza della disuguaglianza è 1
- Il risultato dell'operazione di corrispondenza della disuguaglianza è falso
Answer: A. Un join di uguaglianza viene creato quando i dati che uniscono i record da due tabelle diverse sono una corrispondenza esatta (ovvero, una condizione di uguaglianza crea la relazione). L'approccio tradizionale utilizza un segno di uguale come operatore di confronto nella clausola WHERE. L'approccio JOIN può utilizzare le parole chiave NATURAL JOIN, JOIN ... USING o 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?
- Il risultato dell'operazione di corrispondenza della disuguaglianza è vero
- Il risultato dell'operazione di corrispondenza della disuguaglianza è 0
- Il risultato dell'operazione di corrispondenza della disuguaglianza è 1
- Il risultato dell'operazione di corrispondenza della disuguaglianza è falso
Answer: A. Un join di uguaglianza viene creato quando i dati che uniscono i record da due tabelle diverse sono una corrispondenza esatta (ovvero, una condizione di uguaglianza crea la relazione). L'approccio tradizionale utilizza un segno di uguale come operatore di confronto nella clausola WHERE. L'approccio JOIN può utilizzare le parole chiave NATURAL JOIN, JOIN ... USING o 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?
- Il risultato dell'operazione di corrispondenza della disuguaglianza è vero
- Il risultato dell'operazione di corrispondenza della disuguaglianza è 0
- Il risultato dell'operazione di corrispondenza della disuguaglianza è 1
- Il risultato dell'operazione di corrispondenza della disuguaglianza è falso
Answer: A. Un join di uguaglianza viene creato quando i dati che uniscono i record da due tabelle diverse sono una corrispondenza esatta (ovvero, una condizione di uguaglianza crea la relazione). L'approccio tradizionale utilizza un segno di uguale come operatore di confronto nella clausola WHERE. L'approccio JOIN può utilizzare le parole chiave NATURAL JOIN, JOIN ... USING o 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?
- Il risultato dell'operazione di corrispondenza della disuguaglianza è vero
- Il risultato dell'operazione di corrispondenza della disuguaglianza è 0
- Il risultato dell'operazione di corrispondenza della disuguaglianza è 1
- Il risultato dell'operazione di corrispondenza della disuguaglianza è falso
Answer: A. Un join di uguaglianza viene creato quando i dati che uniscono i record da due tabelle diverse sono una corrispondenza esatta (ovvero, una condizione di uguaglianza crea la relazione). L'approccio tradizionale utilizza un segno di uguale come operatore di confronto nella clausola WHERE. L'approccio JOIN può utilizzare le parole chiave NATURAL JOIN, JOIN ... USING o JOIN ... ON.
43.What is true regarding a Self-Join in Oracle DB?
- Sono necessarie solo due tabelle per il funzionamento del join
- Le colonne nel set di risultati sono ottenute da due tabelle ma vengono visualizzate in una tabella
- Concettualmente, la tabella di origine si duplica per creare la tabella di destinazione. (Oracle non duplica le tabelle)
- Tutti i precedenti
Answer: C. I self-join vengono utilizzati quando una tabella deve essere unita a se stessa per recuperare i dati necessari. Gli alias di tabella sono necessari nella clausola FROM per eseguire un collegamento automatico.
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 ;
Quale delle seguenti tabelle Oracle tratta come tabella di origine e tabella di destinazione?
- a è l'origine eb è la destinazione
- b è l'origine e a è la destinazione
- Oracle non tratta nessuna delle tabelle come origine o destinazione
- Nessuno dei precedenti
Answer: A. La prima occorrenza della tabella dei dipendenti viene presa come origine e le occorrenze successive come b, ce così via.
45.In what scenarios can we use Self-Joins ideally in Oracle DB?
- Quando dobbiamo trovare i record duplicati in una tabella
- Quando dobbiamo ottenere valori NULL da una tabella
- Quando è necessario visualizzare due volte una colonna di una tabella
- Quando è necessario visualizzare la gerarchia delle entità rilevanti
Answer: D.
46. What is true about NATURAL JOINS in Oracle DB?
- Le colonne unite hanno lo stesso nome ma possono avere diversi tipi di dati
- Le colonne unite possono avere lo stesso tipo di dati ma nomi diversi
- Le colonne unite dovrebbero avere nomi identici e lo stesso tipo di dati
- Nessuno dei precedenti
Answer: C. Le parole chiave NATURAL JOIN non richiedono una condizione per stabilire la relazione tra due tabelle. Tuttavia, deve esistere una colonna comune. I qualificatori di colonna non possono essere utilizzati con le parole chiave 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. WHERE può essere utilizzato per condizioni aggiuntive dopo la clausola NATURAL JOIN.
48.In which of the following scenarios shall a USING clause or a NATURAL JOIN clause be used?
- Quando i nomi delle colonne delle tabelle sono identici, utilizzare la clausola USING
- Quando i tipi di dati delle colonne delle tabelle sono identici, utilizzare NATURAL JOINS
- Se più colonne hanno gli stessi nomi ma i tipi di dati non corrispondono, è possibile utilizzare USING
- I NATURAL JOINS devono essere utilizzati solo quando i nomi delle colonne ei relativi tipi di dati sono gli stessi
Answer: C, D. NATURAL JOINS e USING si escludono a vicenda, la clausola USING deve essere utilizzata per trovare una corrispondenza solo con una colonna quando più di una colonna corrispondono.
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%');
- Fornisce i nomi e il bonus ottenuto da tutti i dipendenti di qualche azienda
- Fornisce i nomi e i bonus ottenuti da tutti i dipendenti in un particolare titolo di lavoro in un'azienda
- Si esegue con successo dando tutti i nomi e il bonus ottenuto da tutti i dipendenti in tutti i lavori
- Genera un errore ORA.
Answer: D. La colonna o le colonne utilizzate nella clausola USING non devono avere un qualificatore (nome tabella o alias) in nessuna parte dell'istruzione SQL.
50.What is true with respect to INNER JOINS and OUTER JOINS in Oracle DB?
- INNER JOIN restituisce solo le righe corrispondenti
- OUTER JOIN restituisce solo le righe che non corrispondono
- OUTER JOIN restituisce le righe che sono abbinate e quelle che non corrispondono
- Nessuno dei precedenti
Answer: A, C. Un join può essere un inner join, in cui gli unici record restituiti hanno un record corrispondente in tutte le tabelle, o un outer join, in cui i record possono essere restituiti indipendentemente dal fatto che sia presente un record corrispondente nel join. i record devono essere inclusi nei risultati senza avere record corrispondenti nelle tabelle di join. Questi record vengono associati ai record NULL in modo che siano inclusi nell'output.
51. What is true regarding FULL OUTER JOIN in Oracle DB?
- Quando entrambi LEFT OUTER JOIN e RIGHT OUTER JOIN vengono visualizzati nella stessa query, si parla di FULL OUTER JOIN
- UN FULL OUTER JOIN è uguale a un OUTER JOIN
- Sia a che B
- Un join tra due tabelle che restituisce i risultati di un INNER join e di un LEFT e RIGHT OUTER JOIN è chiamato FULL OUTER JOIN
Answer: D. Un join esterno completo include tutti i record di entrambe le tabelle, anche se non viene trovato alcun record corrispondente nell'altra tabella.
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 );
Questa query genera un errore. Qual è il motivo dell'errore?
- UN JOIN..USING può avvenire solo tra due tavoli alla volta
- La clausola USING nella query non ha alcuna colonna dal dipartimento
- Non è presente alcuna clausola WHERE nella query
- Nessuno dei precedenti
Answer: A. Table1 JOIN table2 JOIN table3 non è consentito senza le clausole ON per ogni 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. FULL OUTER JOIN restituisce le righe non corrispondenti da entrambe le tabelle. Un join esterno completo include tutti i record di entrambe le tabelle, anche se non viene trovato alcun record corrispondente nell'altra tabella.
54.Which of the following ANSI SQL: 1999 join syntax joins are supported by Oracle?
- Prodotti cartesiani
- Unioni naturali
- Full OUTER join
- Equijoins
Answer: D.
55.Which of the following is not a format for Outer Joins in Oracle DB?
- Right
- Left
- Centre
- Full
Answer: C. Ad eccezione di "Center", i restanti 3 tipi sono i tipi di formati degli Outer Join in Oracle DB. Con il metodo JOIN per i join esterni, puoi aggiungere le parole chiave LEFT, RIGHT o 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) dovrebbe essere aggiunto
- USING (e.department_id) dovrebbe essere aggiunto
- WHERE e.department_id in (100,101) dovrebbe essere aggiunto
- Nessuno dei precedenti
Answer: C. La clausola NATURAL JOIN corrisponde implicitamente a tutte le colonne con nome identico. Per aggiungere ulteriori condizioni è possibile utilizzare la clausola WHERE.
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 salario> 20000;
- UTILIZZANDO (e.department_id) WHERE stipendio> 20000;
- USING (department_id) WHERE salario> 20000;
- DOVE stipendio> 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?
- ON (department_id = 100);
- UTILIZZANDO (e.department_id = 100);
- WHERE d.department_id = 100;
- ON (e.department_id = d.department_id e d.department_id = 100);
Answer: D. Gli equi-join possono essere aggiunti per più condizioni dopo la clausola 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'opzione C non è corretta perché il department_id senza alias nella clausola WHERE genererà un errore.
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. FULL OUTER JOIN fornirà tutte le righe corrispondenti e non corrispondenti da entrambe le tabelle escludendo i valori duplicati.
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 ;
- Verranno visualizzati tutti i bonus ottenuti da tutti i dipendenti.
- Verrà visualizzato NULL per la colonna del bonus se un determinato dipendente non ha ricevuto alcun bonus
- Sia a che B
- Nessuno dei precedenti
Answer: B. Il (+) si trova a sinistra dell'equazione significa che è un RIGHT OUTER JOIN e viceversa.
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 le colonne delle tabelle unite hanno valori NULL
- Se le tabelle unite hanno colonne NOT NULL
- Se le tabelle unite hanno solo dati non corrispondenti
- Se le tabelle unite hanno dati sia corrispondenti che non corrispondenti
Answer: A, D. Un join esterno viene creato quando i record devono essere inclusi nei risultati senza avere record corrispondenti nelle tabelle di join. Questi record vengono associati ai record NULL in modo che siano inclusi nell'output.
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);
- Nessuno dei precedenti
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)
Valuta questa istruzione 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 ;
Cosa succederà se rimuovi tutte le parentesi dal calcolo?
- Il valore visualizzato nella colonna calc_val sarà minore.
- Il valore visualizzato nella colonna calc_val sarà maggiore.
- Non ci saranno differenze nella colonna calc_val.
- Verrà segnalato un errore.
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?
- Per trovare il voto per ciascuno dei dipendenti
- Per elencare il nome, job_id e il nome del manager per tutti i dipendenti
- Per trovare il nome del reparto dei dipendenti.
- Per trovare il numero di dipendenti che lavorano per il dipartimento amministrativo e guadagnano meno di 30000
Answer: A. Un'unione di non uguaglianza stabilisce una relazione basata su qualcosa di diverso da una condizione di parità. I valori dell'intervallo utilizzati con join non di uguaglianza devono escludersi a vicenda.
69.In which three cases would you use the USING clause? (Choose three.)
- Vuoi creare un non-equijoin.
- Le tabelle da unire hanno più colonne NULL.
- Le tabelle da unire hanno colonne con lo stesso nome e diversi tipi di dati.
- Si desidera utilizzare un join NATURALE, ma si desidera limitare il numero di colonne nella condizione di join.
Answer: C, D. L'approccio JOIN .... USING è simile all'approccio NATURAL JOIN, ad eccezione della colonna comune specificata nella clausola USING. Non è possibile includere una condizione nella clausola USING per indicare in che modo le tabelle sono correlate. Inoltre, i qualificatori di colonna non possono essere utilizzati per la colonna comune specificata nella clausola 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)
Esamina le seguenti due istruzioni SQL:
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 );
Quale affermazione è vera per quanto riguarda il risultato?
- Solo la query 1 viene eseguita correttamente e fornisce il risultato richiesto.
- Solo la query 2 viene eseguita correttamente e fornisce il risultato richiesto.
- Entrambe le query 1 e 2 vengono eseguite correttamente e danno risultati diversi.
- Entrambe le query 1 e 2 vengono eseguite correttamente e danno lo stesso risultato richiesto.
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.
Emetti la seguente query:
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) ;
Quale affermazione è vera riguardo alla query precedente?
- Viene eseguito correttamente e fornisce il risultato richiesto.
- Viene eseguito correttamente ma non fornisce il risultato richiesto.
- Produce un errore perché l'ordine di join delle tabelle non è corretto.
- Produce un errore perché le condizioni equijoin e non equijoin non possono essere utilizzate nella stessa istruzione SELECT.
Answer: B.
73.Examine the structure of the EMPLOYEES table:
Vuoi scoprire se i dettagli di un dipendente sono stati inseriti più di una volta utilizzando EMPLOYEE_ID diversi, elencando tutti i nomi duplicati. Quale metodo puoi utilizzare per ottenere il risultato richiesto?
- self-join
- unione esterna completa con unione automatica
- unione esterna sinistra con unione automatica
- giuntura esterna destra con giunzione automatica
Answer: A. I self-join vengono utilizzati quando una tabella deve essere unita a se stessa per recuperare i dati necessari. Gli alias di tabella sono necessari nella clausola FROM per eseguire un collegamento automatico.
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);
Quali due opzioni JOIN possono essere utilizzate nello spazio vuoto nella query precedente per fornire l'output corretto?
- JOIN
- GIUNZIONE NATURALE
- UNISCI ESTERNO SINISTRO
- PARTE ESTERNA DESTRA
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)
- DA reparti SINISTRA ESTERNO UNISCITI ai dipendenti UTILIZZANDO (department_id) FULL OUTER JOIN bonus
- FULL OUTER JOIN department USING (department_id);
- DA bonus UNISCITI ai dipendenti USANDO (job_id)
- DAGLI impiegati COMPLETAMENTE ESTERNO UNISCITI ai reparti COMPLETO ESTERNO ISCRIVITI bonus
Answer: A.
77. Examine the following exhibits:
Si desidera generare un report che elenchi gli ID dei dipendenti e le commissioni e i reparti corrispondenti (se presenti), se le commissioni esistono o meno. Valuta la seguente query:
SELECT e.employee_id , bonus, department_name FROM bonus b_____________ employees
USING (job_id ) ____________ departments
USING (department_id )
WHERE commission_pct IS NOT NULL;
Quale combinazione di join utilizzati negli spazi nella query precedente fornisce l'output corretto?
- ADERIRE; UNISCI ESTERNO SINISTRO
- FULL OUTER JOIN; FULL OUTER JOIN
- PARTE ESTERNA DESTRA; UNISCI ESTERNO SINISTRO
- UNISCI ESTERNO SINISTRO; PARTE ESTERNA DESTRA
Answer: A.
78.Predict the outcome of the following query.
SELECT e.salary, bonus
FROM employees E JOIN bonus b
USING (salary,job_id );
- Viene eseguito con successo.
- Genera un errore perché il bonus in SELECT non è alias
- Genera un errore perché la clausola USING non può avere più di 1 colonna.
- Viene eseguito correttamente ma i risultati non sono corretti.
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');
Prevedi il risultato della query precedente.
- Viene eseguito con successo.
- Fornisce un errore perché un qualificatore viene utilizzato per CITY nell'istruzione SELECT.
- Fornisce un errore perché i nomi delle colonne in SELECT non corrispondono
- Dà un errore perché la clausola USING ha CITY che non è una colonna corrispondente.
Answer: D. Solo i nomi di colonna corrispondenti devono essere utilizzati nella clausola 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';
È necessario estrarre un rapporto che fornisce il nome, il numero di reparto, lo stipendio e i bonus dei dipendenti di una società denominata "ABC". Quale delle seguenti domande risolverà lo scopo?
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';
- Nessuno dei precedenti
Answer: C. La query A genererà un errore sintattico, la query B genererà un errore di identificatore non valido tra bonus e reparto.
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;
Quale affermazione è vera riguardo al risultato di questa domanda?
- Viene eseguito con successo.
- Produce un errore perché il join NATURALE può essere utilizzato solo con due tabelle.
- Produce un errore perché una colonna utilizzata nel join NATURAL non può avere un qualificatore.
- Produce un errore perché tutte le colonne utilizzate nel join NATURALE dovrebbero avere un qualificatore.
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 ;
Quale opzione JOIN può essere utilizzata nello spazio vuoto nella query precedente per ottenere l'output richiesto?
- JOIN interno semplice
- FULL OUTER JOIN
- UNISCI ESTERNO SINISTRO
- PARTE ESTERNA DESTRA
Answer: C. Un join esterno sinistro include tutti i record della tabella elencata sul lato sinistro del join, anche se non viene trovata alcuna corrispondenza con l'altra tabella nell'operazione di join.
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"
- Nessuno dei precedenti
Answer: A.
85.What will happen if we omit writing the braces "( )" after the ON clause in the above query?
- Fornirà solo i nomi dei dipendenti ei nomi dei manager saranno esclusi dal set di risultati
- Darà lo stesso risultato delle parentesi graffe "()"
- Fornirà un errore ORA in quanto è obbligatorio scrivere le parentesi graffe "()" quando si utilizza la clausola JOIN..ON
- Nessuno dei precedenti
Answer: B. Le parentesi graffe non sono obbligatorie, ma il loro utilizzo fornisce una chiara leggibilità delle condizioni al suo interno.
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;
- tutti i precedenti
Answer: A, B. Un join cartesiano tra due tabelle restituisce ogni possibile combinazione di righe dalle tabelle. Un join cartesiano può essere prodotto non includendo un'operazione di join nella query o utilizzando un CROSS JOIN.
87. Which of the following operators is not allowed in an outer join?
- AND
- =
- OR
- >
Answer: C. Oracle solleva l'eccezione "ORA-01719: operatore outer join (+) non consentito nell'operando di OR o 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;
- Nessuno dei precedenti
Answer: A. Un join di uguaglianza viene creato quando i dati che uniscono i record da due tabelle diverse sono una corrispondenza esatta (ovvero, una condizione di uguaglianza crea la relazione).
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;
- Nessuno dei precedenti
Answer: D. Nessunquesto corrisponde ai valori di colonna di tabelle diverse in base a un'espressione di disuguaglianza. Il valore della colonna join in ciascuna riga della tabella di origine viene confrontato con i valori corrispondenti nella tabella di destinazione. Viene trovata una corrispondenza se l'espressione utilizzata nel join, in base a un operatore di disuguaglianza, restituisce true. Quando viene costruito un tale join, viene eseguito un nonequijoin. Un nonequijoin viene specificato utilizzando la sintassi JOIN..ON, ma la condizione di join contiene un operatore di disuguaglianza anziché un segno di uguale.
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
- unione esterna
Answer: D. Un join esterno completo include tutti i record di entrambe le tabelle, anche se non viene trovato alcun record corrispondente nell'altra tabella.
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;
- Nessuno dei precedenti
Answer: C. Se le tabelle nei join hanno un alias, le colonne selezionate devono essere riferite con l'alias e non con i nomi di tabella effettivi.
92. Given the following query.
SELECT zip, order#
FROM customers NATURAL JOIN orders;
Quale delle seguenti query è 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# (+);
- nessuno dei precedenti
Answer: B. Natural join indica a Oracle di identificare le colonne con nomi identici tra le tabelle di origine e di destinazione.
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
- Linea 1
- linea 2
- linea 3
- Nessun errore
Answer: A. Se una query utilizza nomi alias nella condizione di join, la relativa colonna dovrebbe utilizzare l'alias come riferimento.
94. Given the following query:
SELECT lastname, firstname, order#
FROM customers LEFT OUTER JOIN orders
USING (customer#)
ORDER BY customer#;
Quale delle seguenti query restituisce gli stessi risultati?
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#;
- Nessuno dei precedenti
Answer: B, C.
95. Which of the below statements are true?
- Le funzioni di gruppo non possono essere utilizzate con i dati da più origini dati.
- Se più tabelle unite in una query, contengono colonne identiche, Oracle ne seleziona solo una.
- Il join naturale viene utilizzato per unire righe da due tabelle in base a colonne identiche.
- A e B
Answer: C. Le funzioni di gruppo possono essere utilizzate su una query utilizzando i join Oracle. È necessario fare riferimento alle colonne ambigue utilizzando un qualificatore.
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
- Linea 1
- linea 2
- linea 3
- linea 4
Answer: C. Poiché le tabelle vengono unite utilizzando la parola chiave JOIN, la condizione di uguaglianza deve essere scritta con la clausola USING e non con la clausola WHERE.
97. Given the following query:
SELECT title, gift
FROM books CROSS JOIN promotion;
Quale delle seguenti query è 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. I join cartesiani sono gli stessi dei join incrociati.
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. Il cross join è il prodotto incrociato delle righe contenute nelle due tabelle.
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. Le colonne ambigue devono essere indicate con i qualificatori di tabella.
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';
- nessuno dei precedenti
Answer: A. Supponendo che la colonna NAME non sia contenuta nella tabella BOOKS, la query A è valida.
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
- Tutte le istruzioni SQL precedenti sono valide.
Answer: B. La query B solleva un'eccezione "ORA-01468: un predicato può fare riferimento solo a una tabella outer-join".
102. Which of the following statements about an outer join between two tables is true?
- Se la relazione tra le tabelle viene stabilita con una clausola WHERE, entrambe le tabelle possono includere l'operatore di join esterno.
- Per includere record non corrispondenti nei risultati, il record viene associato a un record NULL nella tabella carente.
- Le parole chiave RIGHT, LEFT e FULL sono equivalenti.
- tutti i precedenti
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);
- Linea 1
- linea 3
- linea 4
- linea 5
Answer: B. Poiché le tabelle utilizzate nella query hanno un qualificatore, è necessario fare riferimento alle colonne utilizzando lo stesso.
104. What is the maximum number of characters allowed in a table alias?
- 10
- 155
- 255
- 30
Answer: D. L'alias della tabella può contenere un massimo di 30 caratteri.
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;
- nessuno dei precedenti
Answer: C.