SQL - Korlátok
Sql korlátok:
- nem mulla (not null)
- egyedi (unique)
- elsődleges kulcs (primary key)
- idegen kulcs (foreign key)
- ellenőrzés (check)
- alapértelmezett (default)
Sql nem null (not null):
Az sql NOT NULL parancs érvényesíti az oszlopot és nem fogadja el a nulla értékeket. A NOT NULL parancs érvényesít minden mezőt, és minden esetben tartalmaz értéket.
A következő példában az SQL érvényesíti a "személyek_azonosító" és a "vezetéknév"oszlopot és az oszlopban nem fogadja el a nulla értékek.
CREATE TABLE személyek
(
személyek_azonosító int NOT NULL,
vezetéknév varchar(255) NOT NULL,
keresztnév varchar(255),
cím varchar(255),
város varchar(255)
)
SQL egyedi (unique) kényszer:
Az egyedi UNIQUE megszorítás egyedileg azonosít minden egyes rekord egy adatbázison belül minden táblában.
SQL egyedi (unique) kényszer a új táblában:
Az alábbi SQL parancs létrehoz egy egyedi (UNIQUE) korlátozást a "személyek_azonosító" oszlopban, ha a "személyek" tábla létre jön:
Mysql:
CREATE TABLE személyek
(
szeméyek_azonosító int NOT NULL,
vezetéknév varchar(255) NOT NULL,
keresztnév varchar(255),
cím varchar(255),
város varchar(255),
UNIQUE (P_Id)
)
SQL Server / Oracle / MS Access:
CREATE TABLE személyek
(
személyek_azonosító int NOT NULL UNIQUE,
vezetéknév varchar(255) NOT NULL,
keresztnév varchar(255),
cím varchar(255),
város varchar(255)
)
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE személyek
(
személyek_azonosító int NOT NULL,
vezetéknév varchar(255) NOT NULL,
keresztnév varchar(255),
cím varchar(255),
város varchar(255),
CONSTRAINT uc_személyek azonosító UNIQUE (személyek_azonosító,vezetéknév)
)
SQL egyedi (unique) kényszer változó táblában:
Hozzon létre egy egyedi korlátozás a "személyek_azonosító" oszlopban, ha már létezik a táblázat:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE személyek
ADD UNIQUE (szeméylek_azonosító)
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE személyek
ADD CONSTRAINT uc_személyek azonosító UNIQUE (személyek_azonosító,vezetéknév)
Egyedi kulcs visszavonása drop paranccsal:
MySQL:
ALTER TABLE személyek
DROP INDEX uc_személyek_azonosító
SQL Server / Oracle / MS Access:
ALTER TABLE személyek
DROP CONSTRAINT uc_személyek_azonosító