logo

Întrebări de interviu SQL

SQL este un limbaj standard de bază de date utilizat pentru accesarea și manipularea datelor din baze de date. Inseamna Limbajul de interogare structurat și a fost dezvoltat de IBM Computer Scientists în anii 1970. Prin executarea de interogări, SQL poate crea, actualiza, șterge și prelua date din baze de date precum MySQL, Oracle, PostgreSQL etc. În general, SQL este un limbaj de interogare care comunică cu bazele de date.

În acest articol, acoperim Peste 70 de întrebări pentru interviu SQL cu răspunsuri a întrebat în interviurile cu dezvoltatorii SQL la MAANG și alte companii bine plătite. Indiferent dacă sunteți un profesionist mai proaspăt sau cu experiență, cu 2, 5 sau 10 ani de experiență, acest articol vă oferă toată încrederea de care aveți nevoie pentru a obține succesul următorului interviu SQL.



Cuprins

Întrebări și răspunsuri la interviu SQL pentru cei în stare de proaspăt

1. Ce este SQL?

SQL înseamnă Structured Query Language. Este un limbaj folosit pentru a interacționa cu baza de date, adică pentru a crea o bază de date, pentru a crea un tabel în baza de date, pentru a prelua date sau a actualiza un tabel în baza de date etc. SQL este un standard ANSI (American National Standards Institute). Folosind SQL, putem face multe lucruri. De exemplu – putem executa interogări, putem insera înregistrări într-un tabel, putem actualiza înregistrări, putem crea o bază de date, putem crea un tabel, putem șterge un tabel etc.



2. Ce este o bază de date?

A Bază de date este definită ca o formă structurată de stocare a datelor într-un computer sau o colecție de date într-o manieră organizată și poate fi accesată în diferite moduri. Este, de asemenea, o colecție de scheme, tabele, interogări, vizualizări etc. Bazele de date ne ajută să stocăm, să accesăm și să manipulăm cu ușurință datele deținute pe un computer. Sistemul de management al bazei de date permite unui utilizator să interacționeze cu baza de date.

3. SQL acceptă caracteristicile limbajului de programare?

Este adevărat că SQL este un limbaj, dar nu acceptă programare deoarece nu este un limbaj de programare, este un limbaj de comandă. Nu avem instrucțiuni condiționale în SQL, cum ar fi buclele for sau if..else, avem doar comenzi pe care le putem folosi pentru a interoga, actualiza, șterge, etc. date din baza de date. SQL ne permite să manipulăm datele dintr-o bază de date.

4. Care este diferența dintre tipul de date CHAR și VARCHAR2 în SQL?

Ambele tipuri de date sunt folosite pentru caractere, dar varchar2 este folosit pentru șiruri de caractere de lungime variabilă, în timp ce char este folosit pentru șiruri de caractere de lungime fixă. De exemplu , dacă specificăm tipul ca char(5) atunci nu ni se va permite să stocăm un șir de altă lungime în această variabilă, dar dacă specificăm tipul acestei variabile ca varchar2(5), atunci ni se va permite să stocăm șiruri de lungime variabilă. Putem stoca un șir de lungime 3 sau 4 sau 2 în această variabilă.



5. Ce înțelegeți prin limbajul de definire a datelor?

Limbajul de definire a datelor sau DDL permite executarea de interogări precum CREATE, DROP și ALTER. Acestea sunt acele interogări care definesc datele.

6. Ce înțelegeți prin limbaj de manipulare a datelor?

Manipularea datelor Limbajul sau DML este folosit pentru a accesa sau manipula datele din baza de date. Ne permite să îndeplinim funcțiile enumerate mai jos:

  • Inserați date sau rânduri într-o bază de date
  • Ștergeți datele din baza de date
  • Preluați sau preluați date
  • Actualizați datele într-o bază de date.

7. Care este vizualizarea în SQL?

Vizualizări în SQL sunt un fel de masă virtuală. O vizualizare are, de asemenea, rânduri și coloane așa cum sunt pe un tabel real din baza de date. Putem crea o vizualizare selectând câmpuri din unul sau mai multe tabele prezente în baza de date. O vizualizare poate avea fie toate rândurile unui tabel, fie anumite rânduri în funcție de anumite condiții.

Instrucțiunea CREATE VIEW a SQL este utilizată pentru crearea vizualizărilor.

Sintaxă de bază:

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. Ce înțelegi prin cheie străină?

A Cheie externă este un câmp care poate identifica în mod unic fiecare rând dintr-un alt tabel. Și această constrângere este folosită pentru a specifica un câmp ca cheie externă. Acesta este acest câmp indică cheia primară a altui tabel. Acest lucru creează de obicei un fel de legătură între cele două tabele.

Luați în considerare cele două tabele așa cum se arată mai jos:

Comenzi

O_ID COMANDĂ NU C_ID
1 2253 3
2 3325 3
3 4521 2
4 8532 1

Clienți

C_ID NUME ABORDARE
1 RAMESH DELHI
2 SURESH NOIDA
3 DHARMESH GURGAON

După cum putem vedea clar, că câmpul C_ID din tabelul Comenzi este cheia principală din tabelul Clienți, adică identifică în mod unic fiecare rând din tabelul Clienți. Prin urmare, este o cheie externă în tabelul Comenzi.

Sintaxă:

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. Ce sunt tabelul și câmpul?

Masa: Un tabel are o combinație de rânduri și coloane. Rândurile se numesc înregistrări, iar coloanele se numesc câmpuri. În MS SQL Server, tabelele sunt desemnate în baza de date și în numele schemelor.

Camp: În DBMS, un câmp de bază de date poate fi definit ca – o singură informație dintr-o înregistrare.

10. Care este cheia primară?

A Cheia principala este una dintre cheile candidatului. Una dintre cheile candidate este selectată ca fiind cea mai importantă și devine cheia principală. Nu poate exista mai mult de o cheie primară într-un tabel.

