Bevezetés az SQL csatlakozási kérdéseire és válaszaira

Az SQL Struktúrált Lekérdezési Nyelv olyan nyelv, amelyet teljes egészében az adatbázisok elérésére terveztek, és ez a legnépszerűbb a többi adatbázis nyelvnél. Az SQL segítségével táblákat készíthetünk, adatokat módosíthatunk, frissíthetünk és törölhetünk az üzleti követelményeknek megfelelően. Tehát kezdjük azzal, hogy a gyakran feltett SQL csatlakozik az interjúkérdésekhez.

Az alábbiakban bemutatjuk az interjú során feltett, az SQL csatlakozásával kapcsolatos interjúkérdések fontos sorozatát

1. Mi az SQL csatlakozás és miért van rá szükség?

Válasz:
Az SQL csatlakozásokat két vagy több táblából származó rekordok kombinálására használják az adatbázis-rendszerben. Az összekapcsolás arra utal, hogy a kettőből vagy kettőből több tábla mezőit egyesíti az egyes táblákra jellemző érték felhasználásával, amely elősegíti az ismétlődő oszlopok és az ugyanazon táblázat oszlopaiban tárolt adatok csökkentését. Csatlakozásokra van szükségünk a hivatkozott adatok részletezéséhez, és ez logikai kötést hoz létre két vagy több táblázat között. Szükség van az adatok hatékony kiszolgálására több táblából, ezért szükséges az SQL csatlakozás.

2. Melyek az SQL csatlakozások különféle típusai? Röviden bevezetjük őket?

Válasz:
Összesen 5 csatlakozás van az SQL-be, ezek: -

a.Belső csatlakozás VAGY csatlakozás

Ez egyfajta csatlakozás, ahol két vagy több táblában minden olyan rekordot megkapunk, amely megfelel a feltételnek, majd nem jelennek meg az összes táblában szereplő adatok, amelyek nem egyeztek. Csak kettő vagy több tábla megfelelő bejegyzését jeleníti meg.

b.Külső csatlakozás

Háromféle külső csatlakozás létezik:
1.LEFT csatlakozás vagy balra külső csatlakozás
Ez a fajta csatlakozás a bal oldali asztal összes sorát adja vissza, a megfelelő táblákhoz illő sorokkal vagy sorokkal együtt.
Ha nincsenek megfelelő oszlopok, akkor NULL értékeket ad vissza.

2.JOBB csatlakozás vagy JOBB külső csatlakozás
Ez a fajta csatlakozás visszatér az összes sorhoz a jobb oldali táblából, a megfelelő rekordokkal vagy a bal oldali táblából származó sorokkal együtt.
Ha nincsenek megfelelő oszlopok, akkor NULL értékeket ad vissza.

3. Teljes csatlakozás vagy teljes külső csatlakozás
Ez a fajta JOIN kombinálja a Jobb Külső Csatlakozást a Bal oldali Külső Csatlakozás mellett. Megjeleníti a táblázatok rekordjait, ha a feltételek teljesülnek, és a NULL értéket jeleníti meg, ha nincs egyezés.

c.Natural Csatlakozás
Az ilyen típusú összekapcsolásnak két feltétele van: az első eltávolítja az ismétlődő rekordokat az eredményből, másodszor pedig ez az összekapcsolás minden azonos oszlopú oszlopban megtörténik az egyenlőség érdekében.

d.Cross Join
Ez a fajta összekapcsolás a kettő vagy több asztal két részének derékszögű termékét adja.

e.Self-be
Ez majdnem ugyanaz, mint a belső illesztés, inkább egy asztal egyesítése önmagához.

3. Melyek a beágyazott csatlakozások az SLQ-ban?

Válasz:
Ez a fajta illesztés működik a külső illesztési reláció minden egyes illesztésénél, majd átvizsgálja a teljes belső illesztési relációt, és hozzáad minden olyan párosítást, amely megfelel az egyesítési feltételeknek, és az eredmény megjelenik.

