Korlátozás vagy angolosan constraint.
Az adatbázis-megszorítások célja a helytelen rekordok létrejöttének megakadályozása.
PRIMARY KEY
create table osztalyok( az int not null primary key auto_increment, nev varchar(50) );
Egyediségi kényszer:
UNIQUE
create table dolgozok ( az int not null primary key auto_increment, ig varchar(10) unique, nev varchar(50) );
Az idegenkulcsok általános szintaxisa:
[CONSTRAINT [szimbólum]] FOREIGN KEY [index_nev] (index_oszlop_nev, ...) REFERENCES tábla_név (index_oszlop_név,...) [ON DELETE hivatkozás_kapcsoló] [ON UPDATE hivatkozás_kapcsoló] hivatkozás_kapcsoló: RESTRICT | CASCADE | SET NULL | NO ACTION
Egyszerűbben:
FOREIGN KEY (<attribútumok>) REFERENCES <tábla> (<attribútumok>)
Példa:
create table osztalyok( az int not null primary key auto_increment, nev varchar(50) ); create table dolgozok( az int not null primary key auto_increment, nev varchar(50), osztalyAz int, foreign key (osztalyAz) references osztalyok (az) );
create table osztalyok( az int not null primary key auto_increment, nev varchar(50) ); create table dolgozok( az int not null primary key auto_increment, nev varchar(50), osztalyAz int, constraint dolgozok_megkotes foreign key (osztalyAz) references osztalyok (az) );
Hivatkozáskapcsolók:
create table osztalyok( az int not null primary key auto_increment, nev varchar(50) ); create table dolgozok( az int not null primary key auto_increment, nev varchar(50), osztalyAz int, constraint dolgozok_megkotes foreign key (osztalyAz) references osztalyok (az) on delete cascade on update cascade );
Nem lehet NULL feltételek
NOT NULL
Bonyolultabb meghatározások:
CHECK ...
Új érték esetén ellenőriz.
Érték tartományra való megszorítások
create table telepuleseink ( telepules varchar(50) check (telepules in ('Miskolc', 'Szolnok')) );
Felvenni csak Miskolc és Szolnok települést lehet.