11. Ce este o constrângere implicită?

The MOD IMPLICIT constrângerea este folosită pentru a umple o coloană cu valori implicite și fixe. Valoarea va fi adăugată la toate înregistrările noi atunci când nu este furnizată nicio altă valoare.

12. Ce este normalizarea?

Este un proces de analiză a schemelor de relații date pe baza dependențelor lor funcționale și a cheilor primare pentru a obține următoarele proprietăți dezirabile:

  1. Minimizarea redundanței
  2. Minimizarea anomaliilor de inserare, ștergere și actualizare

Schemele de relații care nu îndeplinesc proprietățile sunt descompuse în scheme de relații mai mici care ar putea îndeplini proprietățile dorite.

13. Ce este Denormalizarea?

Denormalizare este o tehnică de optimizare a bazei de date în care adăugăm date redundante la unul sau mai multe tabele. Acest lucru ne poate ajuta să evităm asocierile costisitoare într-o bază de date relațională. Rețineți că denormalizarea nu înseamnă că nu faceți normalizare. Este o tehnică de optimizare care se aplică după normalizare.

Într-o bază de date tradițională normalizată, stocăm datele în tabele logice separate și încercăm să minimizăm datele redundante. Ne putem strădui să avem o singură copie a fiecărei date din baza de date.

14. Ce este o interogare?

Un SQL interogarea este utilizată pentru a prelua datele necesare din baza de date. Cu toate acestea, pot exista mai multe interogări SQL care produc aceleași rezultate, dar cu niveluri diferite de eficiență. O interogare ineficientă poate epuiza resursele bazei de date, poate reduce viteza bazei de date sau poate duce la pierderea serviciului pentru alți utilizatori. Prin urmare, este foarte important să optimizați interogarea pentru a obține cea mai bună performanță a bazei de date.

15. Ce este o subinterogare?

În SQL, a Subinterogare poate fi definit pur și simplu ca o interogare în cadrul unei alte interogări. Cu alte cuvinte, putem spune că o subinterogare este o interogare care este încorporată în clauza WHERE a unei alte interogări SQL.

16. Care sunt diferiții operatori disponibili în SQL?

Există trei operatori disponibili în SQL și anume:

  1. Operatori aritmetici
  2. Operatori logici
  3. Operatori de comparație

17. Ce este o constrângere?

Constrângerile sunt regulile pe care le putem aplica tipului de date dintr-un tabel. Adică, putem specifica limita tipului de date care pot fi stocate într-o anumită coloană dintr-un tabel folosind constrângeri. Pentru mai multe detalii vă rugăm să consultați SQL|Constrângeri articol.

18. Ce este integritatea datelor?

Integritatea datelor este definită ca datele conținute în baza de date fiind atât corecte, cât și consecvente. În acest scop, datele stocate în baza de date trebuie să satisfacă anumite tipuri de proceduri (reguli). Datele dintr-o bază de date trebuie să fie corecte și consecvente. Deci, datele stocate în baza de date trebuie să satisfacă anumite tipuri de proceduri (reguli). DBMS oferă diferite moduri de implementare a unor astfel de tipuri de constrângeri (reguli). Acest lucru îmbunătățește integritatea datelor într-o bază de date. Pentru mai multe detalii vă rugăm să consultați diferența dintre securitatea și integritatea datelor articol.

19. Ce este Auto Increment?

Uneori, în timpul creării unui tabel, nu avem un identificator unic în tabel, prin urmare ne confruntăm cu dificultăți în alegerea cheii primare. Pentru a rezolva o astfel de problemă, trebuie să furnizăm manual chei unice pentru fiecare înregistrare, dar aceasta este adesea și o sarcină plictisitoare. Astfel, putem folosi caracteristica Auto-Increment care generează automat o valoare numerică a cheii primare pentru fiecare înregistrare nouă introdusă. Funcția de creștere automată este acceptată de toate bazele de date. Pentru mai multe detalii vă rugăm să consultați Incrementare automată SQL articol.

20. Ce este colarea MySQL?

O colare MySQL este un set bine definit de reguli care sunt folosite pentru a compara caracterele unui anumit set de caractere folosind codificarea corespunzătoare. Fiecare set de caractere din MySQL poate avea mai mult de o colare și are, cel puțin, o colare implicită. Două seturi de caractere nu pot avea aceeași colație. Pentru mai multe detalii vă rugăm să consultați Ce sunt colaționarea și setul de caractere în MySQL? articol.

21. Ce sunt funcțiile definite de utilizator?

Putem folosi funcții definite de utilizator în PL/SQL sau Java pentru a oferi funcționalități care nu sunt disponibile în funcțiile încorporate SQL sau SQL. Funcțiile SQL și funcțiile definite de utilizator pot apărea oriunde, adică oriunde apare o expresie.

De exemplu, poate fi folosit în:

  • Selectați o listă de instrucțiuni SELECT.
  • Condiția clauzei WHERE.
  • CONECTAȚI PENTRU, COMANDĂ PENTRU, ÎNCEPE CU și GROUP BY
  • Clauza VALUES a instrucțiunii INSERT.
  • Clauza SET a instrucțiunii UPDATE.

22. Care sunt toate tipurile de funcții definite de utilizator?

Funcțiile definite de utilizator permit oamenilor să-și definească propriile funcții T-SQL care pot accepta 0 sau mai mulți parametri și pot returna o singură valoare de date scalare sau un tip de date tabel.
Diferite tipuri de funcții definite de utilizator create sunt:

1. Funcție scalară definită de utilizator O funcție scalară definită de utilizator returnează unul dintre tipurile de date scalare. Tipurile de date text, imagine și marca temporală nu sunt acceptate. Acestea sunt tipurile de funcții definite de utilizator cu care majoritatea dezvoltatorilor sunt obișnuiți în alte limbaje de programare. Treceți 0 la mulți parametri și obțineți o valoare returnată.

