Wprowadzenie do SQL łączy pytania i odpowiedzi podczas wywiadu

SQL określa się mianem Structured Query Language (język zapytań strukturalnych), który jest przeznaczony wyłącznie do uzyskiwania dostępu do baz danych i jest najpopularniejszy wśród innych języków baz danych. Za pomocą SQL możemy tworzyć tabele, zmieniać dane, aktualizować i usuwać zgodnie z wymaganiami biznesowymi. Zacznijmy więc od często zadawanych pytań SQL dołączanych do wywiadów.

Poniżej znajduje się ważny zestaw pytań do wywiadu SQL Joins zadawanych podczas wywiadu

1. Co to jest przyłączenie SQL i dlaczego go potrzebujemy?

Odpowiedź:
Sprzężenia SQL służą do łączenia rekordów z dwóch lub więcej niż dwóch tabel w systemie baz danych. Łączenie odnosi się do łączenia pól z dwóch lub więcej niż dwóch tabel za pomocą wartości wspólnej dla każdej z tabel, co pomaga w zmniejszeniu liczby powtarzanych kolumn i danych przechowywanych w kolumnach tej samej tabeli. Potrzebujemy złączeń, aby uzyskać szczegółowe informacje na temat danych, do których istnieją odniesienia, i tworzy logiczne powiązanie między dwiema lub więcej tabelami. Konieczne jest wydajne pozyskiwanie danych z wielu tabel, dlatego potrzebujemy sprzężeń SQL.

2. Jakie są różne rodzaje sprzężeń SQL? Dać im krótkie wprowadzenie?

Odpowiedź:
W SQL jest łącznie 5 złączeń, są to: -

a. Wewnętrzne dołączenie lub dołączenie

Jest to rodzaj łączenia, w którym uzyskujemy wszystkie rekordy, które spełniają warunek w dwóch lub więcej niż dwóch tabelach, a następnie rekordy we wszystkich tabelach, które nie pasują, nie są wyświetlane. Wyświetla tylko pasujące wpisy dwóch lub więcej tabel.

b.Złączenie zewnętrzne

Istnieją trzy rodzaje połączeń zewnętrznych:
1. LEWE łączenie lub LEWE łączenie zewnętrzne
Ten rodzaj łączenia zwróci wszystkie wiersze z lewej tabeli w połączeniu z pasującymi rekordami lub wierszami z prawej tabeli.
Jeśli nie ma pasujących kolumn, zwróci NULL wartości.

2. PRAWE połączenie lub PRAWE połączenie zewnętrzne
Ten rodzaj łączenia zwróci wszystkie wiersze z prawej tabeli w połączeniu z pasującymi rekordami lub wierszami z lewej tabeli.
Jeśli nie ma pasujących kolumn, zwróci NULL wartości.

3. Pełne połączenie lub pełne połączenie zewnętrzne
Ten rodzaj JOIN łączy prawe łączenie zewnętrzne i lewe łączenie zewnętrzne. Wyświetla rekordy z tabel, gdy warunki są spełnione, i wyświetla wartość NULL, gdy nie ma zgodności.

c.Naturalne dołączenie
Ten rodzaj łączenia ma dwa warunki: po pierwsze usuwa duplikaty rekordów z wyniku, a po drugie to łączenie zostanie wykonane we wszystkich kolumnach o tej samej nazwie dla zapewnienia równości.

d. Cross Join
Ten rodzaj łączenia daje iloczyn kartezjański dwóch lub więcej zaangażowanych tabel.

e.Self-Join
Jest prawie taki sam jak łączenie wewnętrzne, ale raczej jest połączeniem stołu z samym sobą.

3. Co to są zagnieżdżone połączenia w SLQ?

Odpowiedź:
Ten rodzaj łączenia działa dla każdej krotki w zewnętrznej relacji łączenia, a następnie skanuje całą relację połączenia wewnętrznego i dodaje każdą krotkę, która pasuje do warunku łączenia, a wynik zostanie wyświetlony.

