Inleiding tot SQL Keys
Sleutels zijn velden in de relationele tabel die relaties tussen andere tabellen creëren, integriteit, uniekheid, etc. behouden. In dit onderwerp gaan we meer te weten over SQL Keys.
In RDBMS speelt Keys een belangrijke rol. Dit neemt deel aan de meerdere activiteiten in de relationele database. Met Key kunt u gegevens veel sneller en efficiënter ophalen. Het kan de relatie in twee of meer tabellen vastleggen. Door het gebruik van Keys kunnen we geldige en consistente gegevens in de database bewaren. Het werd ook gebruikt om een tuple (rij) uit de tabel op unieke wijze te identificeren. Deze tabellen kunnen meerdere kolommen bevatten.
In het echte leven kan een tafel meerdere sleutels hebben. Alle kolommen kunnen ook als Key worden gedeclareerd en deze Keys kunnen door de database worden afgedwongen.
Syntaxis:
CREATE TABLE `customer` (
`cust_id` int(11) NOT NULL,
`cust_name` varchar(100) NOT NULL,
`cust_address` text NOT NULL,
`cust_aadhaar_number` varchar(50) DEFAULT NULL,
`cust_pan_number` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `customer` ADD PRIMARY KEY (`cust_id`);
In de hierboven gegeven SQL-query kunnen we zien hoe een kolom 'cust_id' is ingesteld als een primaire sleutel.
Type SQL-sleutels
Meerdere soorten sleutels worden ondersteund door de SQL Server.
Hierna volgt de lijst met SQL-sleutels:
- Hoofdsleutel
- Unieke sleutel
- Kandidaatsleutel
- Alternatieve sleutel
- Samengestelde sleutel
- Supersleutel
- Vreemde sleutel
Bijvoorbeeld
Klantentabel | ||||
cust_id | cust_name | cust_address | cust_aadhaar_number | cust_pan_number |
100001 | Sunil Kumar | Noida | 372464389211 | ADSFS3456K |
100002 | Ankit Gupta | Gr Noida | 442289458453 | CGHAD7583L |
100003 | Suresh Yadav | New Delhi | 878453444144 | NMKRT2278O |
100004 | Nilam Singh | Lucknow | 227643441123 | HFJFD3876U |
100005 | Amal Rawat | Ghaziabad | 932571156735 | CBMVA9734A |
100006 | Harde Saxena | Kanpur | 1453534363319 | TRYUC2568H |
Hieronder wordt de tabel "Bestelling" gegeven met de bijbehorende gegevens die overeenkomen met de "cust_id" uit de klantentabel.
Besteltabel | ||
cust_id | order_month_year | ORDER_AMOUNT |
100001 | 2019 - Jan | $ 100.000 |
100002 | 2019 - Jan | $ 120.000 |
100003 | 2019 - Jan | $ 100.000 |
100004 | 2019 - Jan | $ 110.000 |
100001 | 2019 - febr | $ 105.000 |
100002 | 2019 - febr | $ 125.000 |
Nu zullen we één voor één doorlopen op elke sleutel:
1. Primaire sleutel
Primaire sleutel is een veld dat kan worden gebruikt om alle tupels uniek in de database te identificeren. Slechts één van de kolommen kan als primaire sleutel worden gedeclareerd. Een primaire sleutel kan geen NULL-waarde hebben.
Voorbeeld: In de hierboven gegeven relationele tabel is "cust_id" de primaire sleutel omdat het alle rijen uniek uit de tabel kan identificeren.
2. Unieke sleutel
Unieke sleutel kan een veld of een reeks velden zijn die kunnen worden gebruikt om de tuple uit de database op unieke wijze te identificeren. Een of meer velden kunnen worden gedeclareerd als een unieke sleutel. De unieke sleutelkolom kan ook de NULL-waarde bevatten. Gebruik van unieke sleutel verbetert de prestaties van het ophalen van gegevens. Hiermee wordt het zoeken naar records uit de database veel sneller en efficiënter.
Voorbeeld: In de hierboven gegeven relationele tabel zijn "cust_aadhaar_number", "cust_pan_number" de unieke sleutel, omdat deze één waarde als een NULL in de kolom kan toestaan
3. Kandidaatsleutel
Kandidaatsleutel kan een kolom of groep kolommen zijn die in aanmerking kunnen komen voor de unieke sleutel. Elke tafel heeft ten minste één kandidaatssleutel. Een tabel kan een of meer Kandidaatssleutel hebben. Elke kandidaatssleutel kan in bepaalde scenario's werken als primaire sleutel.
Voorbeeld: In de hierboven gegeven relationele tabel zijn “cust_id”, “cust_aadhaar_number”, “cust_pan_number” de Kandidaatsleutel omdat deze alle rijen uniek uit de tabel kan identificeren. Deze kolommen kwalificeren de criteria ook als een primaire sleutel.
4. Alternatieve sleutel
Alternatieve sleutel is die sleutel die indien nodig als een primaire sleutel kan worden gebruikt. Alternatieve sleutel komt ook in aanmerking voor een primaire sleutel, maar is vooralsnog niet de primaire sleutel.
Voorbeeld: In de hierboven gegeven relationele tabel zijn "cust_aadhaar_number", "cust_pan_number" de alternatieve sleutel, aangezien beide kolommen een primaire sleutel kunnen zijn, maar nog niet zijn geselecteerd voor de primaire sleutel.
5. Samengestelde sleutel
Composite Key is ook bekend als Compound Key / Concatenated Key. Samengestelde sleutel verwijst naar een groep van twee of meer kolommen die kunnen worden gebruikt om een tuple uit de tabel op unieke wijze te identificeren. Een groep van de kolom in combinatie met elkaar kan een rij uniek identificeren, maar een enkele kolom van die groep belooft niet dat de rij uniek wordt geïdentificeerd.
Voorbeeld: In de hierboven gegeven relationele tabel, dat wil zeggen Ordertabel, "cust_id", "order_month_year" groep van deze kolommen in combinatie gebruikt om het unieke tuple in de Ordertabel te identificeren. De afzonderlijke kolom van deze tabel kan het tuple niet uniek identificeren uit de tabel Order.
6. Supersleutel
Supersleutel is een combinatie van kolommen, elke kolom van de tabel blijft hiervan afhankelijk. Supersleutel kan wat meer kolommen in de groep hebben die al dan niet nodig zijn om het tuple uniek uit de tabel te identificeren. Candidate Key is de subset van de Super Key. Candidate Key is ook bekend als minimale Super Key.
Voorbeeld: In de hierboven gegeven relationele tabel is Primaire sleutel, Kandidaatsleutel & Unieke sleutel de Supersleutel. Als een enkele kolom van de klantentabel is 'cust_id' voldoende om de tupels uniek uit de tabel te identificeren. Elke set van de kolom die 'cust_aadhaar_number', 'cust_pan_number' bevat, is een Super Key.
7. Buitenlandse sleutel
Een externe sleutel is een kolom die in de andere tabel bekend staat als primaire sleutel. Een primaire sleutel in een tabel kan in een andere tabel worden aangeduid als een externe sleutel. Buitenlandse sleutel kan dubbele & NULL-waarden hebben als deze is gedefinieerd om NULL-waarden te accepteren.
Voorbeeld: In de hierboven gegeven relationele tabel is 'cust_id' primaire sleutel in de klantentabel, maar 'cust_id' in de besteltabel, ook wel 'buitenlandse sleutel' genoemd. Een externe sleutel in een tabel wordt altijd de primaire sleutel op de andere tabel.
De bovenstaande afbeelding laat zien hoe elke kolom wordt weergegeven als een sleutel volgens hun kwalificatie om de tupels uniek uit de tabel te identificeren. Screenshot vat alle sleutel samen door het gebruik van de relationele tabel.
Conclusie - SQL Keys
SQL Keys is een van de kenmerken van de relationele database. die belangrijke rollen speelt om een relatie tussen twee of meer tabellen tot stand te brengen. Het helpt ook om zoekopdrachten sneller uit te voeren, dwz het ophalen van de records uit de database wordt veel sneller met behulp van Keys. Sleutels stellen ook de verschillende beperking in om de tupels op basis van de grote gegevens op unieke wijze te identificeren.
Aanbevolen artikelen
Dit is een handleiding voor SQL Keys. Hier bespreken we de inleiding tot SQL Keys en 7 verschillende typen met het juiste voorbeeld in detail. U kunt ook het volgende artikel bekijken.
- Onderscheid sleutelwoord in SQL
- Cursors in SQL
- Buitenlandse sleutel in SQL
- Transacties in SQL