2. Funcție definită de utilizator cu valori de tabel în linie O funcție definită de utilizator cu valori de tabel în linie returnează un tip de date de tabel și este o alternativă excepțională la o vizualizare, deoarece funcția definită de utilizator poate trece parametri într-o comandă de selecție T-SQL și, în esență, ne oferă o funcție parametrizată, non -vizualizare actualizabilă a tabelelor de bază.

3. Funcție definită de utilizator cu mai multe instrucțiuni Tabel-Valoare O funcție definită de utilizator cu mai multe instrucțiuni Tabel-Valoare returnează un tabel și este, de asemenea, o alternativă excepțională la o vizualizare, deoarece funcția poate suporta mai multe instrucțiuni T-SQL pentru a construi rezultatul final în care vizualizarea este limitată la o singură instrucțiune SELECT. De asemenea, capacitatea de a trece parametri într-o comandă de selectare TSQL sau într-un grup de ei ne oferă capacitatea, în esență, de a crea o vizualizare parametrizată, neactualizată a datelor din tabelele de bază. În cadrul comenzii create function trebuie să definiți structura tabelului care este returnată. După crearea acestui tip de funcție definită de utilizator, aceasta poate fi folosită în clauza FROM a unei comenzi T-SQL, spre deosebire de comportamentul găsit atunci când se utilizează o procedură stocată care poate returna și seturi de înregistrări.

23. Ce este o procedură stocată?

Proceduri stocate sunt create pentru a efectua una sau mai multe operațiuni DML pe baze de date. Nu este altceva decât un grup de instrucțiuni SQL care acceptă o anumită intrare sub formă de parametri și efectuează o anumită sarcină și poate returna sau nu o valoare. Pentru mai multe detalii, vă rugăm să consultați Proceduri stocate în SQL articol.

24. Ce sunt funcțiile agregate și scalare?

Pentru a efectua operațiuni pe date, SQL-ul are multe funcții încorporate, acestea sunt clasificate în două categorii și, în continuare, subcategorizate în șapte funcții diferite în fiecare categorie. Categoriile sunt:

  • Funcții agregate: Aceste funcții sunt folosite pentru a efectua operații din valorile coloanei și se returnează o singură valoare.
  • Funcții scalare: Aceste funcții se bazează pe intrarea utilizatorului, și acestea returnează o singură valoare.

Pentru mai multe detalii, vă rugăm să citiți SQL | Funcții (funcții agregate și scalare) articol.

25. Ce este o comandă ALIAS?

Aliasurile sunt numele temporare date unui tabel sau unei coloane în scopul unei anumite interogări SQL. Este folosit atunci când numele unei coloane sau al unui tabel este folosit altul decât numele inițial, dar numele modificat este doar temporar.

  • Aliasurile sunt create pentru a face numele tabelelor sau coloanelor mai lizibile.
  • Redenumirea este doar o modificare temporară, iar numele tabelului nu se schimbă în baza de date inițială.
  • Aliasurile sunt utile atunci când numele tabelelor sau coloanelor sunt mari sau nu foarte ușor de citit.
  • Acestea sunt preferate atunci când există mai multe tabele implicate într-o interogare.

Pentru mai multe detalii, vă rugăm să citiți SQL | Aliasuri articol.

26. Ce sunt comenzile Union, minus și Interact?

Setarea Operațiilor în SQL elimină tuplurile duplicate și pot fi aplicate numai relațiilor care sunt compatibile cu uniuni. Operațiunile de set disponibile în SQL sunt:

  • Set Union
  • Setați intersecția
  • Setați diferența

Operațiunea UNION: Această operație include toate tuplurile care sunt prezente în oricare dintre relații. De exemplu: Pentru a găsi toți clienții care au un împrumut sau un cont sau ambele la o bancă.

 SELECT CustomerName FROM Depositor   UNION   SELECT CustomerName FROM Borrower ;>

Operația de unire elimină automat duplicatele. Dacă toate duplicatele ar trebui să fie păstrate, se folosește UNION ALL în locul UNION.

variabilă java variabilă

Operațiunea INTERSECT: Această operație include tuplurile care sunt prezente în ambele relații. De exemplu: Pentru a găsi clienții care au un împrumut precum și un cont în bancă:

 SELECT CustomerName FROM Depositor   INTERSECT  SELECT CustomerName FROM Borrower ;>

Operația Intersect elimină automat duplicatele. Dacă toate duplicatele ar trebui să fie păstrate, se folosește INTERSECT ALL în locul INTERSECT.

CU EXCEPȚIA operatiunii: Această operație include tupluri care sunt prezente într-o relație, dar nu ar trebui să fie prezente într-o altă relație. De exemplu: pentru a găsi clienți care au un cont, dar fără împrumut la bancă:

 SELECT CustomerName FROM Depositor   EXCEPT  SELECT CustomerName FROM Borrower ;>

Operația Except elimină automat duplicatele. Dacă toate duplicatele ar trebui să fie păstrate, se folosește EXCEPT ALL în locul EXCEPT.

27. Ce este un T-SQL?

T-SQL este o abreviere pentru Transact Structure Query Language. Este un produs de la Microsoft și este o extensie a limbajului SQL care este folosit pentru a interacționa cu bazele de date relaționale. Se consideră că funcționează cel mai bine cu serverele Microsoft SQL. Instrucțiunile T-SQL sunt folosite pentru a efectua tranzacțiile către bazele de date. T-SQL are o importanță uriașă, deoarece toate comunicările cu o instanță a unui server SQL se fac prin trimiterea de instrucțiuni Transact-SQL către server. De asemenea, utilizatorii pot defini funcții folosind T-SQL.

