Introducere în SQL se alătură întrebărilor și răspunsurilor la interviu

SQL refer ca Structurat Query Language este un limbaj care este conceput în întregime pentru accesarea bazelor de date și este cel mai popular cu alte limbaje ale bazei de date. Cu SQL, putem crea tabele, modifica date, actualiza și șterge conform cerințelor de afaceri. Deci, să începem cu SQL-ul frecvent solicitat se alătură întrebărilor interviului.

Mai jos sunt setul important de întrebări de intervievare SQL Joins care sunt puse într-un interviu

1. Ce este o alăturare SQL și de ce avem nevoie?

Răspuns:
Combinările SQL sunt utilizate pentru a combina înregistrări din două sau mai mult de două tabele într-un sistem de baze de date. O îmbinare se referă la combinarea câmpurilor din două sau mai mult de două tabele, folosind o valoare comună pentru fiecare dintre tabele, care ajută la reducerea coloanelor repetate și a datelor stocate în coloanele aceleiași tabele. Avem nevoie de uniri pentru a obține detalii despre datele la care se face referire și creează o legătură logică între două sau mai multe tabele. Este necesar să obțineți date în mod eficient din mai multe tabele, de aceea avem nevoie de uniri SQL.

2. Care sunt diferitele tipuri de uniri SQL? Dă-le o scurtă introducere?

Răspuns:
Există în total 5 uniri în SQL, acestea sunt: ​​-

a.Inner Join sau Join

Acesta este un fel de unire în care obținem toate înregistrările care se potrivesc condiției în două sau mai mult de două tabele și apoi înregistrările din toate tabelele care nu se potrivesc nu sunt afișate. Afișează numai intrările potrivite a două sau mai multe tabele.

b. Alătura exterioară

Există trei tipuri de îmbinări exterioare:
1.LEFT Join sau LEFT Outer Join
Acest tip de unire va returna toate rândurile din tabelul din stânga în combinație cu înregistrările potrivite sau rândurile din tabelul din dreapta.
Dacă nu există coloane care se potrivesc, atunci acestea vor returna valorile NULL.

2. Alăturare DREPT sau Alăturare DREPT
Acest tip de unire va returna toate rândurile din tabelul din dreapta în combinație cu înregistrările potrivite sau rândurile din tabelul din stânga.
Dacă nu există coloane care se potrivesc, atunci acestea vor returna valorile NULL.

3. Alăturarea completă sau Alăturarea completă exterioară
Acest tip de ÎNREGISTRARE combină unirea exterioară dreaptă în plus față de Alătura exterioară stângă. Afișează înregistrări din tabele când sunt îndeplinite condițiile și afișează valoarea NULL atunci când nu există nicio potrivire.

c. Alătura naturală
Acest tip de unire are două condiții, mai întâi elimină înregistrările duplicatelor din rezultat și în al doilea rând această alăturare se va face pe toate coloanele cu același nume pentru egalitate.

d.Cross Join
Acest tip de unire oferă produsul cartezian al celor două sau mai mult de două tabele implicate.

e.Self-Alătură - te
Este aproape la fel ca unirea interioară, ci mai degrabă este o îmbinare a unei mese la sine.

3. Ce sunt unirile imbricate în SLQ?

Răspuns:
Acest tip de îmbinare funcționează pentru fiecare tuple din relația de unire exterioară, apoi scanează întreaga relație de unire interioară și adaugă orice tuple care se potrivește condiției de unire și rezultatul va fi afișat.

4. Ce este Merge Join în SQL?

Răspuns:
Unirea Merge (cunoscută și sub denumirea de sortare-îmbinare) este un proces de unire care este utilizat în aplicarea unui sistem relațional de gestionare a bazelor de date. Trucul de bază al unui proces de alăturare este de a găsi fiecare valoare unică a atributului de alăturare, setul de tupluri în fiecare relație care produce acea valoare.

5. Ce este un hash Join în SQL? cum să-l folosească?

Răspuns:
Acest tip de unire are două intrări precum toți algoritmii de unire, prima este intrarea de construire adică tabelul exterior și a doua este intrarea sondă, adică tabelul interior. Optimizatorul de interogări alocă rolurile astfel încât cea mai mică dintre cele două intrări de mai sus este intrarea de compilare. Varianta de hash join poate face deduplicare adică eliminarea și gruparea, cum ar fi Sum (col1) Group-By Id. Aceste actualizări sunt utilizate doar pentru o singură intrare și atât pentru piesele de compilare cât și pentru sondă.
Interogarea de mai jos este un exemplu de aderare hash: -

Alege o. Nume Ca nume, b. Nume ca BName
DIN P.Product p
ÎNSCRIEȚI-VĂ P.ProductSub ps
ON p.ID = ps.ID
COMANDĂ DE P.Nume, ps. Nume

6. Cum ar trebui structurate datele pentru a efectua operațiunile de alăturare într-o relație unu-la-mulți și ce spuneți despre o relație de la mulți la mulți?

Răspuns:
Acesta este un pic mai complicat și este o întrebare interesantă privind proiectarea bazelor de date.
În general, relațiile unu-la-multe sunt structurate folosind un singur FOREIGNKEY. Luați în considerare exemplul nostru de clienți și comenzi de mai sus:

CREATE TABLE customers (
customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
);

CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
customer_id INT NOT NULL,
order_placed_date DATE NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
);

Aceasta este o relație unu-la-mulți, deoarece un client poate plasa mai multe comenzi, dar o comandă nu poate fi atribuită mai multor clienți. Ca atare, am definit-o cu o simplă cheie străină în tabelul de comenzi care indică un client_id dat și putem folosi clauzele JOIN în interogările noastre SELECT destul de ușor.
Relațiile multe-la-multe sunt ceva mai complicate. De exemplu, ce se întâmplă dacă am avea un tabel de comenzi și un tabel de produse cu o relație multi-la-mulți: orice comandă poate conține mai multe produse și orice produs poate fi atribuit mai multor comenzi. Cum ne-am structura baza de date?
Răspunsul: folosim o tabelă de mapare intermediară cu două chei străine. Luați în considerare următoarele:

CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
order_placed_date DATE NOT NULL,
);

CREATE TABLE products (
product_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price INT NOT NULL
);

CREATE TABLE products_to_orders (
product_to_order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
order_id INT NOT NULL,
product_id INT NOT NULL,
FOREIGN KEY (order_id) REFERENCES orders(order_id),
FOREIGN KEY (product_id) REFERENCES products(product_id)
);

Mai sus, am creat o tabelă separată numită products_to_orders care mapează articolele din tabela produselor cu elementele din tabelul comenzilor. Fiecare rând din tabelul nostru products_to_orders reprezintă o combinație de produse-comandă, astfel încât mai multe produse pot fi atribuite la o singură comandă - și un singur produs poate fi atribuit mai multor comenzi.
În acest exemplu, trebuie să utilizăm două instrucțiuni JOIN pentru a conecta toate aceste tabele împreună: una pentru a conecta produsele_to_ordine la produse și una pentru a conecta produsele_to_ordine cu comenzi.

Articol recomandat

Acesta a fost un ghid de bază pentru lista întrebărilor și răspunsurilor la unirea SQL Joins, astfel încât candidatul să poată împărți cu ușurință aceste întrebări de interviu SQL Joins. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Întrebări și răspunsuri la interviu TSQL
  2. Întrebări de interviu NoSQL de mai sus
  3. Întrebări pentru interviu XML
  4. Întrebări de interviu de testare manuală