Inleiding tot SQL sluit zich aan bij interviewvragen en antwoorden

SQL verwijst als Structured Query Language is een taal die volledig is ontworpen voor toegang tot databases en is het meest populair bij andere databasetalen. Met SQL kunnen we tabellen maken, gegevens wijzigen, bijwerken en verwijderen volgens de zakelijke vereiste. Laten we dus beginnen met de veelgestelde vragen over SQL join-interviews.

Hieronder vindt u de belangrijke set sollicitatievragen voor SQL Joins die in een interview worden gesteld

1. Wat is een SQL-join en waarom hebben we deze nodig?

Antwoord:
SQL-joins worden gebruikt om records uit twee of meer dan twee tabellen in een databasesysteem te combineren. Een join verwijst naar het combineren van de velden uit twee of meer dan twee tabellen door een waarde te gebruiken die gemeenschappelijk is voor elk van de tabellen, wat helpt bij het verminderen van de herhaalde kolommen en gegevens die zijn opgeslagen in kolommen van dezelfde tabel. We hebben joins nodig om details te krijgen over de gegevens waarnaar wordt verwezen en het creëert een logische binding tussen twee of meer tabellen. Het is noodzakelijk om gegevens efficiënt uit meerdere tabellen te halen, daarom hebben we SQL-joins nodig.

2. Wat zijn de verschillende soorten SQL-joins? Een korte introductie geven?

Antwoord:
Er zijn in totaal 5 joins in SQL, dit zijn: -

a.Inner Join OF Join

Dit is een soort join waarbij we alle records krijgen die overeenkomen met de voorwaarde in twee of meer dan twee tabellen en vervolgens worden de records in alle tabellen die niet overeenkomen niet weergegeven. Het geeft alleen de overeenkomende vermeldingen van twee of meer tabellen weer.

B. Buitenste deelname

Er zijn drie soorten Outer Joins:
1.LINKS Join of LINKS buitenste Join
Dit soort join retourneert alle rijen uit de linker tabel in combinatie met de overeenkomende records of rijen uit de rechter tabel.
Als er geen overeenkomende kolommen zijn, retourneert deze NULL-waarden.

2.RIGHT Join of RECHTS Join buiten
Dit soort join retourneert alle rijen uit de rechter tabel in combinatie met de overeenkomende records of rijen uit de linker tabel.
Als er geen overeenkomende kolommen zijn, retourneert deze NULL-waarden.

3.Full Join of Full Outer Join
Dit soort JOIN combineert Right Outer Join naast Left Outer Join. Het toont records uit de tabellen als aan de voorwaarden is voldaan en geeft de NULL-waarde weer als er geen overeenkomst is.

c.Natuurlijke deelname
Dit soort join heeft twee voorwaarden, ten eerste verwijdert het dubbele records uit het resultaat en ten tweede wordt deze join gemaakt op alle kolommen met dezelfde naam voor gelijkheid.

d.Cross Doe mee
Dit soort join geeft het cartesiaanse product van de twee of meer dan twee betrokken tafels.

e.Self-Join
Het is bijna hetzelfde als de inner join, maar het is eerder een samenvoeging van een tabel met zichzelf.

3. Wat zijn geneste joins in SLQ?

Antwoord:
Dit soort join werkt voor elke tuple in de buitenste join-relatie, vervolgens scant het de hele inner-join-relatie en voegt het een tupel toe die overeenkomt met de join-voorwaarde en het resultaat wordt weergegeven.

4. Wat is Merge Join in SQL?

Antwoord:
De merge-join (ook bekend als sort-merge-join) is een join-proces dat wordt gebruikt bij de toepassing van een relationeel databasebeheersysteem. De basistruc van een join-proces is het vinden van elke unieke waarde van het join-attribuut, de verzameling tupels in elke relatie die die waarde uitvoert.

5. Wat is een hash-join in SQL? hoe te gebruiken?

Antwoord:
Dit soort join heeft twee ingangen, net als alle join-algoritmen, ten eerste de build-invoer, dwz de buitenste tabel en de tweede is probe-invoer, dwz de interne tabel. De query-optimizer wijst de rollen toe zodat de kleinere van de twee bovenstaande ingangen de build-invoer is. De variant van hash-join kan ontdubbeling uitvoeren, dwz verwijderen en groeperen, zoals Sum (col1) Group-By-id. Deze updates worden slechts voor één invoer gebruikt en voor zowel de build- als de sondedelen.
De onderstaande query is een voorbeeld van een hash-join: -

Selecteer een. Naam als AName, b. Naam als BName
VAN P.Product p
DOE MEE P.ProductSub ps
AAN p.ID = ps.ID
BESTELLEN OP p.Name, ps. Naam

6. Hoe moeten gegevens worden gestructureerd om Join-bewerkingen in een één-op-veel-relatie uit te voeren en hoe zit het met een veel-op-veel-relatie?

Antwoord:
Deze is een beetje lastiger en is een interessante database-ontwerpvraag.
Over het algemeen zijn één-op-veel-relaties gestructureerd met behulp van één FOREIGNKEY. Bekijk ons ​​voorbeeld van klanten en bestellingen hierboven:

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

Dit is een één-op-veel-relatie omdat één klant meerdere bestellingen kan plaatsen, maar één bestelling niet aan meer dan één klant kan worden toegewezen. Als zodanig hebben we het gedefinieerd met een eenvoudige externe sleutel in de besteltabel die naar een bepaalde customer_id verwijst, en we kunnen JOIN-clausules vrij eenvoudig gebruiken in onze SELECT-zoekopdrachten.
Veel-op-veel-relaties zijn iets gecompliceerder. Wat als we bijvoorbeeld een besteltabel en een productentabel met een veel-op-veel-relatie hadden: elke bestelling kan meerdere producten bevatten en elk product kan aan meerdere bestellingen worden toegewezen. Hoe zouden we onze database structureren?
Het antwoord: we gebruiken een intermediaire mappingtabel met twee BUITENLANDSE SLEUTELS. Stel je de volgende situatie voor:

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

Hierboven hebben we een aparte tabel gemaakt met de naam products_to_orders die items op de products-tabel toewijst aan items op de besteltabel. Elke rij in onze tabel products_to_orders vertegenwoordigt één product-ordercombinatie zodat meerdere producten aan één order kunnen worden toegewezen - en een enkel product kan aan meerdere orders worden toegewezen.
In dit voorbeeld moeten we twee JOIN-instructies gebruiken om al deze tabellen aan elkaar te koppelen: één om products_to_orders aan producten te koppelen, en één om products_to_orders aan orders te koppelen.

Aanbevolen artikel

Dit is een basisgids geweest voor Lijst met SQL Joins-interviewvragen en antwoorden, zodat de kandidaat deze SQL Joins-interviewvragen gemakkelijk kan beantwoorden. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Vragen en antwoorden over sollicitatiegesprekken bij TSQL
  2. Top gestelde NoSQL-interviewvragen
  3. XML-interviewvragen
  4. Interviewvragen voor handmatig testen