Tipurile de funcții T-SQL sunt:

  • Agregat funcții.
  • Clasament funcții. Există diferite tipuri de funcții de clasare.
  • Set de rânduri funcţie.
  • Scalar funcții.

28. Ce este ETL în SQL?

ETL este un proces în Data Warehousing și reprezintă Extrage , Transforma, și Sarcină . Este un proces în care un instrument ETL extrage datele din diverse sisteme surse de date, le transformă în zona de pregătire și apoi, în final, le încarcă în sistemul Data Warehouse. Acestea sunt trei funcții de bază de date care sunt încorporate într-un singur instrument pentru a extrage date dintr-o bază de date și a pune date într-o altă bază de date.

29. Cum se copiază tabele în SQL?

Uneori, în SQL, trebuie să creăm o copie exactă a unui tabel deja definit (sau creat). MySQL vă permite să efectuați această operație. Pentru că este posibil să avem nevoie de astfel de tabele duplicate pentru a testa datele fără a avea niciun impact asupra tabelului original și a datelor stocate în acesta.

CREATE TABLE Contact List(Clone_1) LIKE Original_table;>

Pentru mai multe detalii, vă rugăm să citiți Tabelul de clonare în cel MySQL articol.

30. Ce este injectarea SQL?

Injecția SQL este o tehnică folosită pentru a exploata datele utilizatorului prin intrări în paginile web prin injectarea comenzilor SQL ca instrucțiuni. Practic, aceste declarații pot fi folosite pentru a manipula serverul web al aplicației de către utilizatori rău intenționați.

  • Injectarea SQL este o tehnică de injectare a codului care vă poate distruge baza de date.
  • Injecția SQL este una dintre cele mai comune tehnici de hacking web.
  • Injecția SQL este plasarea de cod rău intenționat în instrucțiunile SQL, prin introducerea unei pagini web.

Pentru mai multe detalii, vă rugăm să citiți SQL | Injectare articol.

31. Putem dezactiva un declanșator? Dacă da, cum?

Da, putem dezactiva un declanșator în PL/SQL. Dacă luați în considerare dezactivarea temporară a unui declanșator și una dintre următoarele condiții este adevărată:

  • Un obiect la care face referire declanșatorul nu este disponibil.
  • Trebuie să efectuăm o încărcare mare de date și să dorim ca aceasta să continue rapid, fără a declanșa declanșatoare.
  • Încărcăm date în tabelul căruia i se aplică declanșatorul.
  • Dezactivăm un declanșator folosind instrucțiunea ALTER TRIGGER cu opțiunea DISABLE.
  • Putem dezactiva toate declanșatoarele asociate unui tabel în același timp folosind instrucțiunea ALTER TABLE cu opțiunea DISABLE ALL TRGGERS.

Întrebări și răspunsuri la interviu SQL intermediar

32. Care sunt diferențele dintre SQL și PL/SQL?

Câteva diferențe comune între SQL și PL/SQL sunt prezentate mai jos:

SQL

PL/SQL

SQL este un limbaj de execuție a interogărilor sau de comandă

PL/SQL este un limbaj de programare complet

SQL este un limbaj orientat pe date.

PL/SQL este un limbaj procedural

SQL este de natură foarte declarativă.

PL/SQL are o natură procedurală.

Este folosit pentru manipularea datelor.

Este folosit pentru crearea de aplicații.

Putem executa câte o instrucțiune în SQL

Putem executa blocuri de instrucțiuni în PL/SQL

SQL spune bazelor de date, ce să facă?

PL/SQL spune bazelor de date cum să facă.

Putem încorpora SQL în PL/SQL

Nu putem încorpora PL/SQL în SQL

33. Care este diferența dintre operatorii BETWEEN și IN din SQL?

ÎNTRE: The ÎNTRE operatorul este folosit pentru a prelua rânduri pe baza unui interval de valori.
De exemplu,

SELECT * FROM Students  WHERE ROLL_NO BETWEEN 20 AND 30;>

Această interogare va selecta toate acele rânduri din tabel. Elevii la care valoarea câmpului ROLL_NO este cuprinsă între 20 și 30.
ÎN: The ÎN operatorul este utilizat pentru a verifica valorile conținute în seturi specifice.
De exemplu,

SELECT * FROM Students  WHERE ROLL_NO IN (20,21,23);>

Această interogare va selecta toate acele rânduri din tabelul Students unde valoarea câmpului ROLL_NO este fie 20, fie 21, fie 23.

34. Scrieți o interogare SQL pentru a găsi numele angajaților care încep cu „A”.

Operatorul LIKE al SQL este utilizat în acest scop. Este folosit pentru a prelua date filtrate prin căutarea unui anumit model în clauza where.
Sintaxa pentru utilizarea LIKE este,

SELECT coloana1,coloana2 FROM nume_tabel WHERE nume_coloană LIKE model;

CA: numele operatorului

model: valoarea exactă extrasă din model pentru a obține date aferente în setul de rezultate.

Interogarea necesară este:

SELECT * FROM Employees WHERE EmpName like 'A%' ;>

Puteți consulta acest articol clauza WHERE pentru mai multe detalii despre operatorul LIKE.

35. Care este diferența dintre cheia primară și constrângerile unice?

Cheia primară nu poate avea valori NULL, constrângerile unice pot avea valori NULL. Există o singură cheie primară într-un tabel, dar pot exista mai multe constrângeri unice. Cheia primară creează automat indexul grupat, dar cheia unică nu.

36. Ce este un join în SQL? Care sunt tipurile de îmbinări?

