SQL Sissejuhatus liitub küsitluste ja vastustega

SQL-i viide struktureeritud päringukeelena on keel, mis on mõeldud täielikult andmebaasidele juurdepääsu saamiseks, ja see on teiste andmebaaside keelte seas kõige populaarsem. SQL-iga saame vastavalt ärinõuetele luua tabeleid, andmeid muuta, andmeid värskendada ja kustutada. Alustame siis korduma kippuvate SQL-idega, mis liituvad intervjuuküsimustega.

Allpool on toodud olulised SQL Liitumiste intervjuu küsimuste komplekt, mida küsitakse intervjuus

1. Mis on SQL liitumine ja miks me seda vajame?

Vastus:
SQL-i liitumisi kasutatakse kahe või enama tabeli kirjete ühendamiseks andmebaasisüsteemis. Liitmine tähendab kahe või enama tabeli väljade ühendamist, kasutades mõlemale tabelile ühist väärtust, mis aitab vähendada korduvaid veerge ja sama tabeli veergudesse salvestatud andmeid. Viidatud andmete üksikasjade saamiseks vajame liitumist ja see loob loogilise sideme kahe või enama tabeli vahel. Mitmelt tabelilt on vaja andmeid tõhusalt hankida, sellepärast vajamegi SQL-i liitumisi.

2. Millised on erinevad SQL-i liitumiste tüübid? Kas annate neile lühitutvustuse?

Vastus:
SQL-is on liitumisi kokku 5, need on: -

a.Sisene liitumine või liitumine

See on omamoodi liitumine, kus saame kõik tingimused vastavad kirjed kahes või enamas kahes tabelis ja siis kõigi tabelite kirjeid, mis ei vastanud, ei kuvata. See näitab ainult kahe või enama tabeli vastavaid kirjeid.

b.väline liitumine

Väliseid liitumisi on kolme tüüpi:
1.LEFT Liitu või VASAK välimist liitumist
Selline liitumine tagastab vasakpoolsest tabelist kõik read koos parempoolse tabeli vastavate kirjete või ridadega.
Kui vastavaid veerge pole, tagastab see NULL väärtused.

2.RIGHT Liitu või RIGHT Outer Liitu
Selline liitumine tagastab kõik parempoolse tabeli read koos vasakpoolse tabeli vastavate kirjete või ridadega.
Kui vastavaid veerge pole, tagastab see NULL väärtused.

3. Täielik liitumine või täielik välimine liitumine
Selline LIITUMINE ühendab lisaks vasakpoolsele liitumisele ka parema välimise liitumise. See kuvab tabelite kirjed, kui tingimused on täidetud, ja NULL-i väärtuse, kui vastet pole.

c.Loomulik liitumine
Sellisel liitmisel on kaks tingimust: esiteks eemaldatakse tulemustest duplikaatide kirjed ja teiseks tehakse see liitmine võrdsuse tagamiseks kõigil sama nimega veergudel.

d.Cross Liitu
Selline liitmine annab kahe või enama kaasatud tabeli parempoolse toote.

e.Self-Liitu
See on peaaegu sama kui sisemine liitumine, pigem on see laua endaga liitumine.

3. Mis on SLQ sisseehitatud liitumised?

Vastus:
Selline liitmine töötab iga välise liitumissuhte korral, siis skaneerib kogu sisemise liitumissuhte ja lisab kõik liitmistingimustele vastavad tüübid ja tulemus kuvatakse.

4. Mis on ühendamine SQL-is?

Vastus:
Ühenda liitumine (tuntud ka kui sort-merge join) on liitumisprotsess, mida kasutatakse relatsiooniandmebaasi haldussüsteemi rakendamisel. Liitumisprotsessi peamine trikk on leida ühinemisomaduste iga kordumatu väärtus, korduste kogum igas seostes, mis selle väärtuse väljastab.

5. Mis on räsi liitumine SQL-iga? kuidas seda kasutada?

Vastus:
Sellisel liitmisel on kaks sisendit, nagu kõigil liitmisalgoritmidel, esimene on ehituse sisend, st välimine tabel ja teine, sondi sisend, st sisemine tabel. Päringu optimeerija jaotab rollid nii, et kahest ülaltoodud sisendist väiksem on ehituse sisend. Räsiühenduse variandis saab teha deduktsiooni, st eemaldamise ja grupeerimise, näiteks Sum (col1) Group-By Id. Neid värskendusi kasutatakse ainult ühe sisendi jaoks ja nii ehituse kui ka sondi osade jaoks.
Allpool toodud päring on näide räsi liitumisest: -

VALI a. Nimi kui AName, b. Nimi kui BName
P.Produktist lk
LIITU P.ProductSub ps
SEES p.ID = ps.ID
TELLIMUS p.Name, ps. Nimi

6. Milliseid andmeid tuleks struktureerida liitumisoperatsioonide tegemiseks suhetes üks mitmega ja kuidas suhe paljude-mitmega?

Vastus:
See on natuke keerulisem ja on huvitav andmebaasi kujundamise küsimus.
Üldiselt struktureeritakse üks-mitmele seoseid ühe VÄLISKEY abil. Mõelge meie ülaltoodud klientide ja tellimuste näitele:

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)
);

See on suhe üks ühele, kuna üks klient saab esitada mitu tellimust, kuid ühte tellimust ei saa määrata rohkem kui ühele kliendile. Nagu näiteks, määratlesime selle tellimuste tabelis lihtsa võõra võtmega, mis osutab konkreetsele kliendi_id, ja saame oma SELECT-päringutes JOIN-klausleid kasutada üsna hõlpsalt.
Paljudevahelised suhted on natuke keerukamad. Näiteks mis juhtuks, kui meil oleks tellimustabel ja mitmest suhtest koosnev toodete tabel: iga tellimus võib sisaldada mitut toodet ja iga toote saab määrata mitmele tellimusele. Kuidas me oma andmebaasi struktureeriksime?
Vastus: me kasutame kahe VÄLISvõtme abil vahendavat kaardistamise tabelit. Mõelge järgmisele:

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)
);

Ülal oleme loonud eraldi tabeli nimega products_to_orders, mis kaardistab toodete tabelis olevad tooted tellimuste tabeli üksustele. Iga tabel tabelis products_to_orders tähistab ühte toote-tellimuse kombinatsiooni, nii et ühele tellimusele saab määrata mitu toodet - ja ühe toote saab määrata mitmele tellimusele.
Selles näites peame kõigi nende tabelite linkimiseks kasutama kahte JOIN-avaldust: ühte, et siduda tooted_korraldused toodetega ja teist linkida tellimustega tooted_ja_korraldusi.

Soovitatav artikkel

See on põhijuhend SQL-i liitumisküsimuste ja vastuste loendi loendisse, et kandidaat saaks neid SQL-i liitumiste intervjuu küsimusi hõlpsalt lahendada. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. TSQL-i intervjuu küsimused ja vastused
  2. Üles küsiti NoSQL-i intervjuu küsimusi
  3. XML-i intervjuu küsimused
  4. Küsimused käsitsi testimise kohta