sql >> Databasteknik >  >> RDS >> Database

Vilka är SQL-begränsningar och dess olika typer?

Eftersom stora mängder data finns i databaserna är det mycket viktigt för oss alla att öka noggrannheten och tillförlitligheten hos data som finns i databasen. Tja, SQL-begränsningarna används för att upprätthålla detsamma. Det finns olika typer av begränsningar som kan användas. I den här artikeln kommer jag att diskutera dessa begränsningar med exempel.

Följande ämnen kommer att behandlas i den här artikeln:

  1. Vad är begränsningar?
  2. Begränsningar tillgängliga i SQL:
      • INTE NULL-begränsning
      • UNIK begränsning
      • KONTROLLERA begränsning
      • Standardbegränsning
      • INDEX-begränsning

Vad är SQL-begränsningar?

SQL-begränsningar används för att specificera reglerna för data i en tabell. Dessa används för att begränsa vilken typ av data som måste lagras i databasen, och syftar till att öka noggrannheten och tillförlitligheten av data som lagras i databasen.

Så, begränsningar ser till att det inte finns någon överträdelse när det gäller en transaktion av data, men det finns någon överträdelse. åtgärden avslutas.

Det finns två typer av begränsningar som kan tillämpas:

  1. Begränsningar på kolumnnivå – Dessa begränsningar tillämpas på en enda kolumn
  2. Begränsningar på tabellnivå – Dessa begränsningar är applikationen till hela tabellen

Låt oss gå vidare i den här artikeln och förstå de olika typerna av begränsningar. Jag kommer också att överväga följande tabell för att hjälpa dig att förstå bättre.

Olika SQL-begränsningar tillgängliga:

INTE NULL-begränsning

Begränsningen NOT NULL ser till att en kolumn inte kan ha ett NULL-värde. Du kan använda NOT NULL-begränsningen antingen när du skapar tabelldatabasen eller när du ändrar den.

Exempel

INTE NULL-begränsning på CREATE TABLE

Skriv en fråga för att skapa ovanstående Studenttabell, där StudentID och StudentName inte kan vara NULL.

CREATE TABLE Students( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, City varchar(255) );

INTE NULL-begränsning på ALTER TABLE

Skriv en fråga för att ändra ovanstående Studenttabell, där en ny kolumn med DOB måste läggas till, och den ska inte ha några NULL-värden.

ALTER TABLE Students ADD COLUMN DOB year NOT NULL;

Gå vidare i den här artikeln om SQL-begränsningar, låt oss förstå hur man använder den UNIKA begränsningen.

UNIK begränsning

Begränsningen UNIQUE används för att säkerställa att alla värden i en kolumn är unika. Du kan använda den UNIKA begränsningen antingen på flera kolumner eller på en enda kolumn med. Bortsett från detta kan du gå framåt och använda den UNIKA begränsningen för att ändra de befintliga tabellerna.

Obs!

  1. När man skapar tabeller har en PRIMARY KEY-begränsning automatiskt en UNIK begränsning, för att garantera att en kolumn är unik.
  2. En tabell kan ha många UNIKA begränsningar men kan ha en enda primärnyckelbegränsning.

Exempel:

UNIKK begränsning för SKAPA TABELL

Skriv en fråga för att skapa en tabell Studenter, med kolumnerna StudentID, Studentnamn, Ålder och Stad. Här måste StudentID:t vara unikt för varje post.

CREATE TABLE Students ( 
StudentID int NOT NULL UNIQUE, 
StudentName varchar(255) 
NOT NULL, Age int, City varchar(255) );

Nämn en UNIK begränsning på flera kolumner

För att namnge en unik begränsning och definiera den för flera kolumner kan du hänvisa till följande exempel:

Skriv en fråga för att skapa en tabell Studenter, med kolumnerna StudentID, Studentnamn, Ålder och Stad. Här måste StudentID och StudentName vara unika för varje post.

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255) CONSTRAINT Stu_Example 
UNIQUE (StudentID,StudentName) );

Här är Stu_Example namnet på den unika begränsningen som tillämpas på StudentID och StudentName.

UNIKK begränsning på ALTER TABLE

Skriv en fråga för att ändra tabellen Studenter, där en UNIK begränsning måste läggas till i kolumnen StudentID.

ALTER TABLE Students ADD UNIQUE (StudentID);

På samma sätt, om du vill använda den UNIKA begränsningen på flera kolumner och även namnge den, kan du skriva en fråga enligt följande:

ALTER TABLE Students ADD CONSTRAINT Stu_Example UNIQUE (StudentID,StudentName);

Släpp en UNIK begränsning

För att ta bort begränsningen som anges i en kolumn kan du använda namnkonventionen som du kanske har nämnt när du lade till begränsningen.

Om vi ​​till exempel måste skriva en fråga för att släppa den UNIKA begränsningen som vi skapade ovan, kan du skriva frågan enligt följande:

ALTER TABLE Students DROP CONSTRAINT Stu_Example;

Låt oss härnäst i den här artikeln om SQL-begränsningar förstå hur man använder CHECK-begränsningen.

Kontrollera begränsning

CHECK-begränsningen säkerställer att alla värden i en kolumn uppfyller ett specifikt villkor.