O instrucțiune SQL Join este utilizată pentru a combina date sau rânduri din două sau mai multe tabele pe baza unui câmp comun între ele. Diferite tipuri de uniuni sunt:

  • INNER JOIN : cuvântul cheie INNER JOIN selectează toate rândurile din ambele tabele atâta timp cât condiția este îndeplinită. Acest cuvânt cheie va crea setul de rezultate combinând toate rândurile din ambele tabele în care condiția satisface, adică valoarea câmpului comun va fi aceeași.
  • LEFT JOIN : Această îmbinare returnează toate rândurile tabelului din partea stângă a îmbinării și rândurile care se potrivesc pentru tabelul din partea dreaptă a îmbinării. Pentru rândurile pentru care nu există un rând potrivit în partea dreaptă, setul de rezultate va fi nul. LEFT JOIN este cunoscută și sub numele de LEFT OUTER JOIN
  • ÎNSCRIEȚI DREPT : RIGHT JOIN este similar cu LEFT JOIN. Această îmbinare returnează toate rândurile tabelului din partea dreaptă a îmbinării și rândurile care se potrivesc pentru tabelul din partea stângă a îmbinării. Pentru rândurile pentru care nu există un rând potrivit în partea stângă, setul de rezultate va conține null. RIGHT JOIN este cunoscută și sub numele de RIGHT OUTER JOIN.
  • ALĂTURAREA COMPLETĂ : FULL JOIN creează setul de rezultate combinând rezultatele ambelor LEFT JOIN și RIGHT JOIN. Setul de rezultate va conține toate rândurile din ambele tabele. Pentru rândurile pentru care nu există potrivire, setul de rezultate va conține valori NULL.

37. Ce este un index?

Un index al bazei de date este o structură de date care îmbunătățește viteza operațiunilor de recuperare a datelor pe un tabel al bazei de date cu costul unor scrieri suplimentare și al utilizării unui spațiu de stocare mai mare pentru a menține o copie suplimentară a datelor. Datele pot fi stocate doar într-o singură ordine pe un disc. Pentru a sprijini accesul mai rapid în funcție de diferite valori, este de dorit o căutare mai rapidă, precum o căutare binară pentru diferite valori. În acest scop, se creează indici pe tabele. Acești indexuri au nevoie de spațiu suplimentar pe disc, dar permit căutarea mai rapidă în funcție de diferite valori căutate frecvent.

38. Ce este constrângerea în cascadă On Delete?

O constrângere „ON DELETE CASCADE” este utilizată în MySQL pentru a șterge automat rândurile din tabelul copil atunci când rândurile din tabelul părinte sunt șterse. Pentru mai multe detalii, vă rugăm să citiți MySQL – On Delete Cascade constraint articol.

39. Explicați clauza WITH în SQL?

Clauza WITH oferă o relație de mod de definire a unei relații temporare a cărei definiție este disponibilă numai pentru interogarea în care apare clauza with. SQL aplică predicate în clauza WITH după ce grupurile au fost formate, astfel încât funcțiile de agregare pot fi utilizate.

40. Care sunt toate atributele diferite ale indicilor?

Indexarea are diverse atribute:

  • Tipuri de acces : Se referă la tipul de acces, cum ar fi căutarea bazată pe valoare, accesul la intervale etc.
  • Timpul de acces : se referă la timpul necesar pentru a găsi un anumit element de date sau un set de elemente.
  • Timpul de inserare : Se referă la timpul necesar pentru a găsi spațiul adecvat și a introduce date noi.
  • Timp de ștergere : Este nevoie de timp pentru a găsi un articol și a-l șterge, precum și pentru a actualiza structura indexului.
  • Spațiu deasupra capului : Se referă la spațiul suplimentar cerut de index.

41. Ce este un cursor?

Cursorul este o memorie temporară sau o stație de lucru temporară. Este alocat de serverul bazei de date în momentul efectuării operațiunilor DML pe tabel de către utilizator. Cursorele sunt folosite pentru a stoca tabele de baze de date.

42. Scrieți diferite tipuri de relații în SQL?

Există diverse relații și anume:

  • Relația unu-la-unu.
  • Relații unul la mai multe.
  • Relația Multi la Unu.
  • Relație de auto-referință.

43. Ce este un declanșator?

Trăgaciul este o instrucțiune pe care un sistem o execută automat atunci când există vreo modificare a bazei de date. Într-un declanșator, mai întâi specificăm când declanșatorul urmează să fie executat și apoi acțiunea care trebuie efectuată atunci când declanșatorul se execută. Declanșatorii sunt utilizați pentru a specifica anumite constrângeri de integritate și constrângeri referențiale care nu pot fi specificate folosind mecanismul de constrângere al SQL.

44. Care este diferența dintre comenzile SQL DELETE și SQL TRUNCATE?

SQL DELETE

SQL TRUNCATE

Instrucțiunea DELETE elimină rândurile pe rând și înregistrează o intrare în jurnalul de tranzacții pentru fiecare rând șters. TRUNCATE TABLE îndepărtează datele prin dealocarea paginilor de date utilizate pentru a stoca datele din tabel și înregistrează numai dealocarea paginilor în jurnalul de tranzacții.
Comanda DELETE este mai lentă decât comanda identityTRUNCATE. În timp ce comanda TRUNCATE este mai rapidă decât comanda DELETE.
Pentru a utiliza Delete, aveți nevoie de permisiunea DELETE de pe tabel. Pentru a folosi Truncate pe un tabel avem nevoie de cel puțin permisiunea ALTER pe tabel.
Identitatea coloanei păstrează identitatea după utilizarea instrucțiunii DELETE pe tabel. Identitatea coloanei este resetată la valoarea sa de început dacă tabelul conține o coloană de identitate.
Ștergerea poate fi utilizată cu vizualizări indexate. Trunchierea nu poate fi utilizată cu vizualizările indexate.

45. Care este diferența dintre Indexul Cluster și Non-Cluster?

