SQL-begränsningar är väsentliga inslag i relationsdatabasdesign som säkerställer integritet noggrannhet och pålitlighet av de uppgifter som lagras i en databas. Genom att upprätthålla specifika regler för tabellkolumner hjälper SQL-begränsningar till att upprätthålla datakonsistens och förhindrar ogiltiga datainmatningar och optimerar frågeprestanda.
I den här artikeln kommer vi att förklara de vanligaste SQL-begränsningarna i detalj med tydliga exempel och förklara hur man implementerar dem effektivt.
Vad är SQL-begränsningar?
SQL-begränsningar är regler som tillämpas på kolumner eller tabeller i en relationsdatabas för att begränsa vilken typ av data som kan vara insatt uppdaterad eller raderad . Dessa regler säkerställer att data är giltiga konsekventa och följer affärslogiken eller databaskrav . Restriktioner kan tillämpas under skapandet av tabeller eller senare med hjälp av ALTER TABLE påstående. De spelar en viktig roll för att upprätthålla kvaliteten och integriteten hos din databas.
blockerade kontakter
Typer av SQL-begränsningar
SQL tillhandahåller flera typer av begränsningar för att hantera olika aspekter av dataintegritet. Dessa begränsningar är väsentliga för att säkerställa att data uppfyller kraven i noggrannhet konsistens och giltighet . Låt oss gå igenom var och en av dem med detaljerade förklaringar och exempel.
1. NOT NULL-begränsning
De INTE NULL constraint säkerställer att en kolumn inte kan innehålla NULL-värden. Detta är särskilt viktigt för kolumner där ett värde är viktigt för att identifiera poster eller utföra beräkningar. Om en kolumn är definierad som INTE NULL varje rad måste innehålla ett värde för den kolumnen.
Exempel:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
ADDRESS varchar(20)
);
Förklaring: I exemplet ovan bådeIDochNAMEkolumner definieras med INTE NULL begränsning betyder att varje elev måste ha enIDochNAMEvärde.
2. UNIK begränsning
De UNIK constraint säkerställer att alla värden i en kolumn är distinkta över alla rader i en tabell. Till skillnad från PRIMÄRNYCKEL som kräver unikhet och inte tillåter NULLs, UNIQUE-begränsningen tillåter NULL-värden men upprätthåller ändå unikhet för icke-NULL-poster.
Exempel:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
);
Förklaring : HärIDkolumnen måste ha unika värden som säkerställer att inga två elever kan dela sammaID. Vi kan ha mer än en UNIK begränsning i en tabell.
3. PRIMÄR NYCKEL Begränsning
A PRIMÄRNYCKEL begränsning är en kombination av INTE NULL och UNIK begränsningar. Den identifierar unikt varje rad i en tabell. Ett bord kan bara ha ett PRIMÄRNYCKEL and it cannot accept NULL values. Detta används vanligtvis för kolumnen som kommer att fungera som identifierare för poster.
Exempel:
CREATE TABLE Student
(
ID int(6) NOT NULL UNIQUE
NAME varchar(10)
ADDRESS varchar(20)
PRIMARY KEY(ID)
);
Förklaring: I det här falletIDkolumnen är inställd som primärnyckel, vilket säkerställer att varje elevs ID är unikt och inte kan vara NULL.
4. UTLÄNDSK NYCKEL Begränsning
A UTLÄNDSK NYCKEL begränsning länkar en kolumn i en tabell till primärnyckel i en annan tabell. Denna relation hjälper till att upprätthålla referensintegritet genom att se till att värdet i främmande nyckel kolumnen matchar en giltig post i den refererade tabellen.
Beställningstabell:
| O_ID | ORDER_NR | C_ID |
|---|---|---|
| 1 | 2253 | 3 |
| 2 | 3325 | 3 |
| 3 | 4521 | 2 |
| 4 | 8532 | 1 |
Kundtabell:
| C_ID | NAMN | ADRESS |
|---|---|---|
| 1 | RAMESH | DELHI |
| 2 | VISST | NOIDA |
| 3 | DHARMESH | GURGAON |
Som vi kan se tydligt att fältet C_ID i Beställningstabell är den primärnyckel i kundtabellen, dvs. den identifierar unikt varje rad i Kunder tabell. Därför är det en utländsk nyckel i ordertabell.
Exempel:
CREATE TABLE Orders
(
O_ID int NOT NULL
ORDER_NO int NOT NULL
C_ID int
PRIMARY KEY (O_ID)
FOREIGN KEY (C_ID) REFERENCES Customers(C_ID)
)
Förklaring: I det här exempletC_IDkolumn iOrderstabellen är en främmande nyckel som refererar tillC_IDkolumn iCustomerstabell. Detta säkerställer att endast giltiga kund-ID:n kan infogas iOrderstabell.
5. KONTROLLERA begränsning
De KONTROLLERA constraint tillåter oss att specificera ett villkor som data måste uppfylla innan de infogas i tabellen. Detta kan användas för att genomdriva regler som att se till att en kolumns värde uppfyller vissa kriterier (t.ex. ålder måste vara högre än 18)
Exempel:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int NOT NULL CHECK (AGE >= 18)
);
Förklaring: I tabellen ovan visas KONTROLLERA begränsning säkerställer att endast elever som är 18 år eller äldre kan infogas i tabellen.
6. STANDARD Begränsning
De STANDARD constraint ger ett standardvärde för en kolumn när inget värde anges under infogningen. Detta är användbart för att säkerställa att vissa kolumner alltid har ett meningsfullt värde även om användaren inte tillhandahåller ett
Exempel:
CREATE TABLE Student
(
ID int(6) NOT NULL
NAME varchar(10) NOT NULL
AGE int DEFAULT 18
);
Förklaring: Här om inget värde angesAGEunder en infogning kommer standardvärdet 18 att tilldelas automatiskt.
Hur man anger begränsningar i SQL
Begränsningar kan specificeras under processen för att skapa tabeller med hjälp av CREATE TABLE påstående. Dessutom kan begränsningar ändras eller läggas till i befintliga tabeller med hjälp avALTER TABLEpåstående.
Syntax för att skapa begränsningar:
CREATE TABLE tabellnamn
(
kolumn1 datatyp [constraint_name]
kolumn2 datatyp [constraint_name]
kolumn3 datatyp [constraint_name]
...
);
Vi kan också lägga till eller ta bort begränsningar efter att en tabell har skapats:
Exempel för att lägga till en begränsning:
ALTER TABLE Student
ADD CONSTRAINT unique_student_id UNIQUE (ID);
Slutsats
SQL-begränsningar är viktiga för att underhålla dataintegritet och säkerställa konsekvens i relationsdatabaser. Att förstå och implementera dessa begränsningar effektivt kommer att hjälpa till att utforma robusta felfria databaser. Genom att utnyttja INTE NULL UNIK PRIMÄRNYCKEL UTLÄNDSK NYCKEL KONTROLLERA STANDARD och INDEX du kan se till att din databas är optimerad för noggrannhet och prestanda .
Skapa frågesport