4. Mi az egyesítés az SQL-ben?

Válasz:
Az Egyesítés összekapcsolás (más néven sort-merge join) összekapcsolási folyamat, amelyet egy Relációs Database Management System alkalmazásában használnak. A csatlakozási folyamat alapvető trükkje az egyesítési attribútum egyedi értékeinek, a párbeszédkészletnek az összes olyan összefüggésben történő megtalálása, amely azt az értéket adja ki.

5. Mi az a hash csatlakozás az SQL-hez? hogyan kell használni?

Válasz:
Ez a fajta illesztés két bemenettel rendelkezik, mint az összes illesztési algoritmus, az első a build bemenet, azaz a külső tábla, a második a szonda bemenet, azaz a belső tábla. A lekérdezés-optimalizáló úgy osztja el a szerepeket, hogy a fenti két bemenet közül a kisebb legyen a beépítési bemenet. A hash-illesztés variánsa deduplikációt hajthat végre, azaz eltávolítást és csoportosítást, például Sum (col1) Group-By Id. Ezeket a frissítéseket csak egy bemenetre, valamint mind a beépítési, mind a szonda alkatrészekre használják.
Az alábbi lekérdezés egy példa a hash-csatlakozásra: -

Válassz egy. Név: AName, b. Név: BName
P.Product-tól
JOIN P.ProductSub ps
BE p.ID = ps.ID
RENDELÉS P.Name, ps. Név

6. Hogyan kell az adatokat felépíteni ahhoz, hogy az egyesülési műveleteket elvégezzék egy-egy-sok kapcsolatban, és mi lenne a sok-sok-sok kapcsolatban?

Válasz:
Ez egy kicsit trükkösebb és érdekes adatbázis-tervezési kérdés.
Általában az egy-sok kapcsolat egyetlen FOREIGNKEY használatával van felépítve. Tekintse meg a fenti vásárlói és megrendelési példánkat:

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

Ez egy-egy-egy kapcsolat, mert egy ügyfél több megrendelést is képes tenni, de egy rendelés nem rendelhető egynél több ügyfélhez. Mint ilyen, egy egyszerű idegen kulccsal határoztuk meg a megrendelések táblájában, amely az adott kliens azonosítóra mutat, és a JOIN záradékokat a SELECT lekérdezéseinkben viszonylag könnyen felhasználhatjuk.
A sok-sok közötti kapcsolat egy kicsit bonyolultabb. Például mi lenne, ha rendelkezzen egy megrendelési táblázattal és egy sok-sok kapcsolatú terméktáblával: bármilyen megrendelés több terméket is tartalmazhat, és bármely termék hozzárendelhető több megrendeléshez. Hogyan strukturálnánk az adatbázisunk?
A válasz: Közvetítő térképtáblát használunk két KÜLÖNLEGES kulccsal. Tekintsük a következő:

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

Fent fent egy külön táblázatot hozott létre, melynek neve termékek_to_orders, amely a terméktáblán szereplő tételeket leképezi a megrendelési táblázatok elemeire. A Products_to_orders táblázat minden egyes sora egy termék-rendelés kombinációt képvisel, így több termék hozzárendelhető egy megrendeléshez - és egyetlen termék hozzárendelhető több megrendeléshez.
Ebben a példában két JOIN kijelentést kell használnunk, hogy összekapcsoljuk ezeket a táblázatokat: az egyiket a termékek_megrendelések és a termékek összekapcsolásához, a másikat a megrendelések összekapcsolásához.

Ajánlott cikk

Ez alapvető útmutató az SQL csatlakozási interjúkérdések és válaszok listájához, így a jelölt könnyen meg tudja oldani ezeket az SQL csatlakozási interjúkérdéseket. A következő cikkeket is megnézheti további információkért -

  1. TSQL interjú kérdések és válaszok
  2. A legnépszerűbb NoSQL interjúkérdések
  3. XML interjúkérdések
  4. Kézi tesztelési interjúkérdések