INDEX CLUSTERED INDEX NEGRUPAT
Indicele grupat este mai rapid. Indicele non-cluster este mai lent.
Indexul grupat necesită mai puțină memorie pentru operații. Indexul non-Clustered necesită mai multă memorie pentru operații.
Într-un index grupat, indexul este datele principale. În indexul non-clustered, indexul este o copie a datelor.
Un tabel poate avea un singur index grupat. Un tabel poate avea mai mulți indecși non-cluster.
Indexul grupat are o capacitate inerentă de a stoca date pe disc. Indexul non-Clustered nu are capacitatea inerentă de a stoca date pe disc.
Indecșii grupați stochează pointeri pentru a bloca, nu datele. Indexul non-Clustered stochează atât valoarea, cât și un pointer către rândul real care conține date.
În Clustered index nodurile frunză sunt datele reale în sine. Într-un index non-clustered, nodurile frunză nu sunt datele reale în sine, ci conțin doar coloane incluse.
În indexul Clustered, cheia Clustered definește ordinea datelor din tabel. În indexul non-clustered, cheia de index definește ordinea datelor din index.
Un index cluster este un tip de index în care înregistrările de tabel sunt reordonate fizic pentru a se potrivi cu indexul. Un index non-clustered este un tip special de index în care ordinea logică a indexului nu se potrivește cu ordinea fizică stocată a rândurilor de pe disc.

Pentru mai multe detalii vă rugăm să consultați Diferența dintre indexul Clustered și indicele No-Clustered articol.

46. ​​Ce este un Live Lock?

Livelock apare atunci când două sau mai multe procese repetă în mod continuu aceeași interacțiune ca răspuns la schimbările din celelalte procese, fără a face vreo muncă utilă. Aceste procese nu sunt în starea de așteptare și rulează concomitent. Acest lucru este diferit de un blocaj, deoarece într-un blocaj toate procesele sunt în starea de așteptare.

47. Ce este Case WHEN în SQL?

Declarațiile de control formează o parte importantă a majorității limbajelor, deoarece controlează execuția altor seturi de instrucțiuni. Acestea se găsesc și în SQL și ar trebui exploatate pentru utilizări precum filtrarea interogărilor și optimizarea interogărilor prin selecția atentă a tuplurilor care se potrivesc cerințelor noastre. În această postare, explorăm instrucțiunea Case-Switch în SQL. Instrucțiunea CASE este modul SQL de a gestiona logica if/then.

Sintaxa 1:

CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_list] … [ELSE statement_list]END CASE

Sintaxa 2:

CASE WHEN condiție_căutare THEN listă_instrucțiuni [WHEN condiție_căutare THEN listă_instrucțiuni] … [ELSE listă_instrucții]END CASE

Pentru mai multe detalii, vă rugăm să citiți SQL | Declarație de caz articol.

Întrebări și răspunsuri la interviu SQL avansat

48. Numiți diferite tipuri de funcții de manipulare a cazurilor disponibile în SQL.

Există trei tipuri de funcții de manipulare a cazurilor disponibile în SQL. Sunt,

  • INFERIOR : Scopul acestei funcții este de a returna șirul în litere mici. Ia un șir ca argument și returnează șirul transformându-l în litere mici.
    Sintaxă:

LOWER(‘șir’)

  • SUPERIOR : Scopul acestei funcții este de a returna șirul în majuscule. Ia un șir ca argument și returnează șirul transformându-l în majuscule.
    Sintaxă:

UPPER(‘șir’)

  • INITCAP : Scopul acestei funcții este de a returna șirul cu prima literă în majuscule și restul literelor în minuscule.
    Sintaxă:

INITCAP(‘șir’)

49. Care sunt variabilele locale și globale și diferențele lor?

Variabila globala: În schimb, variabilele globale sunt variabile care sunt definite în afara funcțiilor. Aceste variabile au sferă globală, astfel încât pot fi utilizate de orice funcție fără a le trece funcției ca parametri.

Variabila locala: Variabilele locale sunt variabile care sunt definite în cadrul funcțiilor. Au sferă locală, ceea ce înseamnă că pot fi utilizate numai în cadrul funcțiilor care le definesc.

50. Numiți funcția care este folosită pentru a elimina spațiile de la sfârșitul unui șir?

În SQL, spațiile de la sfârșitul șirului sunt eliminate de o funcție de tăiere.

Sintaxă:

Trim(e), Unde s este orice șir.

51. Care este diferența dintre instrucțiunile TRUNCATE și DROP?

SQL DROP TRUNCHIA
Comanda DROP este folosită pentru a elimina definiția tabelului și conținutul acesteia. În timp ce comanda TRUNCATE este folosită pentru a șterge toate rândurile din tabel.
În comanda DROP, spațiul de tabelă este eliberat din memorie. În timp ce comanda TRUNCATE nu eliberează spațiul tabelului din memorie.
DROP este o comandă DDL (Data Definition Language). În timp ce TRUNCATE este, de asemenea, o comandă DDL (Data Definition Language).
În comanda DROP, o vedere a tabelului nu există. În timpul acestei comenzi, există o vedere a tabelului.
În comanda DROP, constrângerile de integritate vor fi eliminate. În timpul acestei comenzi, constrângerile de integritate nu vor fi eliminate.
În comanda DROP, spațiul de anulare nu este utilizat. În timpul acestei comenzi, spațiul de anulare este folosit, dar mai puțin decât DELETE.
Comanda DROP se execută rapid, dar dă naștere la complicații. În timp ce această comandă este mai rapidă decât DROP.

Pentru mai multe detalii, vă rugăm să citiți Diferența dintre DROP și TRONCĂ cel SQL articol.

52. Ce operator este folosit în interogări pentru potrivirea modelelor?

Operatorul LIKE: este folosit pentru a prelua date filtrate prin căutarea unui anumit model în clauza where.

Sintaxă:

harta java

SELECT coloana1,coloana2 FROM nume_tabel WHERE nume_coloană LIKE model;