Exempel:

KONTROLLERA begränsning på SKAPA TABELL

Skriv en fråga för att skapa en tabell Studenter, med kolumnerna StudentID, Studentnamn, Ålder och Stad. Här måste staden vara Mumbai.

CREATE TABLE Students ( 
StudentID int NOT NULL UNIQUE, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)CHECK (City==’Mumbai’) );

Kontrollera begränsning på flera kolumner

För att använda kontrollbegränsningen på flera kolumner kan du skriva en fråga enligt nedan:

Skriv en fråga för att skapa en tabell Studenter, med kolumnerna StudentID, Studentnamn, Ålder och Stad. Här måste staden vara Mumbai, och elevernas ålder måste vara> 19.

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)CHECK (City==’Mumbai’ AND Age>19));

På liknande sätt kan du använda CHECK-begränsningen med kommandot ALTER TABLE också. Se nedan.

KONTROLLERA begränsning på ALTER TABELL

Skriv en fråga för att ändra tabellen Studenter, där en CHECK-begränsning måste läggas till i kolumnen Stad. Här måste staden vara Mumbai.

ALTER TABLE Students ADD CHECK (City=='Mumbai');

På liknande sätt, om du vill använda CHECK-begränsningen genom att ge den ett namn kan du skriva en fråga enligt följande:

ALTER TABLE Students ADD CONSTRAINT StuCheckExample CHECK (City=='Mumbai');

Släpp en CHECK-begränsning

För att ta bort begränsningen som anges i en kolumn kan du använda namnkonventionen som du kan ha nämnt när du lade till begränsningen.

Om vi ​​till exempel måste skriva en fråga för att släppa CHECK-begränsningen som vi skapade ovan, kan du skriva frågan enligt följande:

ALTER TABLE Students DROP CONSTRAINT StuCheckExample;

Gå vidare i den här artikeln om SQL-begränsningar, låt oss förstå hur man använder DEFAULT-begränsningen.

Standardbegränsning

DEFAULT-begränsningen används för att nämna en uppsättning standardvärden för en kolumn när inget värde anges. I likhet med de andra begränsningarna kan vi använda denna begränsning på CREATE och ALTER-tabellkommandona.

Exempel

Skriv en fråga för att skapa en tabell Studenter, med kolumnerna StudentID, Studentnamn, Ålder och Stad. Även när det inte finns något värde infogat i kolumnen Stad, måste Delhi automatiskt inkluderas.

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)DEFAULT ‘Delhi’);

Standardbegränsning på ALTER TABLE

För att använda DEFAULT-begränsningen med kommandot ALTER TABLE kan du skriva en fråga enligt följande:

ALTER TABLE Students ADD CONSTRAINT StuDefauExample DEFAULT 'Mumbai' FOR City;

Släpp en DEFAULT-begränsning

För att ta bort DEFAULT-begränsningen kan du använda kommandot ALTER TABLE enligt följande:

ALTER TABLE Students ALTER COLUMN City DROP DEFAULT;

Låt oss härnäst i den här artikeln om SQL-begränsningar förstå hur man använder INDEX-begränsningen.

INDEX-begränsning

INDEX-begränsningen används för att skapa index i tabellen. Med hjälp av dessa index kan du skapa och hämta data från databasen mycket snabbt.

Syntax

--Create an Index where duplicate values are allowed
CREATE INDEX IndexName
ON TableName (ColumnName1, ColumnName2, ...ColumnName(N));

--Create an Index where duplicate values are not allowed
CREATE UNIQUE INDEX IndexName
ON TableName (ColumnName1, ColumnName2, ...ColumnName(N));

Exempel

Skriv en fråga för att skapa ett index med namnet Stu_index i tabellen Studenter som lagrar Studentnamnet.

CREATE INDEX Stu_index ON Students (StudentName);

På liknande sätt, för att ta bort ett index från tabellen, måste du använda kommandot DROP med namnet på indexet.

DROP INDEX Students.Stu_index;

Bortsett från ovanstående begränsningar betraktas även PRIMÄRNYCKELN och FREMMANDE KEY som begränsningar. PRIMARY KEY-begränsningen används för att definiera begränsningar för hur en specifik kolumn unikt identifierar varje tupel. FOREIGN KEY-begränsningen används för att relatera två tabeller baserat på en relation.

Med detta kommer vi till ett slut på den här artikeln. Jag hoppas att du förstod hur man använder de olika begränsningarna som finns i databasen. Om du vill lära dig mer om MySQL och lära känna denna relationsdatabas med öppen källkod, kolla in vår MySQL DBA-certifieringsutbildning som kommer med instruktörsledd liveutbildning och verklig projektupplevelse. Den här utbildningen hjälper dig att förstå MySQL på djupet och hjälper dig att behärska ämnet.

Har du en fråga till oss? Nämn det i kommentarsfältet i den här artikeln om SQL-begränsningar så återkommer jag till dig.


  1. Lägg till en sammanfattningsrad med totaler

  2. Hur har man fullständig offlinefunktionalitet i en webbapp med PostgreSQL-databas?

  3. Det mest eleganta sättet att generera permutationer i SQL-server

  4. Vad är DATALENGTH() i SQL Server?