Einführung in SQL Joins Interview Fragen und Antworten

SQL wird als strukturierte Abfragesprache bezeichnet. Diese Sprache wurde ausschließlich für den Zugriff auf Datenbanken entwickelt und ist bei anderen Datenbanksprachen am beliebtesten. Mit SQL können wir Tabellen erstellen, Daten ändern, aktualisieren und löschen, je nach Geschäftsanforderung. Beginnen wir also mit den häufig gestellten Fragen zu SQL Joins-Interviews.

Im Folgenden finden Sie wichtige Fragen zu SQL Joins-Vorstellungsgesprächen, die in einem Interview gestellt werden

1. Was ist ein SQL-Join und warum benötigen wir ihn?

Antworten:
SQL-Joins werden verwendet, um Datensätze aus zwei oder mehr Tabellen in einem Datenbanksystem zu kombinieren. Ein Join bezieht sich auf das Kombinieren der Felder aus zwei oder mehr Tabellen unter Verwendung eines Werts, der allen Tabellen gemeinsam ist, wodurch die Anzahl der wiederholten Spalten und Daten, die in Spalten derselben Tabelle gespeichert sind, verringert wird. Wir benötigen Verknüpfungen, um Details zu den referenzierten Daten abzurufen. Dadurch wird eine logische Verbindung zwischen zwei oder mehr Tabellen hergestellt. Es ist notwendig, Daten effizient aus mehreren Tabellen abzurufen. Deshalb benötigen wir SQL-Joins.

2. Welche verschiedenen Arten von SQL-Joins gibt es? Eine kurze Einführung geben?

Antworten:
Es gibt insgesamt 5 Joins in SQL. Dies sind:

a.Inner Join ODER Join

Dies ist eine Art Join, bei dem alle Datensätze, die der Bedingung entsprechen, in zwei oder mehr als zwei Tabellen abgerufen werden und dann die Datensätze in allen Tabellen, die nicht übereinstimmen, nicht angezeigt werden. Es werden nur die übereinstimmenden Einträge von zwei oder mehr Tabellen angezeigt.

b.Outer Join

Es gibt drei Arten von Outer Joins:
1. LEFT Join oder LEFT Outer Join
Diese Art der Verknüpfung gibt alle Zeilen aus der linken Tabelle in Kombination mit den übereinstimmenden Datensätzen oder Zeilen aus der rechten Tabelle zurück.
Wenn keine übereinstimmenden Spalten vorhanden sind, werden NULL-Werte zurückgegeben.

2. RECHTE Verbindung oder RECHTE äußere Verbindung
Diese Art der Verknüpfung gibt alle Zeilen aus der rechten Tabelle in Kombination mit den übereinstimmenden Datensätzen oder Zeilen aus der linken Tabelle zurück.
Wenn keine übereinstimmenden Spalten vorhanden sind, werden NULL-Werte zurückgegeben.

3. Vollständiger Beitritt oder vollständiger äußerer Beitritt
Diese Art von JOIN kombiniert Right Outer Join mit Left Outer Join. Es zeigt Datensätze aus den Tabellen an, wenn die Bedingungen erfüllt sind, und zeigt den NULL-Wert an, wenn keine Übereinstimmung vorliegt.

c.Natural Join
Diese Art der Verknüpfung hat zwei Bedingungen: Erstens werden doppelte Datensätze aus dem Ergebnis entfernt, und zweitens wird diese Verknüpfung für alle gleichnamigen Spalten durchgeführt, um die Gleichheit zu gewährleisten.

d.Cross Join
Diese Art der Verknüpfung ergibt das kartesische Produkt der zwei oder mehr beteiligten Tabellen.

e.Self-Join
Es ist fast dasselbe wie der innere Join, aber es ist eher ein Join einer Tabelle mit sich selbst.

3. Was sind verschachtelte Joins in SLQ?

Antworten:
Diese Art der Verknüpfung funktioniert für jedes Tupel in der äußeren Verknüpfungsrelation. Anschließend wird die gesamte innere Verknüpfungsrelation durchsucht und alle Tupel hinzugefügt, die der Verknüpfungsbedingung entsprechen, und das Ergebnis wird angezeigt.

4. Was ist Merge Join in SQL?

