Vzhledem k tomu, že databáze obsahují velké množství dat, je pro nás všechny velmi důležité zvýšit přesnost a spolehlivost dat přítomných v databázi. No, omezení SQL se používají k udržení stejného. Existují různé typy omezení, která lze použít. V tomto článku proberu tato omezení na příkladech.
Tento článek bude obsahovat následující témata:
- Co jsou omezení?
- Omezení dostupná v SQL:
- NENÍ NULL omezení
- JEDINEČNÉ omezení
- ZKONTROLUJTE omezení
- VÝCHOZÍ omezení
- Omezení INDEX
Co jsou omezení SQL?
Omezení SQL se používají k určení pravidel pro data v tabulce. Ty se používají k omezení toho, jaký typ dat musí být uložen v databázi, a jejich cílem je zvýšit přesnost a spolehlivost dat uložených v databázi.
Omezení tedy zajišťují, že nedochází k žádnému porušení, pokud jde o transakci dat, a přesto bylo zjištěno jakékoli porušení; akce bude ukončena.
Existují dva typy omezení, která lze použít:
- Omezení na úrovni sloupců – Tato omezení se použijí na jeden sloupec
- Omezení na úrovni tabulky – Tato omezení platí pro celou tabulku
Postup v tomto článku kupředu, abychom pochopili různé typy omezení. Také se chystám zvážit následující tabulku, která vám pomůže lépe porozumět.
Dostupná různá omezení SQL:
NENÍ NULL omezení
Omezení NOT NULL zajišťuje, že sloupec nemůže mít hodnotu NULL. Omezení NOT NULL můžete použít buď při vytváření databáze tabulek, nebo při její úpravě.
Příklad
NOT NULL Omezení na CREATE TABLE
Napište dotaz pro vytvoření výše uvedené tabulky Studenti, kde StudentID a StudentName nemohou mít hodnotu NULL.
CREATE TABLE Students( StudentID int NOT NULL, StudentName varchar(255) NOT NULL, Age int, City varchar(255) );
NOT NULL Omezení na ALTER TABLE
Napište dotaz ke změně výše uvedené tabulky Studenti, kam je třeba přidat nový sloupec DOB a neměl by mít žádné hodnoty NULL.
ALTER TABLE Students ADD COLUMN DOB year NOT NULL;
Posuneme-li se v tomto článku o omezeních SQL dále, pojďme pochopit, jak používat omezení UNIQUE.
JEDINEČNÉ omezení
Omezení UNIQUE se používá k zajištění toho, že všechny hodnoty ve sloupci jsou jedinečné. Omezení UNIQUE můžete použít buď na více sloupců, nebo na jeden sloupec s. Kromě toho můžete pokračovat a použít omezení UNIQUE k úpravě existujících tabulek.
Poznámka:
- Při vytváření tabulek má omezení PRIMARY KEY automaticky omezení UNIKÁTNÍ, aby byla zaručena jedinečnost sloupce.
- Tabulka může mít mnoho UNIKÁTních omezení, ale může mít jediné omezení primárního klíče.
Příklad:
JEDINEČNÉ omezení pro CREATE TABLE
Napište dotaz pro vytvoření tabulky Studenti se sloupci StudentID, StudentName, Age a City. Zde musí být StudentID jedinečné pro každý záznam.
CREATE TABLE Students ( StudentID int NOT NULL UNIQUE, StudentName varchar(255) NOT NULL, Age int, City varchar(255) );
Pojmenujte UNIKÁTNÍ omezení pro více sloupců
Chcete-li pojmenovat jedinečné omezení a definovat jej pro více sloupců, můžete se podívat na následující příklad:
Napište dotaz pro vytvoření tabulky Studenti se sloupci StudentID, StudentName, Age a City. Zde musí být ID studenta a jméno studenta jedinečné pro každý záznam.
CREATE TABLE Students ( StudentID int NOT NULL, StudentName varchar(255) NOT NULL, Age int, City varchar(255) CONSTRAINT Stu_Example UNIQUE (StudentID,StudentName) );
V tomto případě je Stu_Example název přidělený jedinečnému omezení aplikovanému na StudentID a StudentName.
JEDINEČNÉ omezení na ALTER TABLE
Napište dotaz pro změnu tabulky Studenti, kde je třeba přidat do sloupce StudentID omezení UNIQUE.
ALTER TABLE Students ADD UNIQUE (StudentID);
Podobně, pokud chcete použít omezení UNIQUE na více sloupcích a také je pojmenovat, můžete napsat dotaz následovně:
ALTER TABLE Students ADD CONSTRAINT Stu_Example UNIQUE (StudentID,StudentName);
Zrušte UNIKÁTNÍ omezení
Chcete-li zrušit omezení určené pro sloupec, můžete použít konvenci pojmenování, kterou jste možná zmínili při přidávání omezení.
Pokud například musíme napsat dotaz, abychom zrušili omezení UNIQUE, které jsme vytvořili výše, můžete dotaz napsat následovně:
ALTER TABLE Students DROP CONSTRAINT Stu_Example;
Dále v tomto článku o omezeních SQL pochopíme, jak používat omezení CHECK.
ZKONTROLUJTE omezení
Omezení CHECK zajišťuje, že všechny hodnoty ve sloupci splňují určitou podmínku.
Příklad:
ZKONTROLUJTE omezení na CREATE TABLE
Napište dotaz pro vytvoření tabulky Studenti se sloupci StudentID, StudentName, Age a City. Zde musí být město MUmbai.
CREATE TABLE Students ( StudentID int NOT NULL UNIQUE, StudentName varchar(255) NOT NULL, Age int, City varchar(255)CHECK (City==’Mumbai’) );
ZKONTROLUJTE omezení na více sloupcích
Chcete-li použít kontrolní omezení na více sloupcích, můžete napsat dotaz takto:
Napište dotaz pro vytvoření tabulky Studenti se sloupci StudentID, StudentName, Age a City. Zde musí být město Bombaj a věk studentů musí být> 19.
CREATE TABLE Students ( StudentID int NOT NULL, StudentName varchar(255) NOT NULL, Age int, City varchar(255)CHECK (City==’Mumbai’ AND Age>19));
Podobně můžete použít omezení CHECK také s příkazem ALTER TABLE. Viz níže.
ZKONTROLUJTE omezení na ALTER TABLE
Napište dotaz pro změnu tabulky Studenti, kde musí být do sloupce Město přidáno omezení CHECK. Tady musí být město Bombaj.
ALTER TABLE Students ADD CHECK (City=='Mumbai');
Podobně, pokud chcete použít omezení CHECK pojmenováním, můžete napsat dotaz následovně:
ALTER TABLE Students ADD CONSTRAINT StuCheckExample CHECK (City=='Mumbai');
Zrušte omezení CHECK
Chcete-li zrušit omezení určené pro sloupec, můžete použít konvenci pojmenování, kterou jste možná zmínili při přidávání omezení.
Pokud například musíme napsat dotaz, abychom zrušili omezení CHECK, které jsme vytvořili výše, můžete dotaz napsat následovně:
ALTER TABLE Students DROP CONSTRAINT StuCheckExample;
V tomto článku o omezeních SQL dále porozumíme tomu, jak používat omezení DEFAULT.
VÝCHOZÍ omezení
Omezení DEFAULT se používá ke zmínce o sadě výchozích hodnot pro sloupec, pokud není zadána žádná hodnota. Podobně jako u ostatních omezení můžeme toto omezení použít v příkazu CREATE a ALTER table.
Příklad
Napište dotaz pro vytvoření tabulky Studenti se sloupci StudentID, StudentName, Age a City. Také když není ve sloupci Město vložena žádná hodnota, musí být automaticky zahrnuto Dillí.
CREATE TABLE Students ( StudentID int NOT NULL, StudentName varchar(255) NOT NULL, Age int, City varchar(255)DEFAULT ‘Delhi’);
VÝCHOZÍ omezení na ALTER TABLE
Chcete-li použít omezení DEFAULT s příkazem ALTER TABLE, můžete napsat dotaz takto:
ALTER TABLE Students ADD CONSTRAINT StuDefauExample DEFAULT 'Mumbai' FOR City;
Zrušte výchozí omezení
Chcete-li zrušit omezení DEFAULT, můžete použít příkaz ALTER TABLE takto:
ALTER TABLE Students ALTER COLUMN City DROP DEFAULT;
Dále v tomto článku o omezeních SQL pochopíme, jak používat omezení INDEX.
Omezení INDEX
Omezení INDEX se používá k vytváření indexů v tabulce. Pomocí těchto indexů můžete velmi rychle vytvářet a načítat data z databáze.
Syntaxe
--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));
Příklad
Napište dotaz pro vytvoření indexu s názvem Stu_index v tabulce Studenti, ve které je uloženo StudentName.
CREATE INDEX Stu_index ON Students (StudentName);
Podobně pro odstranění indexu z tabulky musíte použít příkaz DROP s názvem indexu.
DROP INDEX Students.Stu_index;
Kromě výše uvedených omezení jsou za omezení považovány také PRIMÁRNÍ KLÍČ a CIZÍ KLÍČ. Omezení PRIMARY KEY se používá k definování omezení, jak konkrétní sloupec jednoznačně identifikuje každou n-tici. Omezení FOREIGN KEY se používá ke spojení dvou tabulek na základě vztahu.
Tímto se dostáváme ke konci tohoto článku. Doufám, že jste pochopili, jak používat různá omezení přítomná v databázi. Pokud se chcete dozvědět více o MySQL a seznámit se s touto relační databází s otevřeným zdrojovým kódem, podívejte se na naše certifikační školení MySQL DBA který přichází s instruktorem vedeným živým školením a zkušenostmi z reálného života. Toto školení vám pomůže porozumět MySQL do hloubky a pomůže vám dosáhnout zvládnutí tohoto předmětu.
Máte na nás otázku? Zmiňte to prosím v sekci komentářů k tomuto článku o omezeních SQL a já se vám ozvu.