sql >> Database teknologi >  >> RDS >> Database

Hvad er SQL-begrænsninger og dets forskellige typer?

Da store mængder data er til stede i databaserne, er det meget vigtigt for os alle at øge nøjagtigheden og pålideligheden af ​​data i databasen. Nå, SQL-begrænsningerne bruges til at opretholde det samme. Der er forskellige typer af begrænsninger, som kan bruges. I denne artikel vil jeg diskutere disse begrænsninger med eksempler.

Følgende emner vil blive dækket i denne artikel:

  1. Hvad er begrænsninger?
  2. Tilgængelige begrænsninger i SQL:
      • IKKE NULL-begrænsning
      • UNIKK begrænsning
      • check begrænsning
      • STANDARD-begrænsning
      • INDEX-begrænsning

Hvad er SQL-begrænsninger?

SQL-begrænsninger bruges til at specificere reglerne for dataene i en tabel. Disse bruges til at begrænse, hvilken type data der skal gemmes i databasen, og har til formål at øge nøjagtigheden og pålideligheden af ​​de data, der er lagret i databasen.

Så begrænsninger sørger for, at der ikke er nogen overtrædelse med hensyn til en transaktion af dataene, men alligevel er der fundet nogen overtrædelse; handlingen bliver afsluttet.

Der er to typer begrænsninger, som kan anvendes:

  1. Begrænsninger på kolonneniveau – Disse begrænsninger anvendes på en enkelt kolonne
  2. Begrænsninger på tabelniveau – Disse begrænsninger er applikationen til den komplette tabel

Lad os gå videre i denne artikel og forstå de forskellige typer begrænsninger. Jeg vil også overveje følgende tabel for at hjælpe dig med at forstå bedre.

Forskellige SQL-begrænsninger tilgængelige:

IKKE NULL-begrænsning

NOT NULL-begrænsningen sikrer, at en kolonne ikke kan have en NULL-værdi. Du kan bruge NOT NULL-begrænsningen, enten mens du opretter tabeldatabasen eller mens du ændrer den.

Eksempel

IKKE NULL-begrænsning på OPRET TABEL

Skriv en forespørgsel for at oprette ovenstående Elever-tabel, hvor StudentID og StudentName ikke kan være NULL.

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

IKKE NULL Begrænsning på ALTER TABLE

Skriv en forespørgsel for at ændre ovenstående Elev-tabel, hvor en ny kolonne med DOB skal tilføjes, og den bør ikke have nogen NULL-værdier.

ALTER TABLE Students ADD COLUMN DOB year NOT NULL;

Lad os gå videre i denne artikel om SQL-begrænsninger, og lad os forstå, hvordan man bruger den UNIKKE begrænsning.

UNIKK begrænsning

Den UNIKKE begrænsning bruges til at sikre, at alle værdierne i en kolonne er unikke. Du kan bruge den UNIKKE begrænsning enten på flere kolonner eller på en enkelt kolonne med. Bortset fra dette, kan du gå fremad og bruge den UNIKKE begrænsning til at ændre de eksisterende tabeller.

Bemærk:

  1. Når du opretter tabeller, har en PRIMÆR NØGLE-begrænsning automatisk en UNIK begrænsning for at garantere en kolonnes unikke karakter.
  2. En tabel kan have mange UNIKKE begrænsninger, men kan have en enkelt primær nøglebegrænsning.

Eksempel:

UNIKK begrænsning på OPRET TABEL

Skriv en forespørgsel for at oprette en tabel Elever med kolonnerne StudentID, StudentName, Age og City. Her skal StudentID'et være unikt for hver eneste post.

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

Navngiv en UNIK begrænsning på flere kolonner

For at navngive en unik begrænsning og definere den for flere kolonner kan du henvise til følgende eksempel:

Skriv en forespørgsel for at oprette en tabel Elever med kolonnerne StudentID, StudentName, Age og City. Her skal StudentID og StudentName være unikke for hver post.

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

Her er Stu_Example navnet på den unikke begrænsning, der anvendes på StudentID og StudentName.

UNIKK begrænsning på ÆNDRINGSTABEL

Skriv en forespørgsel for at ændre elevtabellen, hvor en UNIK begrænsning skal tilføjes til kolonnen StudentID.

ALTER TABLE Students ADD UNIQUE (StudentID);

På samme måde, hvis du vil bruge den UNIKKE begrænsning på flere kolonner og også navngive den, kan du skrive en forespørgsel som følger:

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

Slip en UNIK begrænsning

For at droppe den begrænsning, der er angivet i en kolonne, kan du bruge den navngivningskonvention, som du måske har nævnt, mens du tilføjede begrænsningen.

For eksempel, hvis vi skal skrive en forespørgsel for at slippe den UNIKKE begrænsning, vi oprettede ovenfor, kan du skrive forespørgslen som følger:

ALTER TABLE Students DROP CONSTRAINT Stu_Example;