4. Co to jest Merge Join w SQL?

Odpowiedź:
Łączenie scalające (znane również jako łączenie sortuj-scalaj) jest procesem łączenia stosowanym w aplikacji systemu zarządzania relacyjnymi bazami danych. Podstawową sztuczką procesu łączenia jest znalezienie każdej unikalnej wartości atrybutu złączenia, zestawu krotek w każdej relacji, która generuje tę wartość.

5. Co to jest hash Dołącz w SQL? Jak tego użyć?

Odpowiedź:
Ten rodzaj łączenia ma dwa wejścia, podobnie jak wszystkie algorytmy łączenia, pierwszy to wejście kompilacji, tj. Tabela zewnętrzna, a drugie to wejście sondy, tj. Tabela wewnętrzna. Optymalizator zapytań przydziela role tak, aby mniejszy z powyższych dwóch danych wejściowych był danymi wejściowymi kompilacji. Wariant łączenia mieszającego może wykonywać deduplikację, tj. Usuwanie i grupowanie, takie jak Sum (col1) Group-By Id. Te aktualizacje są używane tylko dla jednego wejścia oraz dla części kompilacji i części sondy.
Poniższe zapytanie jest przykładem złączenia mieszającego: -

Wybierz. Imię jako AName, b. Imię jako BName
OD P.Product p
DOŁĄCZ P.ProductSub ps
ON p.ID = ps.ID
ORDER BY p.Name, ps. Nazwa

6. W jaki sposób należy uporządkować dane, aby wykonywać operacje łączenia w relacji jeden do wielu, a co z relacją wiele do wielu?

Odpowiedź:
Ten jest nieco trudniejszy i stanowi interesujące pytanie dotyczące projektowania baz danych.
Zasadniczo relacje jeden do wielu są tworzone przy użyciu jednego klucza OBCEGO. Rozważ nasz przykład klientów i zamówień powyżej:

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

Jest to relacja jeden do wielu, ponieważ jeden klient może złożyć wiele zamówień, ale jednego zamówienia nie można przypisać do więcej niż jednego klienta. W związku z tym zdefiniowaliśmy go za pomocą prostego klucza obcego w tabeli zamówień wskazującego na danego id_użytkownika i możemy dość łatwo używać klauzul JOIN w naszych zapytaniach SELECT.
Relacje wiele do wielu są nieco bardziej skomplikowane. Na przykład, co gdybyśmy mieli tabelę zamówień i tabelę produktów z relacją wiele do wielu: każde zamówienie może zawierać wiele produktów, a każdy produkt może być przypisany do wielu zamówień. Jak ustrukturyzowalibyśmy naszą bazę danych?
Odpowiedź: używamy pośredniej tabeli mapowania z dwoma KLUCZAMI OBCYMI. Rozważ następujące:

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

Powyżej utworzyliśmy osobną tabelę o nazwie products_to_orders, która mapuje pozycje w tabeli produktów na pozycje w tabeli zamówień. Każdy wiersz w naszej tabeli products_to_orders reprezentuje jedną kombinację zamówienia produktu, dzięki czemu można przypisać wiele produktów do jednego zamówienia - a jeden produkt można przypisać do wielu zamówień.
W tym przykładzie musimy użyć dwóch instrukcji JOIN, aby połączyć wszystkie te tabele razem: jedną, aby połączyć produkty z zamówieniami z produktami i jedną, aby połączyć produkty z zamówieniami.

Polecany artykuł

Jest to podstawowy przewodnik po Liście pytań i odpowiedzi na pytania do wywiadu SQL, dzięki czemu kandydat może łatwo przełamać pytania dotyczące pytań do rozmowy SQL. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Wywiad TSQL Pytania i odpowiedzi
  2. Najczęściej zadawane pytania dotyczące wywiadu NoSQL
  3. Pytania do wywiadu XML
  4. Pytania do wywiadu podczas testowania ręcznego