SQL è un linguaggio di database standard utilizzato per accedere e manipolare i dati nei database. Sta per Structured Query Language ed è stato sviluppato da IBM Computer Scientists negli anni '70. Eseguendo query, SQL può creare, aggiornare, eliminare e recuperare dati in database come MySQL, Oracle, PostgreSQL, ecc. Nel complesso, SQL è un linguaggio di query che comunica con i database.
In questo articolo, trattiamo Oltre 70 domande di intervista SQL con risposte chiesto durante le interviste agli sviluppatori SQL presso MAANG e altre società ben pagate. Che tu sia un professionista alle prime armi o esperto con 2, 5 o 10 anni di esperienza, questo articolo ti dà tutta la sicurezza di cui hai bisogno per superare al meglio il tuo prossimo colloquio SQL.
Tabella dei contenuti
- Domande e risposte sull'intervista SQL per le matricole
- Domande e risposte sull'intervista SQL intermedia
- Domande e risposte per interviste SQL avanzate
Domande e risposte sull'intervista SQL per le matricole
1. Cos'è l'SQL?
SQL sta per Structured Query Language. È un linguaggio utilizzato per interagire con il database, ovvero per creare un database, creare una tabella nel database, recuperare dati o aggiornare una tabella nel database, ecc. SQL è uno standard ANSI (American National Standards Institute). Usando SQL, possiamo fare molte cose. Ad esempio: possiamo eseguire query, possiamo inserire record in una tabella, aggiornare record, creare un database, creare una tabella, eliminare una tabella, ecc.
2. Cos'è una banca dati?
UN Banca dati è definita come una forma strutturata di archiviazione dei dati in un computer o una raccolta di dati in modo organizzato ed è possibile accedervi in vari modi. È anche la raccolta di schemi, tabelle, query, visualizzazioni, ecc. I database ci aiutano a archiviare, accedere e manipolare facilmente i dati conservati su un computer. Il sistema di gestione del database consente a un utente di interagire con il database.
3. SQL supporta le funzionalità del linguaggio di programmazione?
È vero che SQL è un linguaggio, ma non supporta la programmazione poiché non è un linguaggio di programmazione, è un linguaggio di comando. Non abbiamo istruzioni condizionali in SQL come i cicli for o if..else, abbiamo solo comandi che possiamo utilizzare per interrogare, aggiornare, eliminare, ecc. I dati nel database. SQL ci consente di manipolare i dati in un database.
4. Qual è la differenza tra il tipo di dati CHAR e VARCHAR2 in SQL?
Entrambi questi tipi di dati vengono utilizzati per i caratteri, ma varchar2 viene utilizzato per stringhe di caratteri di lunghezza variabile, mentre char viene utilizzato per stringhe di caratteri di lunghezza fissa. Per esempio , se specifichiamo il tipo come char(5) non saremo autorizzati a memorizzare una stringa di qualsiasi altra lunghezza in questa variabile, ma se specifichiamo il tipo di questa variabile come varchar2(5) allora ci sarà consentito memorizzare stringhe di lunghezza variabile. Possiamo memorizzare una stringa di lunghezza 3 o 4 o 2 in questa variabile.
5. Cosa intendi per linguaggio di definizione dei dati?
Linguaggio di definizione dei dati o DDL consente l'esecuzione di query come CREATE, DROP e ALTER. Cioè quelle query che definiscono i dati.
6. Cosa intendi per linguaggio di manipolazione dei dati?
Manipolazione dei dati Il linguaggio o DML viene utilizzato per accedere o manipolare i dati nel database. Ci consente di eseguire le funzioni elencate di seguito:
- Inserire dati o righe in un database
- Eliminare i dati dal database
- Recuperare o recuperare dati
- Aggiornare i dati in un database.
7. Qual è la vista in SQL?
Visualizzazioni in SQL sono una sorta di tavolo virtuale. Una vista ha anche righe e colonne come in una tabella reale nel database. Possiamo creare una vista selezionando i campi da una o più tabelle presenti nel database. Una vista può avere tutte le righe di una tabella o righe specifiche in base a determinate condizioni.
L'istruzione CREATE VIEW di SQL viene utilizzata per creare viste.
Sintassi di base:
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition; view_name : Name for the View table_name : Name of the table condition : Condition to select rows>
8. Cosa intendi per chiave esterna?
UN Chiave esterna è un campo che può identificare in modo univoco ogni riga in un'altra tabella. E questo vincolo viene utilizzato per specificare un campo come chiave esterna. Questo campo punta alla chiave primaria di un'altra tabella. Questo di solito crea una sorta di collegamento tra le due tabelle.
Considera le due tabelle come mostrato di seguito:
Ordini
O_ID | NUMERO D'ORDINE | C_ID |
---|---|---|
1 | 2253 | 3 |
2 | 3325 | 3 |
3 | 4521 | 2 |
4 | 8532 | 1 |
Clienti
C_ID | NOME | INDIRIZZO |
---|---|---|
1 | RAMESH | DELHI |
2 | SICURO | NOIDA |
3 | DHARMESH | GURGAON |
Come possiamo vedere chiaramente, che il campo C_ID nella tabella Ordini è la chiave primaria nella tabella Clienti, ovvero identifica in modo univoco ogni riga della tabella Clienti. Pertanto, è una chiave esterna nella tabella Ordini.
Sintassi:
CREATE TABLE Orders ( O_ID int NOT NULL, ORDER_NO int NOT NULL, C_ID int, PRIMARY KEY (O_ID), FOREIGN KEY (C_ID) REFERENCES Customers(C_ID) )>
9. Cosa sono tabella e campo?
Tavolo: Una tabella ha una combinazione di righe e colonne. Le righe sono chiamate record e le colonne sono chiamate campi. In MS SQL Server, le tabelle vengono designate all'interno dei nomi del database e dello schema.
Campo: In DBMS, un campo del database può essere definito come: una singola informazione da un record.
variabile Java variabile
10. Qual è la chiave primaria?
UN Chiave primaria è una delle chiavi candidate. Una delle chiavi candidate viene selezionata come la più importante e diventa la chiave primaria. Non può esserci più di una chiave primaria in una tabella.
11. Cos'è un vincolo predefinito?
IL PREDEFINITO il vincolo viene utilizzato per riempire una colonna con valori predefiniti e fissi. Il valore verrà aggiunto a tutti i nuovi record quando non viene fornito nessun altro valore.
12. Cos'è la normalizzazione?
Si tratta di un processo di analisi degli schemi di relazione dati in base alle loro dipendenze funzionali e alle chiavi primarie per ottenere le seguenti proprietà desiderabili:
- Riduzione al minimo della ridondanza
- Riduzione al minimo delle anomalie di inserimento, cancellazione e aggiornamento
Gli schemi di relazione che non soddisfano le proprietà vengono scomposti in schemi di relazione più piccoli che potrebbero soddisfare le proprietà desiderabili.
13. Cos'è la denormalizzazione?
Denormalizzazione è una tecnica di ottimizzazione del database in cui aggiungiamo dati ridondanti a una o più tabelle. Questo può aiutarci a evitare unioni costose in un database relazionale. Si noti che denormalizzare non significa non normalizzare. È una tecnica di ottimizzazione che viene applicata dopo la normalizzazione.
In un database normalizzato tradizionale, memorizziamo i dati in tabelle logiche separate e cerchiamo di ridurre al minimo i dati ridondanti. Potremmo sforzarci di avere solo una copia di ciascun dato nel database.
14. Cos'è una query?
UN SQL la query viene utilizzata per recuperare i dati richiesti dal database. Tuttavia, potrebbero esserci più query SQL che producono gli stessi risultati ma con livelli di efficienza diversi. Una query inefficiente può esaurire le risorse del database, ridurre la velocità del database o comportare una perdita di servizio per altri utenti. Quindi è molto importante ottimizzare la query per ottenere le migliori prestazioni del database.
15. Cos'è una sottoquery?
In SQL, a Sottoquery può essere semplicemente definita come una query all'interno di un'altra query. In altre parole, possiamo dire che una Subquery è una query incorporata nella clausola WHERE di un'altra query SQL.
16. Quali sono i diversi operatori disponibili in SQL?
Ci sono tre operatori disponibili in SQL e cioè:
- Operatori aritmetici
- Operatori logici
- Operatori di confronto
17. Cos'è un vincolo?
I vincoli sono le regole che possiamo applicare al tipo di dati in una tabella. Cioè, possiamo specificare il limite sul tipo di dati che possono essere archiviati in una particolare colonna di una tabella utilizzando i vincoli. Per maggiori dettagli fare riferimento a SQL|Vincoli articolo.
18. Cos'è l'integrità dei dati?
L'integrità dei dati è definita come i dati contenuti nel database sono corretti e coerenti. A tal fine i dati conservati nel database devono soddisfare determinati tipi di procedure (regole). I dati in un database devono essere corretti e coerenti. Pertanto, i dati archiviati nel database devono soddisfare determinati tipi di procedure (regole). DBMS fornisce diversi modi per implementare tali tipi di vincoli (regole). Ciò migliora l'integrità dei dati in un database. Per maggiori dettagli fare riferimento differenza tra sicurezza e integrità dei dati articolo.
19. Cos'è l'incremento automatico?
A volte, durante la creazione di una tabella, non abbiamo un identificatore univoco all'interno della tabella, quindi incontriamo difficoltà nella scelta della chiave primaria. Per risolvere un problema del genere, dobbiamo fornire manualmente chiavi univoche per ogni record, ma spesso anche questo è un compito noioso. Possiamo quindi utilizzare la funzionalità di incremento automatico che genera automaticamente un valore di chiave primaria numerica per ogni nuovo record inserito. La funzione di incremento automatico è supportata da tutti i database. Per maggiori dettagli fare riferimento Incremento automatico SQL articolo.
20. Cos'è la raccolta MySQL?
Una raccolta MySQL è un insieme ben definito di regole che vengono utilizzate per confrontare i caratteri di un particolare set di caratteri utilizzando la codifica corrispondente. Ogni set di caratteri in MySQL potrebbe avere più di un confronto e ha almeno un confronto predefinito. Due set di caratteri non possono avere le stesse regole di confronto. Per maggiori dettagli fare riferimento Cosa sono le regole di confronto e il set di caratteri in MySQL? articolo.
21. Cosa sono le funzioni definite dall'utente?
Possiamo utilizzare funzioni definite dall'utente in PL/SQL o Java per fornire funzionalità che non sono disponibili in SQL o nelle funzioni integrate SQL. Le funzioni SQL e le funzioni definite dall'utente possono essere visualizzate ovunque, ovvero ovunque si presenti un'espressione.
Ad esempio, può essere utilizzato in:
- Seleziona un elenco di istruzioni SELECT.
- Condizione della clausola WHERE.
- COLLEGA PER, ORDINA PER, INIZIA CON e RAGGRUPPA PER
- La clausola VALUES dell'istruzione INSERT.
- La clausola SET dell'istruzione UPDATE.
22. Quali sono tutti i tipi di funzioni definite dall'utente?
Le funzioni definite dall'utente consentono agli utenti di definire le proprie funzioni T-SQL che possono accettare 0 o più parametri e restituire un singolo valore di dati scalari o un tipo di dati di tabella.
I diversi tipi di funzioni definite dall'utente create sono:
1. Funzione scalare definita dall'utente Una funzione scalare definita dall'utente restituisce uno dei tipi di dati scalari. I tipi di dati testo, immagine e timestamp non sono supportati. Questi sono il tipo di funzioni definite dall'utente a cui è abituata la maggior parte degli sviluppatori in altri linguaggi di programmazione. Passi 0 a molti parametri e ottieni un valore restituito.
2. Funzione definita dall'utente con valori di tabella in linea Una funzione Inline Table-Value definita dall'utente restituisce un tipo di dati di tabella ed è un'alternativa eccezionale a una vista poiché la funzione definita dall'utente può passare parametri in un comando di selezione T-SQL e, in sostanza, fornirci un parametro parametrizzato, non -vista aggiornabile delle tabelle sottostanti.
3. Funzione definita dall'utente con valori di tabella a più istruzioni Una funzione multi-istruzione definita dall'utente con valori di tabella restituisce una tabella ed è anche un'alternativa eccezionale a una vista, poiché la funzione può supportare più istruzioni T-SQL per creare il risultato finale in cui la vista è limitata a una singola istruzione SELECT. Inoltre, la possibilità di passare parametri in un comando di selezione TSQL o in un gruppo di essi ci dà la possibilità, in sostanza, di creare una vista parametrizzata e non aggiornabile dei dati nelle tabelle sottostanti. All'interno del comando di creazione della funzione è necessario definire la struttura della tabella che viene restituita. Dopo aver creato questo tipo di funzione definita dall'utente, è possibile utilizzarla nella clausola FROM di un comando T-SQL, a differenza del comportamento riscontrato quando si utilizza una procedura memorizzata che può anche restituire set di record.
23. Cos'è una procedura memorizzata?
Procedura di archiviazione vengono creati per eseguire una o più operazioni DML sui database. Non è altro che un gruppo di istruzioni SQL che accetta alcuni input sotto forma di parametri ed esegue alcune attività e può restituire o meno un valore. Per maggiori dettagli vi invitiamo a consultare la ns Procedure memorizzate nell'SQL articolo.
24. Cosa sono le funzioni aggregate e scalari?
Per eseguire operazioni sui dati, SQL ha molte funzioni integrate, suddivise in due categorie e ulteriormente sottocategorizzate in sette diverse funzioni sotto ciascuna categoria. Le categorie sono:
- Funzioni aggregate: Queste funzioni vengono utilizzate per eseguire operazioni dai valori della colonna e viene restituito un singolo valore.
- Funzioni scalari: Queste funzioni si basano sull'input dell'utente e anche queste restituiscono un singolo valore.
Per maggiori dettagli, leggere il SQL | Funzioni (funzioni aggregate e scalari) articolo.
25. Cos'è un comando ALIAS?
Gli alias sono i nomi temporanei assegnati a una tabella o colonna allo scopo di una particolare query SQL. Viene utilizzato quando viene utilizzato il nome di una colonna o di una tabella diverso dal nome originale, ma il nome modificato è solo temporaneo.
- Gli alias vengono creati per rendere più leggibili i nomi di tabelle o colonne.
- La ridenominazione è solo una modifica temporanea e il nome della tabella non cambia nel database originale.
- Gli alias sono utili quando i nomi di tabelle o colonne sono grandi o poco leggibili.
- Questi sono preferiti quando è presente più di una tabella coinvolta in una query.
Per maggiori dettagli si prega di leggere il SQL | Alias articolo.
26. Cosa sono i comandi Unione, meno e Interagisci?
Le operazioni sugli insiemi in SQL eliminano le tuple duplicate e possono essere applicate solo alle relazioni compatibili con l'unione. Le operazioni sugli insiemi disponibili in SQL sono:
- Imposta Unione
- Imposta intersezione
- Imposta la differenza
Operazione UNIONE: Questa operazione include tutte le tuple presenti in ciascuna delle relazioni. Ad esempio: trovare tutti i clienti che hanno un prestito o un conto o entrambi in banca.
SELECT CustomerName FROM Depositor UNION SELECT CustomerName FROM Borrower ;>
L'operazione di unione elimina automaticamente i duplicati. Se si intende conservare tutti i duplicati, viene utilizzato UNION ALL al posto di UNION.
Operazione INTERSETTA: Questa operazione include le tuple presenti in entrambe le relazioni. Ad esempio: per trovare i clienti che hanno un prestito oltre a un conto in banca:
SELECT CustomerName FROM Depositor INTERSECT SELECT CustomerName FROM Borrower ;>
L'operazione Interseca elimina automaticamente i duplicati. Se si intende conservare tutti i duplicati, viene utilizzato INTERSECT ALL al posto di INTERSECT.
TRANNE per l'operazione: Questa operazione include tuple che sono presenti in una relazione ma non dovrebbero essere presenti in un'altra relazione. Ad esempio: per trovare clienti che hanno un conto ma non hanno un prestito in banca:
SELECT CustomerName FROM Depositor EXCEPT SELECT CustomerName FROM Borrower ;>
L'operazione Tranne elimina automaticamente i duplicati. Se si intende conservare tutti i duplicati, al posto di EXCEPT viene utilizzato EXCEPT ALL.
27. Cos'è un T-SQL?
T-SQL è l'abbreviazione di Transact Structure Query Language. È un prodotto Microsoft ed è un'estensione del linguaggio SQL utilizzato per interagire con i database relazionali. Si ritiene che funzioni meglio con i server Microsoft SQL. Le istruzioni T-SQL vengono utilizzate per eseguire le transazioni nei database. T-SQL ha un'enorme importanza poiché tutte le comunicazioni con un'istanza di un server SQL vengono eseguite inviando istruzioni Transact-SQL al server. Gli utenti possono anche definire funzioni utilizzando T-SQL.
I tipi di funzioni T-SQL sono:
- Aggregato funzioni.
- classifica funzioni. Esistono diversi tipi di funzioni di classificazione.
- Set di righe funzione.
- Scalare funzioni.
28. Cos'è l'ETL in SQL?
ETL è un processo di Data Warehousing e sta per Estratto , Trasformare, E Carico . È un processo in cui uno strumento ETL estrae i dati da vari sistemi di origine dati, li trasforma nell'area di staging e infine li carica nel sistema Data Warehouse. Si tratta di tre funzioni di database incorporate in uno strumento per estrarre i dati da un database e inserirli in un altro database.
29. Come copiare le tabelle in SQL?
A volte, in SQL, abbiamo bisogno di creare una copia esatta di una tabella già definita (o creata). MySQL consente di eseguire questa operazione. Perché potremmo aver bisogno di tali tabelle duplicate per testare i dati senza avere alcun impatto sulla tabella originale e sui dati in essa archiviati.
CREATE TABLE Contact List(Clone_1) LIKE Original_table;>
Per maggiori dettagli, leggere Tabella di clonazione in IL MySQL articolo.
30. Cos'è l'iniezione SQL?
L'iniezione SQL è una tecnica utilizzata per sfruttare i dati dell'utente tramite input di pagine Web inserendo comandi SQL come istruzioni. Fondamentalmente, queste dichiarazioni possono essere utilizzate per manipolare il server web dell’applicazione da parte di utenti malintenzionati.
- L'SQL injection è una tecnica di code injection che potrebbe distruggere il tuo database.
- L'SQL injection è una delle tecniche di web hacking più comuni.
- L'SQL injection è il posizionamento di codice dannoso nelle istruzioni SQL, tramite l'input di una pagina web.
Per maggiori dettagli si prega di leggere il SQL | Iniezione articolo.
31. Possiamo disabilitare un trigger? Se sì, come?
Sì, possiamo disabilitare un trigger in PL/SQL. Se considera di disabilitare temporaneamente un trigger e una delle seguenti condizioni è vera:
- Un oggetto a cui fa riferimento il trigger non è disponibile.
- Dobbiamo eseguire un grande caricamento di dati e vogliamo che proceda rapidamente senza attivare trigger.
- Stiamo caricando i dati nella tabella a cui si applica il trigger.
- Disabilitiamo un trigger utilizzando l'istruzione ALTER TRIGGER con l'opzione DISABLE.
- Possiamo disabilitare tutti i trigger associati a una tabella contemporaneamente utilizzando l'istruzione ALTER TABLE con l'opzione DISABLE ALL TRIGGERS.
Domande e risposte sull'intervista SQL intermedia
32. Quali sono le differenze tra SQL e PL/SQL?
Alcune differenze comuni tra SQL e PL/SQL sono mostrate di seguito:
SQL | PL/SQL |
---|---|
SQL è un linguaggio di esecuzione di query o di comando | PL/SQL è un linguaggio di programmazione completo |
SQL è un linguaggio orientato ai dati. | PL/SQL è un linguaggio procedurale |
SQL è di natura molto dichiarativa. | PL/SQL ha una natura procedurale. |
Viene utilizzato per manipolare i dati. | Viene utilizzato per creare applicazioni. |
Possiamo eseguire un'istruzione alla volta in SQL | Possiamo eseguire blocchi di istruzioni in PL/SQL |
SQL dice ai database, cosa fare? | PL/SQL dice ai database come fare. |
Possiamo incorporare SQL in PL/SQL | Non possiamo incorporare PL/SQL in SQL |
33. Qual è la differenza tra gli operatori BETWEEN e IN in SQL?
FRA: IL FRA L'operatore viene utilizzato per recuperare le righe in base a un intervallo di valori.
Per esempio,
SELECT * FROM Students WHERE ROLL_NO BETWEEN 20 AND 30;>
Questa query selezionerà tutte quelle righe dalla tabella. Studenti il cui valore del campo ROLL_NO è compreso tra 20 e 30.
IN: IL IN L'operatore viene utilizzato per verificare la presenza di valori contenuti in insiemi specifici.
Per esempio,
SELECT * FROM Students WHERE ROLL_NO IN (20,21,23);>
Questa query selezionerà tutte quelle righe della tabella Studenti in cui il valore del campo ROLL_NO è 20 o 21 o 23.
34. Scrivi una query SQL per trovare i nomi dei dipendenti che iniziano con 'A'.
A questo scopo viene utilizzato l'operatore LIKE di SQL. Viene utilizzato per recuperare dati filtrati cercando un modello particolare nella clausola where.
La sintassi per usare LIKE è,
SELECT colonna1, colonna2 FROM nome_tabella WHERE nome_colonna LIKE modello;
COME: nome dell'operatore
modello: valore esatto estratto dal modello per ottenere i dati correlati nel set di risultati.
La query richiesta è:
SELECT * FROM Employees WHERE EmpName like 'A%' ;>
Puoi fare riferimento a questo articolo Dove la clausola per maggiori dettagli sull'operatore LIKE.
35. Qual è la differenza tra chiave primaria e vincoli univoci?
La chiave primaria non può avere valori NULL, i vincoli univoci possono avere valori NULL. In una tabella è presente una sola chiave primaria, ma possono essere presenti più vincoli univoci. La chiave primaria crea automaticamente l'indice cluster, ma la chiave univoca no.
36. Cos'è un join in SQL? Quali sono i tipi di join?
Un'istruzione SQL Join viene utilizzata per combinare dati o righe di due o più tabelle in base a un campo comune tra di loro. Diversi tipi di join sono:
- UNIONE INTERNA : la parola chiave INNER JOIN seleziona tutte le righe di entrambe le tabelle purché la condizione sia soddisfatta. Questa parola chiave creerà il set di risultati combinando tutte le righe di entrambe le tabelle in cui la condizione soddisfa, ovvero il valore del campo comune sarà lo stesso.
- SINISTRA UNISCITI : questo join restituisce tutte le righe della tabella sul lato sinistro del join e le righe corrispondenti per la tabella sul lato destro del join. Per le righe per le quali non esiste una riga corrispondente sul lato destro, il set di risultati sarà nullo. LEFT JOIN è noto anche come LEFT OUTER JOIN
- ISCRIVITI GIUSTO : RIGHT JOIN è simile a LEFT JOIN. Questo join restituisce tutte le righe della tabella sul lato destro del join e le righe corrispondenti per la tabella sul lato sinistro del join. Per le righe per le quali non esiste una riga corrispondente sul lato sinistro, il set di risultati conterrà null. RIGHT JOIN è noto anche come RIGHT OUTER JOIN.
- ISCRIZIONE COMPLETA : FULL JOIN crea il set di risultati combinando i risultati di LEFT JOIN e RIGHT JOIN. Il set di risultati conterrà tutte le righe di entrambe le tabelle. Per le righe per le quali non esiste corrispondenza, il set di risultati conterrà valori NULL.
37. Cos'è un indice?
Un indice di database è una struttura di dati che migliora la velocità delle operazioni di recupero dei dati su una tabella di database al costo di scritture aggiuntive e dell'utilizzo di più spazio di archiviazione per mantenere la copia aggiuntiva dei dati. I dati possono essere memorizzati solo in un ordine su un disco. Per supportare un accesso più rapido in base a valori diversi, è auspicabile una ricerca più rapida come una ricerca binaria per valori diversi. A questo scopo vengono creati degli indici sulle tabelle. Questi indici richiedono spazio aggiuntivo sul disco, ma consentono una ricerca più rapida in base ai diversi valori cercati di frequente.
38. Qual è il vincolo a cascata On Elimina?
Un vincolo 'ON DELETE CASCADE' viene utilizzato in MySQL per eliminare automaticamente le righe dalla tabella figlia quando vengono eliminate le righe dalla tabella genitore. Per maggiori dettagli, leggere MySQL – On Elimina vincolo Cascade articolo.
immagine come sfondo in css
39. Spiegare la clausola WITH in SQL?
La clausola WITH fornisce una relazione di tipo per definire una relazione temporanea la cui definizione è disponibile solo per la query in cui ricorre la clausola with. SQL applica i predicati nella clausola WITH dopo che i gruppi sono stati formati, pertanto è possibile utilizzare funzioni aggregate.
40. Quali sono tutti i diversi attributi degli indici?
L'indicizzazione ha vari attributi:
- Tipi di accesso : si riferisce al tipo di accesso come ricerca basata sul valore, accesso all'intervallo, ecc.
- Orario di accesso : Si riferisce al tempo necessario per trovare un particolare elemento di dati o insieme di elementi.
- Orario di inserimento : Si riferisce al tempo impiegato per trovare lo spazio appropriato e inserire nuovi dati.
- Orario di eliminazione : è necessario del tempo per trovare un elemento ed eliminarlo, nonché per aggiornare la struttura dell'indice.
- Spazio in alto : Si riferisce allo spazio aggiuntivo richiesto dall'indice.
41. Cos'è un cursore?
Il cursore è una memoria temporanea o una stazione di lavoro temporanea. Viene allocato dal server database al momento dell'esecuzione di operazioni DML sulla tabella da parte dell'utente. I cursori vengono utilizzati per memorizzare le tabelle del database.
42. Annotare vari tipi di relazioni in SQL?
Esistono varie relazioni, vale a dire:
- Relazione uno a uno.
- Relazioni da uno a molti.
- Relazione molti a uno.
- Relazione autoreferenziale.
43. Cos'è un fattore scatenante?
Il grilletto è un'istruzione che un sistema esegue automaticamente quando viene apportata una modifica al database. In un trigger, specifichiamo prima quando deve essere eseguito il trigger e poi l'azione da eseguire quando il trigger viene eseguito. I trigger vengono utilizzati per specificare determinati vincoli di integrità e vincoli referenziali che non possono essere specificati utilizzando il meccanismo di vincolo di SQL.
44. Qual è la differenza tra i comandi SQL DELETE e SQL TRUNCATE?
ELIMINA SQL | TRONCAMENTO SQL |
---|---|
L'istruzione DELETE rimuove le righe una alla volta e registra una voce nel log delle transazioni per ogni riga eliminata. | TRUNCATE TABLE rimuove i dati deallocando le pagine di dati utilizzate per archiviare i dati della tabella e registra solo le deallocazioni di pagina nel registro delle transazioni. |
Il comando DELETE è più lento del comando IdentityTRUNCATE. | Mentre il comando TRUNCATE è più veloce del comando DELETE. |
Per utilizzare Elimina è necessaria l'autorizzazione DELETE sulla tabella. | Per utilizzare Truncate su una tabella abbiamo bisogno almeno dell'autorizzazione ALTER sulla tabella. |
L'identità della colonna mantiene l'identità dopo aver utilizzato l'istruzione DELETE sulla tabella. | L'identità della colonna viene reimpostata sul valore seed se la tabella contiene una colonna Identity. |
L'eliminazione può essere utilizzata con le viste indicizzate. | Non è possibile utilizzare il troncamento con le viste indicizzate. |
45. Qual è la differenza tra indice cluster e indice non cluster?
INDICE CLUSTERATO | INDICE NON CLUSTERATO |
---|---|
L'indice cluster è più veloce. | L'indice non cluster è più lento. |
L'indice cluster richiede meno memoria per le operazioni. | L'indice non cluster richiede più memoria per le operazioni. |
In un indice cluster, l'indice rappresenta i dati principali. | Nell'indice non cluster, l'indice è una copia dei dati. |
Una tabella può avere un solo indice cluster. | Una tabella può avere più indici non cluster. |
L'indice cluster ha la capacità intrinseca di archiviare dati sul disco. | L'indice non cluster non ha la capacità intrinseca di archiviare dati sul disco. |
Gli indici cluster memorizzano i puntatori per bloccare non i dati. | L'indice non cluster memorizza sia il valore che un puntatore alla riga effettiva che contiene i dati. |
Nei nodi foglia dell'indice cluster sono i dati effettivi stessi. | In un indice non cluster, i nodi foglia non sono i dati effettivi ma contengono solo colonne incluse. |
Nell'indice cluster, la chiave cluster definisce l'ordine dei dati all'interno della tabella. | Nell'indice non cluster, la chiave dell'indice definisce l'ordine dei dati all'interno dell'indice. |
Un indice cluster è un tipo di indice in cui i record della tabella vengono riordinati fisicamente per corrispondere all'indice. | Un indice non cluster è un tipo speciale di indice in cui l'ordine logico dell'indice non corrisponde all'ordine fisico memorizzato delle righe sul disco. |
Per maggiori dettagli fare riferimento Differenza tra l'indice cluster e l'indice no cluster articolo.
46. Cos'è un Live Lock?
Livelock si verifica quando due o più processi ripetono continuamente la stessa interazione in risposta a cambiamenti negli altri processi senza svolgere alcun lavoro utile. Questi processi non sono nello stato di attesa e vengono eseguiti contemporaneamente. Questo è diverso da un deadlock perché in un deadlock tutti i processi sono nello stato di attesa.
47. Cos'è Case WHEN in SQL?
Le istruzioni di controllo costituiscono una parte importante della maggior parte dei linguaggi poiché controllano l'esecuzione di altri insiemi di istruzioni. Questi si trovano anche in SQL e dovrebbero essere sfruttati per usi come il filtraggio e l'ottimizzazione delle query attraverso un'attenta selezione delle tuple che soddisfano i nostri requisiti. In questo post esploriamo l'istruzione Case-Switch in SQL. L'istruzione CASE è il modo in cui SQL gestisce la logica if/then.
Sintassi 1:
CASE valore_case WHEN valore_quando THEN elenco_istruzioni [WHEN valore_quando THEN elenco_istruzioni] … [ELSE elenco_istruzioni]END CASE
Sintassi 2:
CASE WHEN condizione_ricerca THEN elenco_istruzioni [WHEN condizione_ricerca THEN elenco_istruzioni] … [ELSE elenco_istruzioni]END CASE
Per maggiori dettagli si prega di leggere il SQL | Dichiarazione del caso articolo.
Domande e risposte per interviste SQL avanzate
48. Nomina i diversi tipi di funzioni di manipolazione dei casi disponibili in SQL.
In SQL sono disponibili tre tipi di funzioni di manipolazione dei casi. Sono,
- INFERIORE : Lo scopo di questa funzione è restituire la stringa in minuscolo. Prende una stringa come argomento e restituisce la stringa convertendola in lettere minuscole.
Sintassi:
LOWER('stringa')
- SUPERIORE : Lo scopo di questa funzione è restituire la stringa in maiuscolo. Prende una stringa come argomento e restituisce la stringa convertendola in maiuscolo.
Sintassi:
SUPERIORE('stringa')
- INITCAP : Lo scopo di questa funzione è restituire la stringa con la prima lettera maiuscola e il resto delle lettere minuscole.
Sintassi:
INITCAP('stringa')
49. Quali sono le variabili locali e globali e le loro differenze?
Variabile globale: Al contrario, le variabili globali sono variabili definite al di fuori delle funzioni. Queste variabili hanno ambito globale, quindi possono essere utilizzate da qualsiasi funzione senza passarle alla funzione come parametri.
Variabile locale: Le variabili locali sono variabili definite all'interno delle funzioni. Hanno ambito locale, il che significa che possono essere utilizzati solo all'interno delle funzioni che li definiscono.
50. Nomina la funzione che viene utilizzata per rimuovere gli spazi alla fine di una stringa?
In SQL, gli spazi alla fine della stringa vengono rimossi da una funzione trim.
Sintassi:
Rifiniture, Dove s è una stringa qualsiasi.
51. Qual è la differenza tra le istruzioni TRUNCATE e DROP?
DROP SQL | TRONCARE |
---|---|
Il comando DROP viene utilizzato per rimuovere la definizione della tabella e il suo contenuto. | Mentre il comando TRUNCATE viene utilizzato per eliminare tutte le righe dalla tabella. |
Nel comando DROP, il tablespace viene liberato dalla memoria. | Mentre il comando TRUNCATE non libera lo spazio della tabella dalla memoria. |
DROP è un comando DDL (Data Definition Language). | Considerando che TRUNCATE è anche un comando DDL (Data Definition Language). |
Nel comando DROP non esiste una vista della tabella. | Mentre in questo comando esiste una vista della tabella. |
Nel comando DROP, i vincoli di integrità verranno rimossi. | Durante l'utilizzo di questo comando, i vincoli di integrità non verranno rimossi. |
Nel comando DROP non viene utilizzato lo spazio di annullamento. | In questo comando viene utilizzato lo spazio Annulla, ma inferiore a DELETE. |
Il comando DROP è rapido da eseguire ma dà luogo a complicazioni. | Mentre questo comando è più veloce di DROP. |
Per maggiori dettagli, leggere la differenza tra RILASCIA e TRONCA dentro IL SQL articolo.
52. Quale operatore viene utilizzato nelle query per la corrispondenza dei modelli?
Operatore LIKE: viene utilizzato per recuperare i dati filtrati cercando un modello particolare nella clausola where.
Sintassi:
SELECT colonna1, colonna2 FROM nome_tabella WHERE nome_colonna LIKE modello;
LIKE: nome dell'operatore
53. Definire l'ordine SQL tramite l'istruzione?
L'istruzione ORDER BY in SQL viene utilizzata per ordinare i dati recuperati in ordine crescente o decrescente in base a una o più colonne.
- Per impostazione predefinita ORDER BY ordina i dati ordine ascendente.
- Possiamo utilizzare la parola chiave DESC per ordinare i dati in ordine decrescente e la parola chiave ASC per ordinarli in ordine crescente.
Per maggiori dettagli leggere SQL | ORDINATO DA articolo.
54. Spiegare l'istruzione SQL Have?
HAVING viene utilizzato per specificare una condizione per un gruppo o una funzione aggregata utilizzata nell'istruzione select. La clausola WHERE seleziona prima del raggruppamento. La clausola HAVING seleziona le righe dopo il raggruppamento. A differenza della clausola HAVING, la clausola WHERE non può contenere funzioni aggregate. Vedere Clausola Avere vs Dove?
55. Spiegare l'istruzione SQL AND OR con un esempio?
In SQL, gli operatori AND e OR vengono utilizzati per filtrare i dati e ottenere risultati precisi in base alle condizioni. Gli operatori AND e OR vengono utilizzati con la clausola WHERE.
Questi due operatori sono chiamati operatori congiuntivi .
- Operatore AND: Questo operatore visualizza solo i record in cui entrambe le condizioni la condizione 1 e la condizione 2 restituiscono True.
- O Operatore: Questo operatore visualizza i record in cui una delle condizioni condizione 1 e condizione 2 restituisce True. Questo è, o la condizione1 è vera oppure la condizione2 è vera.
Per maggiori dettagli si prega di leggere il SQL | AND e OR articolo sugli operatori.
56. Definire le istruzioni BETWEEN in SQL?
La condizione SQL BETWEEN consente di verificare facilmente se un'espressione rientra in un intervallo di valori (incluso). I valori possono essere testo, data o numeri. Può essere utilizzato in un'istruzione SELECT, INSERT, UPDATE o DELETE. La condizione SQL BETWEEN restituirà i record in cui l'espressione è compresa nell'intervallo compreso tra valore1 e valore2.
Per maggiori dettagli leggere SQL | Tra & I operatore articolo.
57. Perché utilizziamo i comandi Commit e Rollback?
COMMETTERE | ROLLBACK |
---|---|
COMMIT salva permanentemente le modifiche apportate dalla transazione corrente. | ROLLBACK annulla le modifiche apportate dalla transazione corrente. |
La transazione non può annullare le modifiche dopo l'esecuzione del COMMIT. | La transazione raggiunge il suo stato precedente dopo il ROLLBACK. |
Quando la transazione ha esito positivo, viene applicato COMMIT. | Quando la transazione viene interrotta, si verifica il ROLLBACK. |
Per maggiori dettagli si prega di leggere il Differenza tra commit e rollback in SQL articolo.
58. Quali sono le proprietà dell'ACIDO?
UN transazione è una singola unità logica di lavoro che accede ed eventualmente modifica il contenuto di un database. Le transazioni accedono ai dati utilizzando operazioni di lettura e scrittura. Per mantenere la coerenza in un database, prima e dopo la transazione, vengono seguite alcune proprietà. Questi sono chiamati ACIDO proprietà. ACIDO (Atomicità, Coerenza, Isolamento, Durabilità) è un insieme di proprietà che garantiscono che le transazioni del database vengano elaborate in modo affidabile. Per maggiori dettagli leggere Proprietà dell'ACIDO in IL DBMS articolo.
59. I valori NULL sono uguali a zero o a uno spazio vuoto?
In SQL, lo zero o lo spazio vuoto possono essere confrontati con un altro zero o spazio vuoto. mentre un nulla può non essere uguale a un altro nullo. null significa che i dati potrebbero non essere forniti o non ci sono dati.
60. Qual è la necessità delle funzioni di gruppo in SQL?
Nella gestione del database, le funzioni di gruppo, note anche come funzioni aggregate, sono una funzione in cui i valori di più righe vengono raggruppati insieme come input in base a determinati criteri per formare un singolo valore di significato più significativo.
Varie funzioni di gruppo
1) Count() 2) Sum() 3) Avg() 4) Min() 5) Max()>
Per maggiori dettagli si prega di leggere il Funzioni aggregate nell'SQL articolo.
61. Qual è la necessità di una dichiarazione MERGE?
IL UNISCI Il comando in SQL è in realtà una combinazione di tre istruzioni SQL: INSERISCI, AGGIORNA ed ELIMINA . In parole semplici, l'istruzione MERGE in SQL fornisce un modo conveniente per eseguire tutte e tre le operazioni insieme, il che può essere molto utile quando si tratta di gestire database in esecuzione di grandi dimensioni. Ma a differenza delle istruzioni INSERT, UPDATE e DELETE, l'istruzione MERGE richiede una tabella di origine per eseguire queste operazioni sulla tabella richiesta che viene chiamata tabella di destinazione. Per maggiori dettagli si prega di leggere il SQL | Dichiarazione UNISCI articolo.
62. Come puoi recuperare record comuni da due tabelle?
L'istruzione seguente potrebbe essere utilizzata per ottenere dati da più tabelle, quindi dobbiamo utilizzare il join per ottenere dati da più tabelle.
Sintassi:
SELEZIONA tabellanmae1.nomecolonna, nometabella2.colonnamae
DA tablenmae1
UNISCITI a nometabella2
ON tabellanmae1.nomecolonna = nometabella2.colonnamae
ORDINA PER nomecolonna;
Per maggiori dettagli ed esempi, leggere SQL | SELEZIONA i dati dalle tabelle multiple articolo.
63. Quali sono i vantaggi delle funzioni PL/SQL?
I vantaggi delle funzioni PL/SQL sono i seguenti:
- Possiamo effettuare una singola chiamata al database per eseguire un blocco di istruzioni. Pertanto, migliora le prestazioni rispetto all'esecuzione SQL più volte. Ciò ridurrà il numero di chiamate tra il database e l'applicazione.
- Possiamo dividere il lavoro complessivo in piccoli moduli il che diventa abbastanza gestibile, migliorando anche la leggibilità del codice.
- Promuove la riutilizzabilità.
- È sicuro poiché il codice rimane all'interno del database, nascondendo così i dettagli interni del database all'applicazione (utente). L'utente effettua solo una chiamata alle funzioni PL/SQL. Pertanto, la sicurezza e l’occultamento dei dati sono garantiti.
64. Qual è la query SQL per visualizzare la data corrente?
CURRENT_DATE ritorna alla data corrente. Questa funzione restituisce lo stesso valore se viene eseguita più di una volta in una singola istruzione, il che significa che il valore è fisso, anche se c'è un lungo ritardo tra il recupero delle righe in un cursore.
Sintassi:
DATA ODIERNA
O
DATA ODIERNA
65. Cosa sono i trigger nidificati?
Un trigger può anche contenere la logica INSERT, UPDATE e DELETE al suo interno, quindi quando il trigger viene attivato a causa della modifica dei dati può anche causare un'altra modifica dei dati, attivando così un altro trigger. Un trigger che contiene al suo interno la logica di modifica dei dati è chiamato trigger nidificato.
66. Come trovare le informazioni sui vincoli disponibili nella tabella?
In SQL Server il dizionario dei dati è un insieme di tabelle di database utilizzate per memorizzare informazioni sulla definizione di un database. È possibile utilizzare questi dizionari di dati per verificare i vincoli su una tabella già esistente e modificarli (se possibile). Per maggiori dettagli leggere SQL | Verifica del vincolo esistente su una tabella articolo.
67. Come possiamo evitare di ottenere voci duplicate in una query senza utilizzare la parola chiave distinti?
DISTINCT è utile in determinate circostanze, ma presenta degli svantaggi poiché può aumentare il carico sul motore di query per eseguire l'ordinamento (poiché deve confrontare il set di risultati con se stesso per rimuovere i duplicati). Possiamo rimuovere le voci duplicate utilizzando le seguenti opzioni:
- Rimuovi i duplicati utilizzando i numeri di riga.
- Rimuovi i duplicati utilizzando l'auto-unione.
- Rimuovi i duplicati utilizzando Raggruppa per.
Per maggiori dettagli, leggere SQL | Rimuovi i duplicati senza distinzioni articoli.
68. La differenza tra le funzioni NVL e NVL2?
Queste funzioni funzionano con qualsiasi tipo di dati e riguardano l'uso di valori null nell'elenco delle espressioni. Questi sono tutti a riga singola funzioni, ovvero fornire un risultato per riga.
NVL(espressione1, espressione2): In SQL, NVL() converte un valore null in un valore effettivo. I tipi di dati che possono essere utilizzati sono data, carattere e numero. I tipi di dati devono corrispondere tra loro. cioè expr1 ed expr2 devono essere dello stesso tipo di dati.
Sintassi:
NVL (espr1, espressione2)
NVL2(espressione1, espressione2, espressione3): La funzione NVL2 esamina la prima espressione. Se la prima espressione non è nulla, la funzione NVL2 restituisce la seconda espressione. Se la prima espressione è nulla, viene restituita la terza espressione, ovvero se expr1 non è nulla, NVL2 restituisce expr2. Se expr1 è null, NVL2 restituisce expr3. L'argomento expr1 può avere qualsiasi tipo di dati.
Sintassi:
NVL2 (espr1, espressione2, espressione3)
Per maggiori dettagli leggere Funzioni generali SQL | NVL, NVL2, DECODE, COALESCE, NULLIF, LNNVL , e NANVL articolo.
ssis
69. Qual è la differenza tra COALESCE() e ISNULL()?
COALESCE(): La funzione COALESCE in SQL restituisce la prima espressione non NULL tra i suoi argomenti. Se tutte le espressioni restituiscono null, la funzione COALESCE restituirà null.
Sintassi:
SELECT colonna/e, CAOLESCE(espressione_1,….,espressione_n)FROM nome_tabella;
È ZERO(): La funzione ISNULL ha usi diversi in SQL Server e MySQL. In SQL Server, la funzione ISNULL() viene utilizzata per sostituire i valori NULL.
Sintassi:
SELECT colonna/e, ISNULL(nome_colonna, valore_da_sostituire)FROM nome_tabella;
Per maggiori dettagli, leggere il SQL | Funzioni nulle articolo.
70. Nominare l'operatore utilizzato nella query per aggiungere due stringhe?
In SQL per aggiungere due stringhe viene utilizzato l'operatore Concentrazione e il suo simbolo è || .
Conclusione
In conclusione, padroneggiare le domande del colloquio SQL è fondamentale per analisti di dati, ingegneri di dati e analisti aziendali che mirano a eccellere nei rispettivi campi. Questo articolo ha fornito una serie completa di domande e risposte al colloquio SQL progettate per prepararti a fondo.
Comprendendo e praticando queste domande, migliorerai la tua capacità di affrontare in modo efficace le sfide poste nelle interviste relative a SQL, aprendo in definitiva la strada a una carriera di successo nella gestione e nell'analisi dei dati. Ricorda, ogni domanda è un'opportunità per dimostrare la tua abilità analitica e competenza tecnica, tratti essenziali per qualsiasi aspirante professionista in questi ruoli critici.