Næste i denne artikel om SQL-begrænsninger, lad os forstå, hvordan man bruger CHECK-begrænsningen.

TJEK begrænsning

CHECK-begrænsningen sikrer, at alle værdier i en kolonne opfylder en bestemt betingelse.

Eksempel:

TJEK begrænsning på OPRET TABEL

Skriv en forespørgsel for at oprette en tabel Elever med kolonnerne StudentID, StudentName, Age og City. Her skal byen være Mumbai.

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

TJEK begrænsning på flere kolonner

For at bruge kontrolbegrænsningen på flere kolonner kan du skrive en forespørgsel som nedenfor:

Skriv en forespørgsel for at oprette en tabel Elever med kolonnerne StudentID, StudentName, Age og City. Her skal byen være Mumbai, og elevernes alder skal være> 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å samme måde kan du også bruge CHECK-begrænsningen med ALTER TABLE-kommandoen. Se nedenfor.

TJEK begrænsning på ÆNDRINGSTABEL

Skriv en forespørgsel for at ændre tabellen Elever, hvor der skal tilføjes en CHECK-restriktion til kolonnen By. Her skal byen være Mumbai.

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

Tilsvarende, hvis du vil bruge CHECK-begrænsningen ved at give den et navn, kan du skrive en forespørgsel som følger:

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

Slip en CHECK-begrænsning

For at droppe den begrænsning, der er angivet i en kolonne, kan du bruge den navngivningskonvention, som du måske har nævnt, mens du tilføjede begrænsningen.

Hvis vi f.eks. skal skrive en forespørgsel for at slippe den CHECK-begrænsning, vi oprettede ovenfor, kan du skrive forespørgslen som følger:

ALTER TABLE Students DROP CONSTRAINT StuCheckExample;

Lad os gå videre i denne artikel om SQL-begrænsninger, så lad os forstå, hvordan man bruger DEFAULT-begrænsningen.

STANDARD-begrænsning

DEFAULT-begrænsningen bruges til at nævne et sæt standardværdier for en kolonne, når der ikke er angivet nogen værdi. På samme måde som de andre begrænsninger kan vi bruge denne begrænsning på CREATE og ALTER tabelkommandoen.

Eksempel

Skriv en forespørgsel for at oprette en tabel Elever med kolonnerne StudentID, StudentName, Age og City. Også når der ikke er indsat en værdi i kolonnen By, skal Delhi automatisk inkluderes.

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

STANDARD-begrænsning på ÆNDRINGSTABEL

For at bruge DEFAULT-begrænsningen med ALTER TABLE-kommandoen kan du skrive en forespørgsel som følger:

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

Slip en DEFAULT-begrænsning

For at droppe DEFAULT-begrænsningen kan du bruge kommandoen ALTER TABLE som følger:

ALTER TABLE Students ALTER COLUMN City DROP DEFAULT;

Næste i denne artikel om SQL-begrænsninger, lad os forstå, hvordan man bruger INDEX-begrænsningen.

INDEX-begrænsning

INDEX-begrænsningen bruges til at oprette indekser i tabellen. Ved hjælp af disse indekser kan du oprette og hente data fra databasen meget hurtigt.

Syntaks

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

Eksempel

Skriv en forespørgsel for at oprette et indeks med navnet Stu_index på tabellen Elever, som gemmer Elevnavnet.

CREATE INDEX Stu_index ON Students (StudentName);

På samme måde skal du bruge kommandoen DROP med navnet på indekset for at slette et indeks fra tabellen.

DROP INDEX Students.Stu_index;

Udover ovenstående begrænsninger betragtes den PRIMÆRE NØGLE og den UDENLANDSKE NØGLE også som begrænsninger. PRIMÆR NØGLE-begrænsningen bruges til at definere begrænsninger for, hvordan en specifik kolonne unikt identificerer hver tupel. FOREIGN KEY-begrænsningen bruges til at relatere to tabeller baseret på en relation.

Med dette kommer vi til en ende på denne artikel. Jeg håber, du forstod, hvordan du bruger de forskellige begrænsninger, der findes i databasen. Hvis du ønsker at lære mere om MySQL og lære denne open source relationsdatabase at kende, så tjek vores MySQL DBA certificeringsuddannelse som kommer med instruktørledet livetræning og projekterfaring i det virkelige liv. Denne træning vil hjælpe dig med at forstå MySQL i dybden og hjælpe dig med at opnå beherskelse over emnet.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne artikel om SQL-begrænsninger, så vender jeg tilbage til dig.


  1. Hvorfor gemmer sql-server tegn på spørgsmålstegn i stedet for japanske tegn i NVarchar-felter?

  2. Oracle PL/SQL:Tjek, om BLOB eller CLOB er tom

  3. Vil SQL-opdatering påvirke dens underforespørgsel under opdateringskørsel?

  4. WordPress udarbejdet erklæring med IN() tilstand