LIKE: numele operatorului

53. Definiți Ordinea SQL prin instrucțiune?

Instrucțiunea ORDER BY în SQL este folosită pentru a sorta datele preluate fie crescător, fie descendent, în funcție de una sau mai multe coloane.

  • În mod implicit, ORDER BY sortează datele ordine crescătoare.
  • Putem folosi cuvântul cheie DESC pentru a sorta datele în ordine descrescătoare și cuvântul cheie ASC pentru a sorta în ordine crescătoare.

Pentru mai multe detalii vă rugăm să citiți SQL | COMANDA PENTRU articol.

54. Explicați instrucțiunea SQL Având?

HAVING este folosit pentru a specifica o condiție pentru un grup sau o funcție agregată utilizată în instrucțiunea select. Clauza WHERE selectează înainte de grupare. Clauza HAVING selectează rândurile după grupare. Spre deosebire de clauza HAVING, clauza WHERE nu poate conține funcții agregate. Vedea Având vs Unde clauză?

55. Explicați instrucțiunea SQL ȘI SAU cu un exemplu?

În SQL, operatorii AND & OR sunt utilizați pentru filtrarea datelor și obținerea de rezultate precise în funcție de condiții. Operatorii AND și SAU sunt utilizați cu clauza WHERE.

Aceste doi operatori sunt numite operatori conjunctivi .

  1. AND Operator: Acest operator afișează numai acele înregistrări în care ambele condiții condiția 1 și condiția 2 se evaluează la Adevărat.
  2. SAU Operator: Acest operator afișează înregistrările în care oricare dintre condițiile condiția 1 și condiția 2 este evaluată la Adevărat. Acesta este, fie condiția1 este adevărată, fie condiția2 este adevărată.

Pentru mai multe detalii vă rugăm să citiți SQL | ȘI și SAU articol operatori.

56. Definiți instrucțiunile BETWEEN în SQL?

Condiția SQL BETWEEN vă permite să testați cu ușurință dacă o expresie se află într-un interval de valori (inclusiv). Valorile pot fi text, dată sau numere. Poate fi folosit într-o instrucțiune SELECT, INSERT, UPDATE sau DELETE. Condiția SQL BETWEEN va returna înregistrările în care expresia se află în intervalul value1 și value2.

Pentru mai multe detalii vă rugăm să citiți SQL | Operator între și eu articol.

57. De ce folosim comenzile Commit și Rollback?

COMMIT ROLLBACK
COMMIT salvează permanent modificările efectuate de tranzacția curentă. ROLLBACK anulează modificările făcute de tranzacția curentă.
Tranzacția nu poate anula modificările după executarea COMMIT. Tranzacția atinge starea anterioară după ROLLBACK.
Când tranzacția are succes, se aplică COMMIT. Când tranzacția este anulată, are loc ROLLBACK.

Pentru mai multe detalii vă rugăm să citiți Diferența dintre Commit și Rollback în SQL articol.

58. Care sunt proprietățile ACIDE?

A tranzacţie este o singură unitate logică de lucru care accesează și eventual modifică conținutul unei baze de date. Tranzacțiile accesează date utilizând operațiuni de citire și scriere. Pentru a menține consistența într-o bază de date, înainte și după tranzacție, sunt respectate anumite proprietăți. Acestea sunt numite ACID proprietăți. ACID (Atomicity, Consistency, Isolation, Durability) este un set de proprietăți care garantează că tranzacțiile cu bazele de date sunt procesate în mod fiabil. Pentru mai multe detalii vă rugăm să citiți Proprietăţile ACIDE în cel SGBD articol.

59. Sunt valorile NULL la fel cu zero sau cu un spațiu liber?

În SQL, zero sau spațiu liber poate fi comparat cu un alt zero sau spațiu liber. întrucât un nul poate să nu fie egal cu un altul nul. null înseamnă că este posibil ca datele să nu fie furnizate sau că nu există date.

60. Care este nevoie de funcții de grup în SQL?

În gestionarea bazelor de date, funcțiile de grup, cunoscute și sub denumirea de funcții agregate, sunt o funcție în care valorile mai multor rânduri sunt grupate împreună ca intrare pe anumite criterii pentru a forma o singură valoare cu o semnificație mai semnificativă.

Diverse funcții de grup

1) Count() 2) Sum() 3) Avg() 4) Min() 5) Max()>

Pentru mai multe detalii vă rugăm să citiți Funcții agregate în SQL articol.

61. Care este necesitatea unei declarații MERGE?

The COMBINA comanda în SQL este de fapt o combinație de trei instrucțiuni SQL: INSERT, UPDATE și DELETE . Cu cuvinte simple, instrucțiunea MERGE în SQL oferă o modalitate convenabilă de a efectua toate aceste trei operațiuni împreună, care poate fi de mare ajutor atunci când vine vorba de gestionarea bazelor de date mari care rulează. Dar, spre deosebire de instrucțiunile INSERT, UPDATE și DELETE, instrucțiunea MERGE necesită un tabel sursă pentru a efectua aceste operațiuni pe tabelul necesar, care este numit tabel țintă. Pentru mai multe detalii vă rugăm să citiți SQL | Declarație MERGE articol.

62. Cum puteți obține înregistrări comune din două tabele?

Declarația de mai jos ar putea fi folosită pentru a obține date din mai multe tabele, așa că trebuie să folosim join pentru a obține date din mai multe tabele.

Sintaxa:

SELECTează tablenmae1.coloană, tablename2.columnnmae

DIN tablenmae1

JOIN tablename2

ON tablenmae1.colunmnam = tablename2.columnnmae

ORDER BY coloană;

Pentru mai multe detalii și exemple, vă rugăm să citiți SQL | SELECTAȚI date din tabelele multiple articol.

63. Care sunt avantajele funcțiilor PL/SQL?

