INRE KOPPLING

Slutförd

Koppla tabeller

I relationsdatabaser ordnas data ofta i flera tabeller för att minimera redundans och förbättra dataintegriteten. Den här designmetoden, som kallas normalisering, undviker att upprepa samma information på olika platser. Det innebär dock att användbar information ofta sprids över flera tabeller.

Kopplingar är viktiga SQL-åtgärder som överbryggar det här gapet, så att du kan kombinera rader från två eller flera tabeller och hämta relaterade data i en enda, enhetlig resultatuppsättning. I grund och botten gör kopplingar att du kan fråga efter information som är logiskt ansluten men fysiskt separerad. De uppnår den här kombinationen genom att identifiera och matcha rader baserat på värden som finns i en eller flera vanliga kolumner mellan tabellerna. Dessa vanliga kolumner fungerar ofta som en länk mellan en primärnyckel i en tabell och en sekundärnyckel i en annan, vilket etablerar de relationer som definierats i databasschemat.

Obs! En primärnyckel är en unik identifierare för varje post i en tabell, vilket säkerställer att inga två rader har samma värde i den här kolumnen. En sekundärnyckel är å andra sidan en kolumn i en tabell som refererar till primärnyckeln i en annan tabell, vilket länkar de två tabellerna.

Det finns flera "smaker" av kopplingar (INNER, , LEFTRIGHT, FULL OUTER, NATURAL), som var och en är utformade för att kombinera tabeller på något olika sätt. De ger kontroll över vilka rader som ingår i resultatuppsättningen baserat på förekomsten eller frånvaron av matchande värden i de anslutna tabellerna.

INRE KOPPLING

En INNER JOIN är en av de vanligaste typerna av SQL-kopplingar. Den kombinerar rader från flera tabeller baserat på ett villkor som anger matchande värden i en delad kolumn.

När du utför en INNER JOINinkluderas endast de rader som uppfyller villkoret från båda tabellerna i resultatuppsättningen, vilket effektivt filtrerar bort omatchade data. Detta gör INNER JOIN det idealiskt för att hämta relaterad information där anslutningar mellan tabeller uttryckligen definieras, till exempel kundorder eller medarbetartilldelningar.

SELECT orders.order_id, customers.customer_name, employees.first_name, employees.last_name
FROM sales.orders AS orders
INNER JOIN sales.customers AS customers ON orders.customer_id = customers.customer_id
INNER JOIN sales.employees AS employees ON orders.employee_id = employees.employee_id;

Den angivna frågan använder flera INNER JOIN åtgärder för att hämta en enhetlig resultatuppsättning som innehåller information om orders, customersoch employees.

Den matchar customer_id i orders tabellen med motsvarande customer_id i customers tabellen och employee_id i orders tabellen med employee_id i employees tabellen. Därför matar frågan ut varje order-ID tillsammans med namnen på den berörda kunden och medarbetaren.