sql >> Databasteknik >  >> RDS >> Database

SQL BEGRÄNSNINGAR

SQL Constraints specificerar regler/begränsningar/restriktioner för data som finns i tabellen. SQL-begränsningar anges vid tidpunkten för tabellskapandet eller efter tabellskapandet med kommandot ALTER. Det finns två typer av begränsningar begränsningar på kolumnnivå och tabellnivåbegränsning .Som namnkolumnnivån anger, specificerar den en viss kolumn. I en tabellnivåbegränsning specificerar den mer än en kolumn eller alla kolumner i tabellen.INTE NULL: Det säkerställer att det angivna kolumnvärdet inte kan vara NULL.UNIKT: Det säkerställer att varje värde i kolumnen är olika.PRIMÄRNYCKEL: Primär nyckel säkerställer att både INTE NULL och UNIK. Det betyder att värdet inte kan vara null och att det bör skilja sig från varandra. Därför identifierar primärnyckeln unikt varje post i tabellen.FREIGN KEY: Det identifierar unikt post från annan tabell. Främmande nyckel är en referens till den andra tabellen och den är som den primära nyckeln från den andra tabellen.STANDARD: Den ställer in standardvärde när värdet inte anges.KONTROLLERA: Det säkerställer att alla värden i kolumnen uppfyller ett villkor.INDEX: Index skapas och används för att hämta data från databasen.

INTE NULL

Standardvärdet för varje kolumn är NULL. Not Null-begränsningar säkerställer att kolumnvärdet inte ska null. Denna begränsning se alltid till att kolumnen har något värde. Det tillåter inte infogning eller uppdatering av post utan att nämna värde i detta fält. Användaren kan lägga till denna begränsning till enstaka eller flera eller alla kolumner i tabellen.Syntax: SKAPA  TABELL tabellnamn (datatyp i kolumn 1 NOT NULL,………);Exempel: Skapa tabell STUDENT(student_id int NOT NULL,student_name varchar(10),student_dept varchar(10) NOT NULL,classyear int); I exemplet ovan, NOT NULL begränsning tillämpas på två kolumner student_id och student_dept i STUDENT-tabellen när tabellen skapas. Beskrivning av STUDENT-tabellen visar vilka kolumner som kan vara NULL eller inte kan vara NULL. Se utdataskärmen vid tidpunkten för att infoga värden i tabellen, inte noll-begränsning tillåter inte inmatning av NULL-värde i de fält som restriktioner tillämpas på.UNIQUE Unik begränsning undvik dubbla poster i kolumn. En tabell kan ha flera unika nycklar.Syntax: SKAPA  TABELL tabellnamn (datatyp i kolumn 1 UNIQUE,………);Exempel: skapa tabell student(student_id int Unique,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ); Du kan skriva ovanstående fråga i annan form. Skapa tabell student(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ,unique (student_id));# definiera flera unika kolumner på en gång Syntax: SKAPA  TABELL tabellnamn(datatyp kolumn 1, … kolumn n, begränsning tvångsnamn Unikt (kolumn1,..));Exempel: skapa tabell student(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int,Constraint cs_studentunique (student_id, student_name)); # Lägg till UNIK begränsning med ALTER-satsSyntax: Ändra tabell tabellnamn Lägg till unik (kolumnnamn);Exempel: Ändra tabell StudentAdd Unique (student_id);Syntax: Ändra tabell tabellnamnLägg till begränsning constraint_name Unik (kolumn1,kolumn2);Exempel: Ändra tabell StudentAdd Constraint cs_student Unique (student_id, student_name);Primärnyckel Primärnyckel identifierar varje post i kolumnen unikt, en tabell har en enda primärnyckel. Primärnyckel kan vara en enskild kolumn eller grupp av kolumner.Syntax: Skapa tabell tabellnamn( kolumndatatyp Primärnyckel, kolumn2 datatyp,………);Exempel: Skapa tabell STUDENT(student_id int Primary Key,student_name varchar(20),student_dept varchar(20),classyear int); Syntax: Skapa tabell tabellnamn( kolumn1 datatyp, kolumn2 datatyp,………kolumn n datatyp,Primärnyckel (kolumnnamn));Exempel: Skapa tabell Student(student_id int,student_name varchar(10),student_dept varchar(10),classyear int,Primärnyckel (student_id)); # Använda ALTER-satsen Syntax: ändra tabell tabellnamn lägg till primärnyckel (kolumnnamn); Exempel: ändra tabell studentadd primärnyckel (student_id); Syntax: alter table table_namedrop primärnyckel;Exempel: ändra tabell studentdrop primärnyckel;

STANDARD