Avantajele funcțiilor PL / SQL sunt următoarele:

  • Putem efectua un singur apel la baza de date pentru a rula un bloc de instrucțiuni. Astfel, îmbunătățește performanța împotriva rulării SQL de mai multe ori. Acest lucru va reduce numărul de apeluri între baza de date și aplicație.
  • Putem împărți munca generală în module mici, care devin destul de ușor de gestionat, îmbunătățind și lizibilitatea codului.
  • Promovează reutilizarea.
  • Este sigur, deoarece codul rămâne în baza de date, ascunzând astfel detaliile interne ale bazei de date de aplicație (utilizator). Utilizatorul efectuează doar un apel la funcțiile PL/SQL. Prin urmare, securitatea și ascunderea datelor sunt asigurate.

64. Care este interogarea SQL pentru a afișa data curentă?

CURRENT_DATE revine la data curentă. Această funcție returnează aceeași valoare dacă este executată de mai multe ori într-o singură instrucțiune, ceea ce înseamnă că valoarea este fixă, chiar dacă există o întârziere mare între preluarea rândurilor dintr-un cursor.

Sintaxă:

DATA CURENTA

sau

DATA CURENTA

65. Ce sunt declanșatoarele imbricate?

Un declanșator poate conține, de asemenea, logica INSERT, UPDATE și DELETE în sine, astfel încât atunci când declanșatorul este declanșat din cauza modificării datelor, poate provoca și o altă modificare a datelor, declanșând astfel un alt declanșator. Un declanșator care conține logica de modificare a datelor în sine este numit declanșator imbricat.

66. Cum să găsiți informațiile disponibile despre constrângeri în tabel?

În SQL Server, Dicționar de date este un set de tabele de baze de date utilizate pentru a stoca informații despre definiția unei baze de date. Se pot folosi aceste dicționare de date pentru a verifica constrângerile unui tabel deja existent și pentru a le modifica (dacă este posibil). Pentru mai multe detalii vă rugăm să citiți SQL | Verificarea constrângerii existente pe un tabel articol.

67. Cum evităm să obținem intrări duplicate într-o interogare fără a folosi cuvântul cheie distinct?

DISTINCT este util în anumite circumstanțe, dar are dezavantaje că poate crește sarcina motorului de interogări pentru a efectua sortarea (deoarece trebuie să compare setul de rezultate cu el însuși pentru a elimina duplicatele). Putem elimina intrările duplicate folosind următoarele opțiuni:

  • Eliminați duplicatele folosind numerele de rând.
  • Eliminați duplicatele utilizând self-Join.
  • Eliminați duplicatele folosind gruparea după.

Pentru mai multe detalii, vă rugăm să citiți SQL | Eliminați duplicatele fără distincție articole.

68. Diferența dintre funcțiile NVL și NVL2?

Aceste funcții funcționează cu orice tip de date și se referă la utilizarea valorilor nule în lista de expresii. Toate acestea sunt pe un singur rând funcții, adică furnizați un rezultat pe rând.

NVL(expr1, expr2): În SQL, NVL() convertește o valoare nulă într-o valoare reală. Tipurile de date care pot fi utilizate sunt data, caracterul și numărul. Tipurile de date trebuie să se potrivească între ele. adică expr1 și expr2 trebuie să fie de același tip de date.

Sintaxă:

NVL (expr1, expr2)

NVL2(expr1, expr2, expr3): Funcția NVL2 examinează prima expresie. Dacă prima expresie nu este nulă, atunci funcția NVL2 returnează a doua expresie. Dacă prima expresie este nulă, atunci este returnată a treia expresie, adică dacă expr1 nu este nulă, NVL2 returnează expr2. Dacă expr1 este nulă, NVL2 returnează expr3. Argumentul expr1 poate avea orice tip de date.

Sintaxă:

NVL2 (expr1, expr2, expr3)

Pentru mai multe detalii vă rugăm să citiți Funcții generale SQL | NVL, NVL2, DECODARE, COALESCE, NULLIF, LNNVL , și NANVL articol.

69. Care este diferența dintre COALESCE() și ISNULL()?

COALESCE(): Funcția COALESCE din SQL returnează prima expresie non-NULL dintre argumentele sale. Dacă toate expresiile sunt evaluate ca nul, atunci funcția COALESCE va returna nul.
Sintaxă:

SELECT coloana(e), CAOLESCE(expresie_1,….,expresie_n)FROM table_name;

ISNULL(): Funcția ISNULL are utilizări diferite în SQL Server și MySQL. În SQL Server, funcția ISNULL() este utilizată pentru a înlocui valorile NULL.
Sintaxă:

SELECT coloana(ele), ISNULL(nume_coloană, valoare_de_înlocuit)FROM nume_tabel;

Pentru mai multe detalii, vă rugăm să citiți SQL | Funcții nule articol.

70. Numiți operatorul care este folosit în interogarea pentru adăugarea a două șiruri de caractere?

În SQL pentru adăugarea a două șiruri, se folosește operatorul Concentration și simbolul acestuia este || .

Concluzie

În concluzie, stăpânirea întrebărilor de interviu SQL este crucială pentru analiștii de date, inginerii de date și analiștii de afaceri care doresc să exceleze în domeniile lor respective. Acest articol a oferit un set cuprinzător de întrebări și răspunsuri la interviu SQL menite să vă pregătească temeinic.

Înțelegând și exersând aceste întrebări, vă îmbunătățiți capacitatea de a aborda în mod eficient provocările prezentate în interviurile legate de SQL, deschizând în cele din urmă calea pentru o carieră de succes în manipularea și analiza datelor. Amintiți-vă, fiecare întrebare este o oportunitate de a vă demonstra priceperea analitică și expertiza tehnică, trăsături esențiale pentru orice profesionist aspirant în aceste roluri critice.