Manipolazione delle domande sui dati
1.What does ACID mean with respect to relational database?
- Precisione, coerenza, isolamento, database
- Precisione, concorrenza, isolamento, durata
- Atomicità, coerenza, isolamento, durata
- Atomicità, concorrenza, isolamento, durata
Answer: C. Tutte le transazioni Oracle sono conformi alle proprietà di base di una transazione di database, note come proprietà ACID. L'atomicità afferma che tutte le attività di una transazione vengono eseguite o nessuna di esse lo è. Non ci sono transazioni parziali. La coerenza implica che la transazione porti il database da uno stato coerente a un altro stato coerente. L'isolamento significa che l'effetto di una transazione non è visibile ad altre transazioni finché la transazione non viene confermata. Durabilità significa che le modifiche apportate dalle transazioni impegnate sono permanenti. Dopo il completamento di una transazione, il database garantisce attraverso i suoi meccanismi di ripristino che le modifiche dalla transazione non vadano perse.
2. What does the word DML stands for in Oracle SQL?
- Linguaggio di gestione della durabilità
- Linguaggio di gestione del database
- Database Manipulation Language
- Nessuno dei precedenti
Answer: C. DML è l'acronimo di Data Manipulation Language.
3. Which of the following are DML commands in Oracle Database?
- SELECT
- RAGGRUPPA PER
- INTERSECT
- INSERT
Answer: A, D. Per motivi rigorosi, SELECT è un comando DML in quanto è una delle clausole obbligatorie per la manipolazione dei dati presenti nelle tabelle.
4.Which of the following DML commands can be considered to be a hybrid of INSERT and UPDATE in a single statement?
- INTERSECT
- INSERT
- SELECT
- MERGE
Answer: D. MERGE può eseguire azioni INSERT e UPDATE in una singola istruzione in Oracle.
5. What all operations can MERGE statement perform in SQL?
- INSERT
- DELETE
- RAGGRUPPA PER
- Nessuno dei precedenti
Answer: A, B. In alcune condizioni MERGE può eseguire anche l'operazione DELETE, insieme a INSERT e UPDATE.
6.Which of following commands is a DDL (Data Definition Language) command but is often considered along with DML commands?
- DELETE
- INSERT
- TRUNCATE
- Nessuno dei precedenti
Answer: C. TRUNCATE è un comando DDL. Rimuove i record dalla tabella senza alcuna condizione. Non fa parte di alcuna transazione in corso e una transazione senza commit nella sessione viene sottoposta a commit dopo l'esecuzione di TRUNCATE.
7.Which of the following commands manipulate data basically?
- MINUS
- UPDATE
- TRUNCATE
- Tutti i precedenti
Answer: B, C. UPDATE è un'istruzione DML per modificare un valore di colonna in una tabella. TRUNCATE manipola i dati rimuovendoli incondizionatamente da una tabella.
8. Which of the following commands is used to populate table rows with data?
- DELETE
- INSERT
- SELECT
- UPDATE
Answer: B. Il comando INSERT viene utilizzato per inserire righe in una tabella.
9. What is true about the INSERT statement? (Choose the most appropriate answer)
- Può inserire dati in una riga di una tabella alla volta
- Può inserire dati in molte righe di una tabella alla volta
- Può inserire dati in molte righe di molte tabelle alla volta
- Tutti i precedenti
Answer: C. L'istruzione INSERT è in grado di inserire una riga o un insieme di righe in una singola tabella alla volta.
10.What is true about the insertion of rows in tables?
- Le righe possono essere inserite in modo casuale
- Qualsiasi numero di righe può essere inserito in una tabella senza alcuna restrizione
- Generalmente le righe vengono inserite in una tabella in base a determinate regole note come vincoli
- Tutti i precedenti
Answer: C. I vincoli sono regole aziendali imposte alle colonne in modo da garantire il comportamento dei dati in arrivo nella colonna. Questi vincoli vengono convalidati per i dati durante il processo INSERT.
11. What is true about the INSERT statement in Oracle SQL? (Choose the most appropriate answer)
- Un'istruzione INSERT può sovrascrivere qualsiasi vincolo posto sulla tabella
- Un'istruzione INSERT non può essere utilizzata su una tabella se un vincolo è già inserito nella tabella
- Un'istruzione INSERT può essere utilizzata su una tabella solo se è già stato inserito un vincolo sulla tabella
- Un'istruzione INSERT non può mai inserire una riga che viola un vincolo.
Answer: D. Oracle solleva un'eccezione se uno qualsiasi dei dati contenuti nell'istruzione insert viola il vincolo.
Consider the following data set from the EMPLOYEES table along with its structure and answer the questions 12, 13 and 14:
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)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE CLERK
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
12. Examine the structure of the EMPLOYEES table. You issue the following command:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id) VALUES (5100, 'BRUCE', 'CLERK');
Supponendo che ci sia un vincolo di controllo del valore duplicato nella colonna EMPLOYEE_ID, quale sarà il risultato della dichiarazione di cui sopra?
- Inserirà un'altra riga con 5100 valori BRUCE CLERK
- Inserirà un'altra riga con i valori 51002 BRUCE CLERK
- Verrà generato un errore ORA "Constraint violated"
- Nessuno dei precedenti
Answer: C. Poiché la riga con i valori "5100, BRUCE, CLERK" esiste già nella tabella, l'istruzione insert con lo stesso set di dati non è possibile.
13.You issue the following command to the data set shown above:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id) VALUES (51003,'BRUCE','CLERK');
Quale sarà l'output di questa affermazione?
- Inserirà una nuova riga con i valori 51003 BRUCE CLERK
- Verrà generato un errore ORA in quanto non può esserci un altro BRUCE che sia un CLERK
- Verrà generato un errore ORA "Constraint violated"
- Nessuno dei precedenti
Answer: A. Poiché non vi è alcun vincolo sulle colonne FIRST_NAME e job_id, INSERT funzionerà senza errori
14. You issue the following command to the data set shown above:
INSERT INTO EMPLOYEES (employee_id , first_name , job_id ) VALUES (51003,'BRUCE', NULL);
Quale sarà l'output di questa affermazione?
- Inserirà una nuova riga con i valori 51003 BRUCE CLERK
- Verrà generato un errore ORA in quanto non può esserci un altro BRUCE che sia un CLERK
- Verrà generato un errore ORA "Constraint violated"
- Inserirà una nuova riga con i valori 51003 BRUCE NULL
Answer: D. Poiché non è presente alcun vincolo NOT NULL sulle colonne FIRST_NAME e JOB_ID, verrà inserito il valore NULL.
15. What among the following can be said regarding inserting of rows in tables?
- L'utente non può inserire righe in modo interattivo
- Una query può essere scritta con variabili di sostituzione per un inserimento interattivo di righe da parte degli utenti
- Quando a un utente viene richiesto di inserire righe, l'inserimento non funziona e genera un errore ORA
- Nessuno dei precedenti
Answer: B. Un'istruzione INSERT può utilizzare la variabile di sostituzione per richiedere all'utente di immettere i valori durante il runtime. Fornisce un modo interattivo per inserire dati nelle tabelle
16.Which of the following can be used to insert rows in tables?
- SELECT
- INSERT
- Sub-queries
- Tutti i precedenti
Answer: D. L'istruzione INSERT può utilizzare INSERT, INSERT-SELECT o un metodo di sottoquery esplicito per inserire dati nelle tabelle.
17. Which among the following is a common technique for inserting rows into a table? (Choose the most sensible and appropriate answer)
- Utilizzo della clausola SELECT
- Digitando manualmente ogni valore nella clausola INSERT
- Utilizzo degli operatori SET
- Nessuno dei precedenti
Answer: A. L'utilizzo della clausola SELECT è la tecnica più comune per inserire righe nelle tabelle. Riduce lo sforzo di digitare manualmente i valori per ciascuna colonna.
18.Which of the following commands is used to change the rows that already exist in a table?
- INSERT
- UNION
- UPDATE
- SELECT
Answer: C. UPDATE è un'istruzione DML che viene utilizzata per modificare i valori delle colonne in una tabella.
19.What is true about the UPDATE command?
- Può aggiornare solo una riga alla volta
- Può aggiornare solo 100 righe alla volta
- Può aggiornare un numero illimitato di righe alla volta in blocco
- Nessuno dei precedenti
Answer: C. Un UPDATE può aggiornare più righe in una o più righe alla volta in base alle condizioni della clausola WHERE.
20.Which of the following clauses decides how many rows are to be updated?
- SELECT
- WHERE
- FROM
- Tutti i precedenti
Answer: B. L'istruzione UPDATE utilizza la clausola WHERE per acquisire l'insieme di righe che deve essere aggiornato.
21.What among the following is true about the UPDATE statement? (Choose the most appropriate answer)
- Un UPDATE può aggiornare le righe di una sola tabella
- Un UPDATE può aggiornare le righe di più tabelle
- Un singolo comando UPDATE non può influire sulle righe in più tabelle
- Nessuno dei precedenti
Answer: A, C. Un'istruzione UPDATE influisce sulle righe di una sola tabella e non su più tabelle.
Consider the following data set from the EMPLOYEES table and its structure. Answer questions 22 to 24 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)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE CLERK
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
22. You need to change the JOB_ID for Bruce (Employee Id 7389) to 'ACCOUNTANT'. Which of the following statements will you fire?
UPDATE employees SET job_id = 'ACCOUNTANT' WHERE employee_id = 7389;
INSERT INTO EMPLOYEES (employee_id , first_name , job_id ) VALUES (5100,'BRUCE', 'ACCOUNTANT');
UPDATE employees SET job_id = 'ACCOUNTANT' WHERE job_id = 'CLERK';
UPDATE employees SET job_id = 'ACCOUNTANT';
Answer: A. L'opzione B non riesce perché modifica il codice lavoro di tutti gli impiegati in ACCOUNTANT. L'opzione C è errata perché aggiorna il codice del lavoro a ACCOUNTANT per tutti i dipendenti nella tabella.
Answer the following questions 23 and 24 based on the below actions -
Si invia la seguente query alla tabella EMPLOYEES con il set di dati come mostrato sopra.
UPDATE employees
Set job_id = NULL
Where employee_id = 51000;
Il set di dati sarà come mostrato di seguito: (Supponiamo che ci sia un vincolo di valore duplicato nella colonna EMPLOYEE_ID)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
23. Suppose you fire an UPDATE statement to update Bruce's JOB_ID to 'SALESMAN' (with respect to the data set shown above). What will be the outcome of the query?
- Il codice lavoro di Bruce sarà ancora NULL
- Il codice lavoro di Bruce verrà modificato in "COMMERCIANTE"
- Errore ORA
- Nessuna azione
Answer: B. L'AGGIORNAMENTO aggiungerà il nuovo valore al valore NULL cambiando il NULL al nuovo valore
24. You issue an UPDATE statement to update the employee id 7389 to 7900. You query the employee by its id '7389' before committing the transaction. What will be the outcome?
- L'aggiornamento funzionerà correttamente mentre la selezione mostrerà 7389.
- L'aggiornamento funzionerà correttamente mentre la selezione non mostrerà alcun record.
- Il vincolo su EMPLOYEE_ID non ne consentirà l'aggiornamento
- Si aggiornerà correttamente ma tutti i valori per EMPLOYEE_ID 7389 diventeranno NULL.
Answer: B. Una query in una sessione è coerente con le transazioni in corso. Se la stessa query fosse stata eseguita in una sessione diversa, avrebbe mostrato il record del dipendente con ID 7389 perché la transazione attiva nella prima sessione non è ancora stata confermata.
25. What among the following is a typical use of an UPDATE statement? (Select the most appropriate answer)
- Per recuperare una riga e aggiornare una o più colonne di quella riga
- Per modificare tutte le righe di alcune colonne
- Per modificare tutte le righe per tutte le colonne di una tabella
- Nessuno dei precedenti
Answer: A. Sebbene, l'istruzione UPDATE possa modificare tutti i valori di colonna in tutte le righe, ma in genere viene utilizzata per selezionare una riga e aggiornare una o più colonne.
26. Which of the following practices appropriately describe for selecting which row set to update using the UPDATE statement?
- Se alcune righe devono essere aggiornate, è possibile utilizzare il vincolo PRIMARY KEY
- Se tutte le righe devono essere aggiornate, è possibile prendere in considerazione la clausola WHERE
- Per aggiornare un insieme di righe usa WHERE, per aggiornare tutte le righe di una tabella, metti un vincolo PRIMARY KEY sulla tabella
- Nessuno dei precedenti
Answer: C.
27. Which of the following columns in a table are not usually updated?
- Colonne di tipo LONG nella tabella
- Colonne LOB nella tabella
- Una colonna di chiave primaria che funge anche da riferimento di chiave esterna in un'altra tabella
- Tutti i precedenti
Answer: C. Come pratica comune, le colonne della chiave primaria che fungono da riferimento alla chiave esterna in altre tabelle, non dovrebbero essere aggiornate. Sebbene possano essere aggiornati rinviando i vincoli che di solito non è raccomandato.
Consider the following data set and structure of the EMPLOYEES table and answer the questions 28 and 29 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)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE NULL
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
28. You issue an UPDATE statement as follows:
UPDATE employees
SET job_id = NULL;
Quale sarà il risultato della dichiarazione di cui sopra?
- La prima riga del set di dati verrà aggiornata a NULL
- La terza colonna della prima riga verrà aggiornata a NULL
- La terza colonna di tutte le righe verrà aggiornata a NULL
- E l'errore ORA verrà generato
Answer: C. Un'istruzione UPDATE senza una clausola WHERE aggiornerà tutte le righe della tabella.
29. You issue an UPDATE statement as follows:
UPDATE employees
SET employee_id = NULL;
WHERE job_id = 'CLERK';
Quale sarà il risultato della dichiarazione di cui sopra? (Qui la colonna EMPLOYEE_ID è contrassegnata come obbligatoria ponendo un vincolo)
- La prima colonna del set di dati verrà aggiornata a NULL
- La terza colonna della prima riga verrà aggiornata a NULL
- La terza colonna di tutte le righe verrà aggiornata a NULL
- E l'errore ORA verrà generato
Answer: D. I vincoli sulla colonna devono essere rispettati durante l'aggiornamento del suo valore. Nell'istruzione UPDATE specificata, verrà generato un errore perché la colonna EMPLOYEE_ID è una chiave primaria nella tabella EMPLOYEES, il che significa che non può essere NULL.
30. Which of the following commands can be used to remove existing records from a table?
- UPDATE
- INSERT
- MINUS
- DELETE
Answer: D. DELETE viene utilizzato per rimuovere i record dalla tabella che può essere facoltativamente basata su una condizione. Essendo una dichiarazione DML, è la parte di una transazione.
31. What among the following is true about the DELETE statement?
- L'istruzione DELETE deve essere accompagnata dalla clausola WHERE
- Non è obbligatorio scrivere una clausola WHERE con l'istruzione DELETE
- DELETE può rimuovere i dati da più tabelle alla volta
- Nessuno dei precedenti
Answer: B. Il predicato della clausola WHERE è facoltativo nell'istruzione DELETE. Se la clausola WHERE viene omessa, tutte le righe della tabella verranno eliminate.
32.What among the following happens when we issue a DELETE statement on a table? (Choose the most appropriate answer)
- Viene visualizzato un messaggio che chiede all'utente se è sicuro di eliminare le righe richieste
- Le righe che obbediscono alla condizione specificata nell'istruzione DELETE vengono rimosse immediatamente
- Le righe richieste vengono rimosse immediatamente senza alcun prompt.
- Nessuno dei precedenti
Answer: C. Come parte della transazione attiva o nuova, le righe nella tabella verranno eliminate.
33.Consider the following data set from the EMPLOYEES table and its structure:
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)
EMPLOYEE_ID FIRST_NAME JOB_ID
------------------- ------------------ --------
5100 BRUCE
5101 JESSICA SALESMAN
5102 DEBBY SALESMAN
È necessario eliminare i dati dalla colonna JOB_ID nella riga con dipendente_id 51001. Quale delle seguenti query sarà corretta?
UPDATE employees SET job_id = NULL WHERE employee_id = 51001;
DELETE job_id FROM employees WHERE employee_id = 51001;
DELETE FROM employees;
- Nessuno dei precedenti
Answer: D. Non è possibile eliminare un determinato valore di colonna per una determinata riga con l'istruzione DELETE. L'intera riga viene eliminata in base alle condizioni fornite. I valori indesiderati in una colonna possono essere aggiornati a NULL. L'opzione "A" è vicina ma non corretta nel contesto della domanda.
34. What is the difference between the UPSERT and MERGE statements?
- Non c'è differenza
- UPSERT è l'ultimo termine adottato per l'istruzione MERGE, che è diventata obsoleta
- UPSERT può eseguire un'operazione di eliminazione che MERGE non può eseguire
- MERGE fa INSERT, UPDATE e DELETE, UPSERT fa solo UPDATE e INSERT
Answer: D. UPSERT è una dichiarazione obsoleta e MERGE ha assunto nuove funzionalità.
35. What is the difference between the MERGE command and the commands INSERT, UPDATE and DELETE?
- L'istruzione MERGE richiede più tempo di ogni operazione (INSERT, UPDATE, DELETE) eseguita separatamente
- MERGE è obsoleto dopo Oracle 10g
- MERGE può eseguire tutte e tre le operazioni su una tabella mentre INSERT, UPDATE e DELETE eseguono un'operazione alla volta.
- Nessuno dei precedenti.
Answer: C. L'istruzione MERGE può incorporare tutte e tre le operazioni su una tabella in una singola istruzione mentre INSERT, UPDATE e DELETE eseguono un'operazione alla volta.
36. Which of the following objects can be the data source in a MERGE statement?
- Solo un tavolo
- Solo una sottoquery
- Una tabella o una sottoquery
- Sia A che B
Answer: C. MERGE funziona bene con una tabella o una sottoquery.
37. What among the following is a TRUNCATE statement equivalent to? (Choose the most suitable answer)
- A un'istruzione DELETE
- A un'istruzione UPDATE
- Un'istruzione DELETE senza una clausola WHERE
- Nessuno dei precedenti
Answer: C. TRUNCATE elimina tutte le righe in un comando.
38.Which of the following situations indicate that a DML operation has taken place?
- Quando vengono aggiunte nuove righe a una tabella
- Quando due query vengono combinate
- Quando una tabella viene troncata
- Nessuno dei precedenti
Answer: A. Quando le righe esistenti in una tabella vengono inserite, modificate o rimosse da una tabella, ciò avviene tramite un'istruzione DML.
39.Which of the following best defines a transaction?
- Una transazione è costituita da istruzioni DDL sullo schema del database
- Una transazione è costituita da COMMIT o ROLLBACK in una sessione di database
- Una transazione consiste in una raccolta di istruzioni DML o in un'istruzione DDL o DCL o TCL per formare un'unità logica di lavoro in una sessione di database
- Una transazione consiste nella raccolta di istruzioni DML e DDL in diverse sessioni del database
Answer: C. Una transazione di database è costituita da una o più istruzioni DML per costituire una modifica coerente nei dati, o un'istruzione DDL o un comando DCL (GRANT o REVOKE). Inizia con la prima istruzione DML e termina con un comando DCL o DDL o TCL (COMMIT o ROLLBACK). Notare che i comandi DDL e DCL contengono la funzione di commit automatico.
40. What does a collection of DML statements that form a logical unit work known as?
- Proprietà ACID
- UNION
- UNION ALL
- Transaction
Answer: D.
41.What happens when a DML statement in an active transaction encounters an error on execution?
- Viene eseguito il rollback delle transazioni complete
- I DML nella transazione si escludono a vicenda e quindi possono continuare la loro esecuzione
- Gli altri DML nelle transazioni vengono interrotti e attendono la risoluzione dell'errore
- Nessuno dei precedenti
Answer: A. Se una qualsiasi delle istruzioni DML in una transazione attiva rileva un errore, l'intera transazione finisce in un rollback.
42.What is true about the keyword VALUES in INSERT statements?
- VALUES può aggiungere più righe alla volta durante l'inserimento
- VALUES può aggiungere solo 100 righe alla volta durante l'inserimento
- VALUES è obbligatorio da utilizzare se usiamo la parola chiave INSERT
- I VALORI aggiungono solo una riga alla volta
Answer: D. La parola chiave VALUES viene utilizzata solo quando i valori della colonna sono specificati esplicitamente nell'istruzione INSERT.
Consider the following statement and the table structure. Answer the questions 43 to 45 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)
INSERT INTO departments (department_id , department_name , manager_id, location_id )
VALUES (100, 'Human Resources', 121, 1000);
43. How many rows will be inserted by the above statement?
- 0
- 2
- 3
- 1
Answer: D. Quando viene utilizzata la parola chiave VALUES, inserisce solo una riga alla volta.
44. In which order the values will get inserted with respect to the above INSERT statement?
- Location_id, manager_id, department_name, department_id
- department_id, department_name, manager_id, location_id
- department_id, manager_id, department_name, location_id
- department_id, department_name, location_id, manager_id
Answer: B. Se le colonne sono menzionate nella clausola INSERT, la parola chiave VALUES dovrebbe contenere valori nello stesso ordine
45. Suppose the above given statement is modified as below:
INSERT INTO departments VALUES (100, 'Human Resources', 121, 1000);
Quale sarà il risultato di questa modifica? Supponiamo che la tabella DEPARTMENTS abbia quattro colonne, ovvero department_id, DEPARTMENT_NAME, MANAGER_ID e LOCATION_ID.
- Inserirà i valori in tutte le colonne della tabella dei reparti assumendo che i valori delle colonne siano forniti nella stessa sequenza della colonna nella tabella
- Verrà generato un errore ORA perché i nomi delle colonne non sono menzionati esplicitamente
- Genererà un errore ORA perché la clausola VALUES è utilizzata in modo errato nell'INSERT
- Nessuno dei precedenti
Answer: A. L'inclusione dei nomi delle colonne nell'istruzione INSERT è facoltativa, a condizione che i valori debbano essere conformi al conteggio e alla sequenza delle colonne nella tabella.
46. What will be the outcome of the below INSERT statement? (Consider the table structure)
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)
INSERT INTO EMPLOYEES (employee_id , hire_date) VALUES (210,"21-JUN-2013");
- Inserirà solo il dipendente_id e la data di assunzione del dipendente, lasciando tutte le altre colonne vuote
- Inserirà solo il dipendente_id
- Verrà generato un errore ORA
- Nessuno dei precedenti
Answer: C. La formattazione del valore letterale della data contiene un errore. Deve essere racchiuso tra virgolette singole e non virgolette doppie.
47.What will be the outcome of the below INSERT statement? (Consider the given table structure)
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)
INSERT INTO EMPLOYEES (employee_id , first_name) VALUES (210,"Bryan");
- Inserirà solo il dipendente_id e il nome di Bryan, lasciando tutte le altre colonne vuote
- Inserirà solo il nome
- Verrà generato un errore ORA
- Nessuno dei precedenti
Answer: C. La formattazione del valore letterale della stringa contiene un errore. Deve essere racchiuso tra virgolette singole e non virgolette doppie.
48. Suppose you need to insert the name O'Callaghan as the last name of the employees table. Which of the following queries will give you the required results? (Consider the given table structure)
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)
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,'O'callahan');
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,'O"callahan');
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,'O' 'Callahan');
INSERT INTO EMPLOYEES (employee_id , last_name) VALUES (210,"O'callahan");
Answer: C.
49. What will be the outcome of the below INSERT statement? (Consider the given table structure)
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)
INSERT INTO EMPLOYEES (employee_id , first_name) VALUES ("210",'Bryan');
- Genererà un errore di valore numerico
- Inserirà solo il dipendente_id e il nome di Bryan, lasciando tutte le altre colonne come NULL
- Inserirà solo il dipendente_id
- Nessuno dei precedenti
Answer: A. I valori numerici non devono essere racchiusi tra virgolette.
50. What will be the outcome of the below INSERT statement? (Consider the given table structure)
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)
INSERT INTO departments VALUES (200,'Accounts', NULL, NULL);
- Verrà generato un errore ORA
- Verrà eseguito correttamente ma con valori errati potrebbero essere inseriti nelle colonne
- Verrà eseguito con successo
- Nessuno dei precedenti
Answer: C. I NULL possono essere utilizzati nella clausola VALUES per riempire i valori delle colonne in alternativa.
51. What will be the outcome of the below INSERT statement? (Assume there is a NOT NULL constraint on the department_id column and consider the table structure given)
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)
INSERT INTO departments VALUES (NULL, 'Accounts', NULL);
- Verrà generato un errore ORA
- Verrà eseguito correttamente ma con risultati errati
- Verrà eseguito con successo ma con risultati corretti
- Nessuno dei precedenti
Answer: A. I valori NULL non possono essere inseriti in colonne non null.
52. What will be the outcome of the below INSERT statement? (Assume there is a NOT NULL constraint on the department_id column and consider the given table structure)
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)
INSERT INTO departments VALUES (200, 34, NULL);
- Verrà eseguito correttamente ma con risultati errati
- Verrà generato un errore ORA
- Verrà eseguito con successo ma con risultati corretti
- Nessuno dei precedenti
Answer: B. Il tipo di dati del valore non corrisponde al tipo di dati della colonna nella tabella.
53. Which of the following commands is used to save the changed data in a table permanently?
- ROLLBACK
- COMMIT
- INSERT
- UPDATE
Answer: B. Il comando TCL COMMIT viene utilizzato per terminare la transazione attiva corrente in una sessione rendendo permanenti tutte le modifiche ai dati in sospeso nelle tabelle.
54. Which of the following commands allows undoing the changed data?
- ROLLBACK
- COMMIT
- INSERT
- UPDATE
Answer: A. Il comando TCL ROLLBACK viene utilizzato per terminare la transazione attiva corrente in una sessione eliminando tutte le modifiche ai dati in sospeso.
55. Which of the following commands allows enabling markers in an active transaction?
- ROLLBACK
- COMMIT
- SAVEPOINT
- Nessuno dei precedenti
Answer: C. SAVEPOINT marks a point in a transaction which divides the transaction into smaller sections.
56. Which of the following commands prevents other users from making changes to a table?
- ROLLBACK
- COMMIT
- LOCK TABLE
- SAVEPOINT
Answer: C.
57. What is true about an INSERT statement which tries to insert values into a virtual column? (Choose the most appropriate answer)
- It cannot insert values in the Virtual column
- It can insert values
- It throws an ORA error
- All of the above
Answer: A. A Virtual column is a column which is always auto generated based on the derivation expression defined in the column specification. Its value cannot be explicitly inserted by the user.
58.Which of the following commands allows the user to insert multiple rows with a single statement?
- INSERT
- INSERT ALL
- UNION ALL
- None of the above
Answer: B. Bulk insert operations can be carried out using INSERT ALL.
59. Which of the following is the syntax for inserting rows through a sub-query?
INSERT INTO tablename [{column_name,..}] subquery;
INSERT INTO tablename VALUES [{column_name,..}] subquery;
- Both A and B
- None of the above
Answer: A.
Consider the following exhibit of the EMPLOYEES table and answer the questions 60 to 63 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)
60. Which of the following queries will execute successfully?
UPDATE employees SET salary = salary + 1000 WHERE to_char (hire_date, 'YYYY') > '2006';
UPDATE employees SET salary = salary + 1000 WHERE to_date (hire_date, 'YYYY') > '2006';
UPDATE employees SET salary = salary + 1000 WHERE hire_date > to_date (substr ('01-jan-200',8));
UPDATE employees SET salary = salary + 1000 WHERE hire_date in (to_date ('JUN 01 11', to_date ('JUL 01 11'));
Answer: A.
61.Due to structural reorganization in the organization, you are asked to update department IDs for all the employees to NULL before the final decision is made public. Only those records should be updated which have the JOB_ID as NULL. Which of the following queries will work?
UPDATE employees SET department_id = NULL Where job_id = NULL;
UPDATE employees SET department_id = NULL Where job_id = TO_NUMBER(NULL);
UPDATE employees SET department_id = NULL Where job_id IS NULL;
UPDATE employees SET department_id = TO_NUMBER (' ', 9999) Where job_id = TO_NUMBER(NULL);
Answer: C. Use IS NULL operator to check column value for nullity.
62.You need to add a basic employee data into EMPLOYEES table. The basic data contains the last name as 'Bond' and department ID as 300. Which of the following statements will give the correct results?
INSERT INTO employees (employee_id , last_name, department_id ) (100,'Bond', (select department_id from departments where department_id = 300));
INSERT INTO employees (employee_id , last_name, department_id ) VALUES (100,'Bond', (select department_id from departments where department_id = 300));
INSERT INTO employees (employee_id , last_name, department_id ) VALUES ('100','Bond',300);
- None of the above
Answer: B, C. Sub queries do work in INSERT statements provided they return a scalar value of data type matching or compatible to the column for which they are used.
63. You fire the following query:
DELETE FROM EMPLOYEES;
Assuming that there are no active transactions on the EMPLOYEES table in any sessions, which of the following statements is true?
- It removes all the rows and structure of the table
- It removes all the rows which can be rolled back
- It removes all the rows permanently
- None of the above
Answer: B. Being a DML statement, the data changes due to DELETE operation are made permanent only after COMMIT is issued in the session.
64.Consider the structure of the COUNTRY table as shown:
SQL> desc countries
Name Null? Type
----------------------- -------- ----------------
COUNTRY_ID NOT NULL CHAR(2)
COUNTRY_NAME VARCHAR2(40)
REGION_ID NUMBER
You issue the following statements in a session.
INSERT INTO COUNTRIES (1, 'Whales')
/
INSERT INTO COUNTRIES (2, 'England')
/
SAVEPOINT A;
UPDATE COUNTRIES
SET country_id= 100 where country_id= 1
/
SAVEPOINT B;
DELETE FROM COUNTRIES where country_id= 2
/
COMMIT
/
DELETE FROM COUNTRIES where country_id= 100
/
What will happen when a ROLLBACK TO SAVEPOINT command is issued for the user session?
- The rollback generates an error
- Only DELETE statements are rolled back
- No SQL statement is rolled back
- None of the above
Answer: A, C. Since there are two savepoints - A and B, and the ROLLBACK command does specifies the actual savepoint mark, Oracle throws error.
65.If a user issues a DML command and exits the SQL Developer abruptly without a COMMIT or ROLLBACK, what will be the outcome? (Assume the session is not auto commit)
- Automatic COMMIT
- Automatic ROLLBACK
- Might be a COMMIT or a ROLLBACK to end the transaction
- None of the above
Answer: B. When transaction is interrupted by a system failure, the entire transaction is automatically rolled back.
66. Which of the following commands / statements would end a transaction?
- COMMIT
- SELECT
- SAVEPOINT
- CREATE
Answer: A, D. Apart from TCL commands i.e. COMMIT or ROLLBACK, the DDL commands and DCL commands possess auto commit feature. The active transaction will be committed if the DDL statement is executed in the same session.
67.When does a transaction complete?
- When a ROLLBACK is executed
- When a COMMIT is executed
- When TRUNCATE is executed
- All of the above
Answer: D. Transaction completes if a TCL, DCL or a DDL command is executed in the session.
68. Examine the given table structures and consider 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)
INSERT INTO EMPLOYEES (department_id ) VALUES
(select department_id FROM departments);
What will be the outcome of the above query?
- The columns in the EMPLOYEES table and the departments table do not match
- The WHERE clause is mandatory to be used in a sub-query
- The VALUES keyword cannot be used with the INSERT clause when sub-queries are used
- None of the above
Answer: C. Wrong usage of VALUES keyword. It must be used only when you have column data in hand, which has to be inserted in the table.
69.Examine the given table structure and consider 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 job_history
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
START_DATE NOT NULL DATE
END_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
DEPARTMENT_ID NUMBER(4)
UPDATE (select employee_id , job_id from employees)
SET hire_date = '01-JAN-13'
WHERE employee_id = (select employee_id FROM job_history);
Which of the following is true regarding the given query?
- It would not execute as we cannot use two tables in a single update statement
- It would not execute as UPDATE cannot use a sub-query
- It would execute with the restrictions on the column specified
- It would not execute as sub-query is used in the WHERE clause
Answer: C.
70.What happens when a transaction is committed?
- The changes made during the transaction are saved for a particular user session
- The changes made during the transaction are discarded
- If the transaction is a DDL, the commit doesn't work
- None of the above
Answer: D. Committing a transaction saves the pending data changes permanently into the database.
71. Which of the following reasons will the best one on the usage of string?
- Using sub-queries
- Syntax errors
- Access permissions
- Constraint violations
Answer: C, B, D. References to non-existing objects / columns, Space issues might be other reasons.
72. What happens when an INSERT statement tries to insert records in an old table?
- All the columns will get NULL values
- A new table with the same name would get created automatically and the values would get inserted
- INSERT cannot work and it throws an ORA error
- None of the above
Answer: C.
73. A user named 'Jonathan Adams' is able to SELECT columns from the EMPLOYEES table but he is unable to insert records into EMPLOYEES. What can be the reason?
- Jonathan is connected to a database which does not support INSERT statements
- The INSERT statement cannot be applied on the table EMPLOYEES
- Jonathan has access to SELECT but no access to INSERT INTO the table EMPLOYEES
- None of the above
Answer: C. Users can enjoy table access based on their responsibilities. One can have only read access on a table while other can enjoy read and write access.
74. Suppose 1 million rows are to be inserted into the AUDIT table. An INSERT transaction runs successfully for the first 1000 rows and an ORA error is thrown 'Constraint violated'. What will happen to the values inserted in the first 1000 rows?
- They will remain as it is
- They all will get deleted
- They all will get rolled back
- None of the above
Answer: C. If any of the DML statement during the transaction encounters error(s), the complete transaction will be rolled back.
Examine the table structure and consider the following query and answer the questions 75, 76 and 77 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)
INSERT INTO departments values (15, NULL);
75. What will be the outcome of this statement?
- It will insert a row with department_id = 15 and all the other values as NULL
- It will execute successfully but insert 0 rows in the table
- It will throw an ORA error as the no. of columns and values do not match
- None of the above
Answer: C. The DEPARTMENTS table contains four columns but the INSERT statement supplies value for two columns only without mentioning the columns too. Hence, the ORA error is thrown.
76. What is true about the above INSERT statement?
- Se le colonne non sono menzionate nell'istruzione INSERT, i valori vengono inseriti in posizione nelle colonne
- È obbligatorio menzionare le colonne dopo l'istruzione INSERT
- Sia a che B
- Nessuno dei precedenti
Answer: A. Se le colonne non sono specificate nell'istruzione INSERT, Oracle associa in modo sequenziale e posizionale ogni valore alla colonna nella tabella.
77. With respect to the statement given above, what will happen if the table is altered to add a new column?
- La dichiarazione funzionerà ancora
- L'esecuzione dell'istruzione genererà un errore poiché ci sarà una mancata corrispondenza nel no. di colonne e valori
- Non ci saranno modifiche e l'istruzione verrà eseguita come prima
- Nessuno dei precedenti
Answer: B. Poiché le colonne non sono state specificate in precedenza, il problema continuerà a esistere. La mancata corrispondenza nella mappatura del valore della colonna genererebbe un errore ORA.
Examine the table structure given below and consider the following queries and answer the questions 78 and 79 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)
Query 1:
INSERT INTO employees (employee_id , last_name, hire_date)
VALUES (100, 'ADAMS','21-DEC-12');
Query 2:
INSERT INTO employees (employee_id , last_name, hire_date)
VALUES (100, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY'));
78. Which of the above two queries is better?
- Entrambi sono migliori
- Solo la query 1 è migliore
- Solo la query 2 è migliore
- Nessuna delle domande è corretta
Answer: C. Query-2 è migliore perché inserisce il valore della data come una data e non come una stringa. Sebbene Oracle eseguirà la conversione implicita della stringa letterale specificata come data, ma non consigliata.
79. Which of the following queries is equivalent of the query 2 given above?
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (101-1, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY'));
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (99+1, upper('ADAMS'),to_date('22-DEC-12','DD-MON-YY') +1 );
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (100, upper('ADAMS'),to_date('21-DEC-12','DD-MON-YY') - 1);
INSERT INTO employees (employee_id , last_name, hire_date) VALUES (100, upper('ADAMS'),to_date('28-DEC-12','DD-MON-YY')-7 );
Answer: A, C, D. È possibile utilizzare operazioni / funzioni aritmetiche per inserire valori come mostrato sopra.
80. You need to copy the data from one table to another table. Which of the following methods can be used?
- È possibile utilizzare il comando COPIA
- È possibile utilizzare il comando INSERT
- È possibile utilizzare il comando UPDATE
- Nessuno dei precedenti
Answer: B. Le operazioni di percorso diretto INSERT-AS-SELECT (IAS) è il metodo più comunemente utilizzato per copiare i dati da una tabella a un'altra.
81.Which of the following statements will copy data from the JOB_HISTORY table to the JOB_HISTORY_ARCHIVE table? (Consider the table structure as given)
SQL> desc job_history
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
START_DATE NOT NULL DATE
END_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
DEPARTMENT_ID NUMBER(4)
INSERT INTO job_history values (select * from job_history);
INSERT INTO JOB_HISTORY_ARCHIVE values (select * from job_history_archive);
INSERT INTO JOB_HISTORY_ARCHIVE select * from job_history;
- Nessuno dei precedenti
Answer: C. L'opzione "C" mostra correttamente l'utilizzo del metodo IAS (INSERT-AS-SELECT).
Examine the given table structure. Consider the following query and answer the questions 82 and 83 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)
INSERT ALL
WHEN job_id = 'SA_REP' then
INTO employees (employee_id , department_id , salary, hire_date)
VALUES (employee_id , 10, salary, hire_date)
WHEN job_id <> 'SA_REP' then
INTO employees (employee_id , department_id , salary, hire_date)
VALUES (employee_id , 20, salary, hire_date)
SELECT employee_id , department_id , job_id, salary, commission_pct , hire_date
FROM employees
WHERE hire_date > sysdate - 30;
82. Interpret the output of the above INSERT statement.
- Ha lanciato un errore
- Inserirà i record per tutti i dipendenti che sono stati assunti un mese prima del sysdate.
- Inserirà i record per tutti i dipendenti che sono rappresentanti di vendita nel reparto 10
- Nessuno dei precedenti
Answer: B, C. INSERT ALL può effettuare inserimenti condizionali nelle tabelle di destinazione.
83. Which employees' data will be inserted in the department 20?
- Rappresentanti di vendita
- Accountants
- Sia A che B
- Nessuno dei precedenti
Answer: B. Secondo l'istruzione INSERT ALL, i dettagli dei dipendenti il cui job_id non è "Sales Representative".
84. What will be the outcome of the below query? (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)
INSERT INTO employees (employee_id , salary) VALUES (&employee_id , &salary);
COMMIT;
- Errore di sintassi poiché le variabili di sostituzione non possono essere utilizzate nelle istruzioni DML
- All'utente verrà richiesto di inserire l'ID del dipendente e lo stipendio, ma le variabili di sostituzione non possono inserire dati nella tabella
- All'utente verrà richiesto di inserire l'ID del dipendente e lo stipendio e il record verranno creati correttamente nella tabella DIPENDENTI
- Nessuno dei precedenti
Answer: C. Le variabili di sostituzione funzionano bene con le istruzioni DML.
85. Evaluate the following SQL statements that are executed in a user session in the specified order:
CREATE SEQUENCE id_seq;
SELECT id_seq.nextval
FROM dual;
INSERT INTO employees (employee_id ,first_name,job_id )
VALUES (ord_seq.CURRVAL, 'Steyn','Trainee');
UPDATE employees
SET employee_id = id_seq.NEXTVAL
WHERE first_name = 'Steyn'
AND job_id ='Trainee';
Quale sarebbe il risultato delle dichiarazioni di cui sopra?
- Il comando CREATE SEQUENCE genererebbe un errore perché il valore minimo e massimo per la sequenza non sono stati specificati
- Tutte le istruzioni verrebbero eseguite correttamente e la colonna Employee_id conterrebbe il valore 2 per il dipendente STEYN.
- Il comando CREATE SEQUENCE non viene eseguito perché il valore iniziale della sequenza e il valore di incremento non sono stati specificati.
- Tutte le istruzioni verranno eseguite correttamente e la colonna Employ_id avrà il valore 20 per il dipendente STEYN perché il valore CACHE predefinito è 20.
Answer: B.
86. What is the restriction on the sub-query used in the UPDATE statement?
- La sottoquery dovrebbe essere una sottoquery su più righe
- La sottoquery dovrebbe essere una sottoquery a riga singola
- Non ci sono restrizioni
- La sottoquery può essere una singola riga o una sottoquery su più righe
Answer: B. La sottoquery non deve restituire più righe quando viene utilizzata in un'istruzione UPDATE
Examine the given table structure and consider the query given below and answer the questions 87 and 88 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)
UPDATE employees
SET salary = (SELECT salary FROM employees WHERE employee_id =7382);
87. What will be the outcome of the above query?
- Genera un errore ORA durante l'esecuzione
- Lo stipendio di tutti i dipendenti verrà aggiornato con lo stesso stipendio del dipendente 7382
- Lo stipendio di tutti i dipendenti verrà aggiornato a NULL
- Nessuno dei precedenti
Answer: B. I risultati della query possono essere utilizzati per aggiornare i valori delle colonne in una tabella.
88. Suppose if the employee 7382 doesn't exist in the EMPLOYEES table. What will be the outcome of the query?
- Genera un errore ORA durante l'esecuzione perché i risultati della query non possono essere aggiornati nelle colonne
- Lo stipendio di tutti i dipendenti verrà aggiornato a NULL
- L'eccezione ORA "NO_DATA_FOUND" verrà sollevata perché il dipendente 7382 non esiste
- Nessuno dei precedenti
Answer: B. Le istruzioni UPDATE non sollevano alcuna eccezione ad eccezione degli errori sintattici.
Examine the given table structure and consider the query given below and answer the questions 89 and 90 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)
UPDATE employees
set salary = (select salary from employees where last_name = 'Adams');
89. What will be the outcome of the query?
- Viene eseguito con successo
- Tutte le righe della tabella hanno lo stesso stipendio
- Al momento dell'esecuzione potrebbe generare un errore ORA "TOO_MANY_ROWS"
- Nessuno dei precedenti
Answer: C. La sottoquery potrebbe restituire più di una riga causando un errore.
90. What changes in the above query will make sure there are no errors caused?
- Utilizza una funzione a riga singola come MAX, MIN o AVG per ridurre i risultati di più righe in un risultato scalare
- Aggiunta di un vincolo di chiave primaria sulla colonna SALARY
- Nessuna modifica richiesta
- Nessuno dei precedenti
Answer: A.
Examine the given table structure and consider the following query and answer the questions 91 and 92 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)
UPDATE employees
SET salary = (select max (salary) from employees where last_name = 'Adams');
91. What will be the outcome of the query given above?
- Aggiornerà gli stipendi di tutti i dipendenti pari allo stipendio del dipendente di nome Adam
- Aggiornerà gli stipendi di tutti i dipendenti pari allo stipendio medio di tutti con cognome come 'Adam'
- Aggiornerà 0 righe
- Aggiornerà solo una riga
Answer: B. Le funzioni aritmetiche MAX o MIN possono essere utilizzate con sottoquery per ottenere valori scalari ed evitare errori.
92. Assume that the sub-query above is replaced with the following:
SELECT distinct salary from employees where last_name = 'Adam';
Quale sarà il risultato della query principale fornita sopra?
- Verrà eseguito con successo dando risultati errati
- Verrà eseguito con successo dando risultati corretti
- Verrà generato un errore ORA
- Nessuno dei precedenti
Answer: C. dà un errore perché poiché ce ne sono molti con il cognome "Adam" ci saranno molti stipendi distinti.
Examine the given table structure and consider the following query and answer the questions 93 and 94 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)
UPDATE employees
SET salary = 50000;
WHERE job_id in (select job_id from job_history where department_id = 10);
93. What will the above statement do? (Choose the most appropriate answer)
- Aggiornerà tutti gli stipendi di tutti i dipendenti come 50000
- Aggiornerà tutti gli stipendi di tutti i dipendenti del reparto 10
- Aggiornerà gli stipendi di tutti i dipendenti che hanno uno degli ID lavoro simili a quelli del reparto 10
- Nessuno dei precedenti
Answer: C.
94. What will happen if the WHERE clause given above is replaced with the following?
WHERE job_id = (select job_id from job_history where department_id = 10);
- Verrà eseguito correttamente con risultati errati
- Verrà eseguito correttamente con risultati corretti
- Verrà generato un errore ORA
- Nessuno dei precedenti
Answer: C. Il segno di uguale genererà l'errore.
Examine the given table structure and consider the following statement. Answer the questions 95 to 97 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)
DELETE FROM employees where last_name = 'A%';
COMMIT;
95. What will be the outcome of the query given above?
- Viene eseguito correttamente ma nessuna riga viene eliminata
- Tutti i dipendenti il cui cognome inizia con "A" verranno eliminati
- Errore ORA perché l'istruzione DELETE non può avere il predicato WHERE
- Tutte le righe della tabella dei dipendenti verranno eliminate
Answer: A. L'istruzione DELETE può avere il predicato della clausola WHERE. In base alle condizioni, i record verranno rimossi dalla tabella.
96. Consider the following statement:
DELETE FROM employees where employee_id IS NULL and job_id = NULL;
COMMIT;
Supponendo che ci sia un vincolo NOT NULL sulla colonna dipendente_id, quale sarà il risultato della query precedente?
- Genererà un errore ORA a causa di predicati WHERE non validi
- Verrà eseguito correttamente e nessuna riga verrà eliminata
- Genererà un errore ORA perché più predicati non possono funzionare nelle istruzioni DELETE
- Nessuno dei precedenti
Answer: B. È possibile applicare più predicati alle istruzioni DML UPDATE e DELETE.
97. Consider the following query:
DELETE FROM employees where department_id = &deptID;
COMMIT;
Cosa accadrà quando verrà eseguita l'istruzione di cui sopra?
- Genererà un errore perché le istruzioni DML non possono utilizzare variabili di sostituzione
- Richiederà l'eliminazione dell'ID reparto dall'utente e l'eliminazione del record con l'ID reparto specificato
- Richiederà l'ID del reparto ma non è possibile eseguire il commit della transazione
- Nessuno dei precedenti
Answer: B. Le variabili di sostituzione possono essere utilizzate con le istruzioni DML.
98. All parts of a transaction should complete or none of them. Which property of ACID rule complies with the given statement?
- Atomicity
- Consistency
- Isolation
- Durability
Answer: A. ACID si riferisce alle proprietà di base di una transazione di database: atomicità, coerenza, isolamento e durabilità. L'atomicità implica che l'intera sequenza di azioni deve essere completata o interrotta. La coerenza implica che la transazione porti le risorse da uno stato coerente a un altro. L'isolamento implica che l'effetto di una transazione non è visibile ad altre transazioni finché la transazione non viene confermata. La durabilità implica che le modifiche apportate dalla transazione sottoposta a commit sono permanenti e devono sopravvivere a un guasto del sistema.
99. What does the principle of Durability in the ACID property state?
- Indica che un database può perdere le transazioni completate
- Afferma che una transazione non può essere completata
- Afferma che una volta completata una transazione, deve essere impossibile per il DB perderla.
- Nessuno dei precedenti
Answer: C.
100. An incomplete transaction should be invisible to all the other users. Which of the properties of the ACID state this?
- Isolation
- Consistency
- Atomicity
- Durability
Answer: A. "I" sta per isolamento.
101. What does the principle of consistency states?
- Dichiara che i risultati di una query devono essere coerenti con lo stato del DB al momento in cui la query è iniziata
- Afferma che una transazione incompleta dovrebbe essere invisibile a tutti gli altri utenti
- Afferma che una volta completata una transazione, deve essere impossibile per il DB perderla
- Nessuno dei precedenti
Answer: A. la "C" nella proprietà ACID sta per consistenza
102. What among the following best describes a Transaction?
- INSERT in COMMIT / ROLLBACK
- AGGIORNA a COMMIT / ROLLBACK
- DELETE in COMMIT / ROLLBACK
- INSERT / UPDATE / DELETE in COMMIT / ROLLBACK
Answer: D.
103. A user named "Jonathan" inserts data in the table EMPLOYEES. When will the other users be able to see the new data?
- Quando Jonathan fornisce il permesso di accesso agli utenti
- Quando Jonathan esegue un'istruzione ROLLBACK nella sessione
- Quando Jonathan esegue un'istruzione COMMIT nella stessa sessione
- Quando Jonathan apre una nuova sessione ed emette un COMMIT
Answer: C. La transazione attiva deve essere salvata nella stessa sessione.
104. What can be said about the nesting of transactions?
- Sono possibili massimo 2 livelli di annidamento
- Sono possibili al massimo 255 livelli di annidamento
- L'annidamento di una transazione è impossibile
- È possibile solo 1 livello di nidificazione
Answer: C.
105. Which of the following reasons will terminate a transaction?
- Una dichiarazione DDL
- Uscita da un cliente
- Il sistema va in crash
- Tutti i precedenti
Answer: D. DDL è un commit automatico e terminerà la transazione attiva in corso.