Antworten:
Der Merge-Join (auch als Sort-Merge-Join bezeichnet) ist ein Join-Prozess, der in der Anwendung eines relationalen Datenbankverwaltungssystems verwendet wird. Der grundlegende Trick eines Verknüpfungsprozesses besteht darin, jeden eindeutigen Wert des Verknüpfungsattributs zu finden, die Menge der Tupel in jeder Beziehung, die diesen Wert ausgibt.

5. Was ist ein Hash-Join in SQL? wie man es benutzt

Antworten:
Diese Art der Verknüpfung hat wie alle Verknüpfungsalgorithmen zwei Eingaben, die erste ist die Build-Eingabe, dh die äußere Tabelle, und die zweite ist die Probe-Eingabe, dh die innere Tabelle. Das Abfrageoptimierungsprogramm teilt die Rollen so zu, dass die kleinere der beiden oben genannten Eingaben die Build-Eingabe ist. Die Variante des Hash-Joins kann deduplizieren, dh entfernen und gruppieren, z. B. Sum (col1) Group-By Id. Diese Aktualisierungen werden nur für einen Eingang sowie für den Build- und den Probe-Teil verwendet.
Die folgende Abfrage ist ein Beispiel für einen Hash-Join:

SELECT a. Name Als AName, b. Name Als BName
AB P.Produkt p
JOIN P.ProductSub ps
ON p.ID = ps.ID
ORDER BY p.Name, ps. Name

6. Wie sollten Daten strukturiert sein, um Verknüpfungsvorgänge in einer Eins-zu-Viele-Beziehung auszuführen, und was ist mit einer Viele-zu-Viele-Beziehung?

Antworten:
Dieser ist etwas kniffliger und eine interessante Frage zum Datenbankdesign.
Im Allgemeinen werden Eins-zu-Viele-Beziehungen mit einem einzigen FOREIGNKEY strukturiert. Betrachten Sie unser Beispiel für Kunden und Bestellungen oben:

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

Dies ist eine Eins-zu-Viele-Beziehung, da ein Kunde mehrere Bestellungen aufgeben kann, eine Bestellung jedoch nicht mehreren Kunden zugeordnet werden kann. Als solches haben wir es mit einem einfachen Fremdschlüssel in der Auftragstabelle definiert, der auf eine bestimmte customer_id verweist, und wir können JOIN-Klauseln in unseren SELECT-Abfragen ziemlich einfach verwenden.
Viele-zu-viele-Beziehungen sind etwas komplizierter. Was wäre zum Beispiel, wenn wir eine Auftragstabelle und eine Produkttabelle mit einer Viele-zu-Viele-Beziehung hätten: Jede Bestellung kann mehrere Produkte enthalten, und jedes Produkt kann mehreren Aufträgen zugewiesen werden. Wie würden wir unsere Datenbank strukturieren?
Die Antwort: Wir verwenden eine zwischengeschaltete Zuordnungstabelle mit zwei AUSLÄNDISCHEN SCHLÜSSELN. Folgendes berücksichtigen:

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

Oben haben wir eine separate Tabelle mit dem Namen products_to_orders erstellt, die Elemente in der Produkttabelle Elementen in der Auftragstabelle zuordnet. Jede Zeile in unserer Tabelle products_to_orders stellt eine Produkt-Bestellungs-Kombination dar, sodass mehrere Produkte einer Bestellung zugeordnet werden können - und ein einzelnes Produkt mehreren Bestellungen zugeordnet werden kann.
In diesem Beispiel müssen zwei JOIN-Anweisungen verwendet werden, um alle diese Tabellen miteinander zu verknüpfen: eine zum Verknüpfen von products_to_orders mit Produkten und eine zum Verknüpfen von products_to_orders mit Aufträgen.

Empfohlener Artikel

Dies ist ein grundlegender Leitfaden für Fragen und Antworten zu SQL Joins-Vorstellungsgesprächen, damit der Kandidat diese Fragen zu SQL Joins-Vorstellungsgesprächen leicht durchgreifen kann. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. TSQL Interview Fragen und Antworten
  2. Häufig gestellte Fragen zu NoSQL-Vorstellungsgesprächen
  3. Fragen zum XML-Interview
  4. Fragen zum manuellen Testen von Vorstellungsgesprächen