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

SQL BEGRÆNSNINGER

SQL Constraints specificerer regler/begrænsninger/begrænsninger for data, der findes i tabellen. SQL-begrænsninger er angivet på tidspunktet for tabeloprettelse eller efter tabeloprettelse ved hjælp af ALTER-kommandoen. Der er to typer begrænsninger restriktioner på kolonneniveau og begrænsning på tabelniveau .Som navnet på kolonneniveauet angiver, angiver det en bestemt kolonne. I en begrænsning på tabelniveau angiver den mere end én kolonne eller alle kolonner i tabellen.IKKE NULL: Det sikrer, at den angivne kolonneværdi ikke kan være NULL.UNIKK: Det sikrer, at hver værdi i kolonnen er forskellig.PRIMÆR NØGLE: Primær nøgle sikrer både IKKE NULL og UNIK. Det betyder, at værdien ikke kan være nul, og at den bør være forskellig fra hinanden. Derfor identificerer primær nøgle entydigt hver post i tabellen.FREIGN KEY: Det identificerer entydigt post fra anden tabel. Fremmednøgle er en reference til den anden tabel, og den er ligesom den primære nøgle fra den anden tabel.STANDARD: Den indstiller standardværdien, når værdien ikke er givet.check: Det sikrer, at alle værdier i kolonnen opfylder en betingelse.INDEKS: Indeks oprettes og bruges til at hente data fra databasen.

IKKE NULL

Standardværdien for hver kolonne er NULL. Not Null-begrænsninger sikrer, at kolonneværdien ikke skal null. Denne begrænsning sørger altid for, at kolonnen har en vis værdi. Det tillader ikke indsættelse eller opdatering af post uden at nævne værdi til dette felt. Brugeren kan tilføje denne begrænsning til enkelte eller flere eller alle kolonner i tabellen.Syntaks: CREATE  TABLE tabelnavn (kolonne 1 datatype IKKE NULL,………);Eksempel: Opret tabel STUDENT(student_id int NOT NULL,student_name varchar(10),student_dept varchar(10) NOT NULL,classyear int); I ovenstående eksempel, IKKE NULL begrænsning anvendes på to kolonner student_id og student_dept i STUDENT-tabellen, mens tabellen oprettes. Beskrivelse af STUDENT-tabellen viser, hvilke kolonner der kan være NULL eller ikke kan være NULL. Se outputskærmbilledet på tidspunktet for indsættelse af værdier i tabellen, ikke null-begrænsning tillader ikke indtastning af NULL-værdi til de felter, hvor begrænsningen er anvendt.UNIQUE Unik begrænsning undgå duplikerede poster i kolonnen. Én tabel kan have flere unikke nøgler.Syntaks: CREATE  TABLE tabelnavn (kolonne 1 datatype UNIQUE,………);Eksempel: oprette tabel elev(student_id int Unique,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ); Du kan skrive ovenstående forespørgsel i anden form. Opret tabel elev(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ,unique (student_id));# definer flere kolonner unikke på én gang Syntaks: OPRET  TABEL tabelnavn(kolonne 1 datatype, ……… kolonne n, begrænsning begrænsning_navn Unik (kolonne1,..));Eksempel: oprette tabel elev(student_id int, elev_navn varchar(10) unik, student_dept varchar(10) ikke null, klasseår int ,Constraint cs_studentunique (student_id, elev_name)); # Tilføj UNIK begrænsning ved hjælp af ALTER-sætningSyntaks: Skift tabel tabelnavnTilføj unik (kolonnenavn);Eksempel: Skift tabel StudentAdd Unique (student_id);Syntaks: Ændre tabel tabelnavnTilføj begrænsning begrænsning_navn Unik (kolonne1,kolonne2);Eksempel: Skift tabel StudentAdd Constraint cs_student Unique (student_id, student_name);Primær nøgle Primær nøgle identificerer entydigt hver post i kolonnen, én tabel har en enkelt primær nøgle. Primær nøgle kan være en enkelt kolonne eller gruppe af kolonner.Syntaks: Opret tabel tabelnavn( kolonne datatype Primær nøgle, kolonne 2 datatype,………);Eksempel: Opret tabel STUDENT(student_id int Primary Key,student_name varchar(20),student_dept varchar(20),classyear int); Syntaks: Opret tabel tabelnavn( kolonne1 datatype, kolonne2 datatype,………kolonne n datatype, Primær nøgle (kolonne_navn));Eksempel: Opret tabel Student(student_id int,student_name varchar(10),student_dept varchar(10),classyear int,Primary key (student_id)); # Brug af ALTER-sætning Syntaks: ændre tabel tabelnavntilføj primær nøgle (kolonnenavn); Eksempel: ændre tabel studentadd primær nøgle (student_id); Syntaks: alter table table_namedrop primærnøgle;Eksempel: ændre tabel studentdrop primær nøgle;

STANDARD