DEFAULT-begränsningen används för att ställa in standardvärdet för kolumnen. Denna begränsning kan tillämpas på en kolumn eller flera kolumner. NULL är ett standardvärde för alla kolumner i tabellen. När användaren inte tillämpar null eller primär begränsning på någon kolumn ändras dess standardvärde.Syntax: Skapa tabell tabellnamn (kolumndatatyp,...…. Standardvärde för kolumndatatyp);Exempel: Skapa tabell student (student_id int,student_name varchar(20),student_dept varchar(20) default 'IT',classyear int); Utdataskärmen visar standardvärdet 'IT' tilldelad kolumn student_dept. 'IT' värde satt till kolumnen student_dept när inget värde anges för kolumnen student_dept .  # Lägger till DEFAULT-begränsning på kolumn med ALTER-satsen   Syntax : ändra tabell tabellnamnalter kolumnnamnuppsättning standardvärde;Exempel: ändra tabell studentalter student_deptset standard 'CS'; Syntax: ändra tabell table_namealter column_namedrop default;Exempel: ändra tabell studentalter student_deptdrop default; Främmande nyckel Främmande nyckel är en länk mellan två tabeller. Primärnyckeln för en tabell kan vara referens/främmande nyckel för en annan tabell. Tabellen, som innehåller främmande nyckel, kallas barntabell och annan tabell vars primärnyckel refererar till att tabellen är en överordnad tabell. Användaren måste ange poster i den överordnade tabellen före den underordnade tabellen om det inte finns några data i den överordnade tabellen. En tabell kan ha en enda primärnyckel.AVDELNINGStabell
DEPT_ID DEPT_NAME DEPT_HEAD DEPT_LOC
0001 IT Mr. S.K. Mishra 06
0002 CS Mr. D.P. Patil 04
0003 EXTC Mrs. S.K. Bhosale 05
0004 MECH Mr. A.B. Jha 07
STUDENTtabell
STUDENT_ID STUDENT_NAME DEPT_NAME KLASSÅR
10001 RAM IT 02
10002 KIRAN IT 04
10003 NEHA CS 01
10004 ROOPA MECH 01
STUDENT Primärnyckel   student_idUtländsk nyckel   dept_nameAVDELNING Primärnyckel   dept_nameHär är DEPARTMENT överordnad tabell och STUDENT är underordnad tabell. Primärnyckeln i tabellen AVDELNING hänvisas till som främmande nyckel i elevtabellen med namnet avd_namn. Det kan vara möjligt att två tabeller kan ha kolumner med samma namn. Anta att i elevtabellen dept_name finns med ett annat namn som student_dept eller något annat skapar det inga problem. Tabell kan innehålla en eller flera främmande nycklar.# Tillämpa begränsning medan tabell skapas Syntax: //  Överordnad tabell måste innehålla en primärnyckel Skapa tabell tabellnamn(kolumndatatyp Primärnyckel,Kolumn ……..,Datatyp kolumn n);//underordnad tabell innehåller främmande nyckel Skapa tabell tabellnamn(kolumndatatyp,…………,Främmande nyckel(kolumnnamn)Referenser parent_table_name(kolumnnamn på primärnyckel));Exempel: Skapa tabellavdelning(dept_id int,dept_name varchar(30) Primary key,dept_head varchar(50),dept_loc int);Skapa tabell student(student_id int primärnyckel,student_name varchar(30),dept_name varchar(30),classyear int,Foreign nyckel (avd_namn)Referensavdelning (avd_namn)); # Tillämpa begränsning av främmande nyckel med Alter-satsen Syntax: ändra tabell tabellnamn lägg till främmande nyckel (kolumnnamn)referenser föräldertabellnamn (kolumnnamn för primärnyckel);Exempel: ändra tabell studentlägg till främmande nyckel (avd_namn)referensavdelning(avd_namn);Syntax: ändra tabell tabellnamn lägg till begränsning begränsningsnamn främmande nyckel (kolumnnamn)referenser föräldertabellnamn (kolumnnamn för primärnyckel);Exempel: ändra tabell studentadd constraint fk_studentforeign key (dept_name)referens department(dept_name);# DROP constraint Syntax: ändra tabell table_namedrop främmande nyckel constraint_name;Exempel: ändra tabell studentdrop främmande nyckel fk_student;Skapa tabell student (student_id int, student_name varchar(50) not null, student_dept varchar(30) default 'IT',classyear int check (klassår<5 och klassår>0), primärnyckel (student_id) );


  1. Betygsätt din databas Performance Monitoring Setup

  2. Hur man får gårdagens datum i T-SQL

  3. SQL Server 2016:Återställ en databas

  4. Markör i proceduren returnerar fler värden än fråga