DEFAULT-begrænsningen bruges til at indstille standardværdien til kolonnen. Denne begrænsning kan anvendes på enkelt kolonne eller flere kolonner. NULL er en standardværdi for alle kolonnerne i tabellen. Når brugeren ikke anvender null eller primær begrænsning på en kolonne, ændres dens standardværdi.Syntaks: Opret tabel tabelnavn (Kolonnedatatype,…….Standardværdi for kolonnedatatype);Eksempel: Opret tabel elev (student_id int,student_name varchar(20),student_dept varchar(20) default 'IT',classyear int); Outputskærmen viser standardværdien 'IT' tildelt kolonne elev_afd. 'IT' værdi sat til kolonnen student_dept når der ikke er angivet nogen værdi for kolonnen student_dept .  # Tilføjelse af DEFAULT-begrænsning på kolonne ved hjælp af ALTER-sætning   Syntaks: ændre tabel tabelnavnalter kolonnenavnsæt standardværdi;Eksempel: ændre tabel studentalter student_deptset standard 'CS'; Syntaks: ændre tabel table_namealter column_namedrop standard;Eksempel: ændre tabel studentalter student_deptdrop standard; Udenlandsk nøgle Fremmednøgle er et led mellem to tabeller. Primærnøgle for en tabel kan være reference/fremmednøgle til en anden tabel. Tabellen, som indeholder fremmednøgle, kaldes undertabel og anden tabel, hvis primærnøgle refererer til, at tabellen er en overordnet tabel. Brugeren skal indtaste poster i den overordnede tabel før den underordnede tabel, hvis der ikke er nogen data til stede i den overordnede tabel. Én tabel kan have en enkelt primær nøgle.AFDELINGSTabel
DEPT_ID DEPT_NAME DEPT_HEAD DEPT_LOC
0001 IT Hr. S.K. Mishra 06
0002 CS Hr. D.P. Patil 04
0003 EXTC Mrs. S.K. Bhosale 05
0004 MECH Hr. A.B. Jha 07
STUDENT-tabel
STUDENT_ID STUDENT_NAME DEPT_NAME KLASSEÅR
10001 RAM IT 02
10002 KIRAN IT 04
10003 NEHA CS 01
10004 ROOPA MECH 01
STUDENT Primær nøgle   student_id Fremmednøgle   afd.navnAFDELING Primær nøgle   afd.navnHer er DEPARTMENT overordnet tabel, og STUDENT er underordnet tabel. Primær nøgle i AFDELINGStabellen refereret til som fremmednøgle i elevtabellen navngivet som afd.navn. Det kan være muligt, at to tabeller kan have kolonne med samme navn. Antag, at i elevtabellen afd.navn er til stede med et andet navn som elev_afdeling eller noget som helst, skaber det ikke noget problem. Tabel kan indeholde en eller flere fremmednøgler.# Anvend begrænsning under oprettelse af tabel Syntaks: //  Overordnet tabel skal indeholde en primær nøgle Opret tabel tabelnavn (kolonne datatype Primær nøgle, Kolonne …….., Kolonne n datatype);//underordnet tabel indeholder fremmednøgle Opret tabel tabelnavn(kolonnedatatype,…………,fremmednøgle(kolonnenavn)Referencer parent_tabelnavn(kolonnenavn på primærnøgle));Eksempel: Opret tabelafdeling(dept_id int,dept_name varchar(30) Primær nøgle,dept_head varchar(50),dept_loc int);Opret tabel elev(student_id int primærnøgle,student_name varchar(30),dept_name varchar(30),classyear int,Udenlandsk nøgle (dept_name)Referenceafdeling (dept_name)); # Anvend fremmednøglebegrænsning ved hjælp af Alter-sætning Syntaks: ændre tabel tabelnavntilføj fremmednøgle (kolonnenavn)referencer overordnet tabelnavn (kolonnenavn på primærnøgle);Eksempel: ændre tabel elevtilføj fremmednøgle (afd.navn)referencer afdeling(afd.navn);Syntaks: ændre tabel tabelnavntilføj begrænsning constraint_namefremmed nøgle (kolonne_navn)referencer parent_table_name (kolonnenavn på primærnøgle);Eksempel: ændre tabel studentadd constraint fk_studentforeign key (dept_name)references department(dept_name);# DROP constraint Syntaks: ændre tabel tabelnavndrop udenlandsk nøgle constraint_name;Eksempel: ændre tabel studentdrop fremmednøgle fk_student;Opret tabel elev (student_id int, student_name varchar(50) not null, student_dept varchar(30) default 'IT',classyear int check (classyear<5 og classyear>0), primærnøgle (student_id) );


  1. Parametriserede forespørgsler med psycopg2 / Python DB-API og PostgreSQL

  2. Sådan fungerer FLOOR() i MariaDB

  3. Sådan slettes identitetsegenskaber for en kolonne i SQL Server-tabel - SQL Server / T-SQL vejledning 44

  4. django test app fejl - Der opstod en fejl ved oprettelse af testdatabasen:tilladelse nægtet til at oprette database