Otazky

Atributy sloupců v SQL

Primární klíč jednoznačně identifikuje řádek v tabulce. Sloupce nemusí být typu int jako primární klíč; mohou být jakéhokoli jiného typu.

Nastavení primárního klíče na úrovni tabulky:

USE productsdb; CREATE TABLE Customers ( Id INT, Age INT, FirstName VARCHAR(20), LastName VARCHAR(20), PRIMARY KEY(Id) );

Primární klíč může být složený. Takový klíč používá několik sloupců najednou k jednoznačné identifikaci řádku v tabulce:

CREATE TABLE OrderLines ( OrderId INT, ProductId INT, Quantity INT, Price MONEY, PRIMARY KEY(OrderId, ProductId) )

Zde pole OrderId a ProductId společně fungují jako složený primární klíč. To znamená, že v tabulce OrderLines nemohou být dva řádky, kde mají obě tato pole současně stejné hodnoty.

AUTO_INCREMENT

Atribut AUTO_INCREMENT umožňuje určit, že hodnota sloupce se bude automaticky zvyšovat při přidání nového řádku. Tento atribut funguje pro sloupce, které představují celá čísla nebo čísla s plovoucí desetinnou čárkou.

CREATE TABLE Customers ( Id INT PRIMARY KEY AUTO_INCREMENT, Age INT, FirstName VARCHAR(20), LastName VARCHAR(20) );

V tomto případě se hodnota sloupce Id každého nově přidaného řádku zvýší o jedna.

UNIKÁTNÍ

Atribut UNIQUE určuje, že sloupec může ukládat pouze jedinečné hodnoty.

CREATE TABLE Customers ( Id INT PRIMARY KEY AUTO_INCREMENT, Age INT, FirstName VARCHAR(20), LastName VARCHAR(20), Phone VARCHAR(13) UNIQUE );

V tomto případě může sloupec Telefon, který představuje telefonní číslo zákazníka, ukládat pouze jedinečné hodnoty. A nebudeme moci do tabulky přidat dva řádky, které mají v tomto sloupci stejné hodnoty.

Tento atribut můžeme také definovat na úrovni tabulky:

CREATE TABLE Customers ( Id INT PRIMARY KEY AUTO_INCREMENT, Age INT, FirstName VARCHAR(20), LastName VARCHAR(20), Email VARCHAR(30), Phone VARCHAR(20), UNIQUE(Email, Phone) );

NULL a NOT NULL

Chcete-li určit, zda sloupec může přijímat hodnotu NULL, můžete při definování sloupce zadat atribut NULL nebo NOT NULL. Pokud tento atribut explicitně nepoužijete, sloupec bude standardně přijímat hodnoty NULL. Výjimkou je situace, kdy sloupec funguje jako primární klíč, v takovém případě bude sloupec standardně přijímat hodnotu NOT NULL.

CREATE TABLE Customers ( Id INT PRIMARY KEY AUTO_INCREMENT, Age INT, FirstName VARCHAR(20) NOT NULL, LastName VARCHAR(20) NOT NULL, Email VARCHAR(30) NULL, Phone VARCHAR(20) NULL );

V tomto případě bude mít sloupec Věk standardně atribut NULL.

DEFAULT

Atribut DEFAULT určuje výchozí hodnotu pro sloupec. Pokud při přidávání dat není pro sloupec zadána žádná hodnota, použije se pro něj výchozí hodnota.

CREATE TABLE Customers ( Id INT PRIMARY KEY AUTO_INCREMENT, Age INT DEFAULT 18, FirstName VARCHAR(20) NOT NULL, LastName VARCHAR(20) NOT NULL, Email VARCHAR(30) NOT NULL UNIQUE, Phone VARCHAR(20) NOT NULL UNIQUE );

Zde má sloupec Věk jako výchozí hodnotu 18.

KONTROLA

Atribut CHECK určuje omezení rozsahu hodnot, které lze uložit do sloupce. Za tímto účelem se za atributem CHECK v závorkách uvede podmínka, kterou musí sloupec nebo sloupce splňovat. Například věk zákazníků nesmí být menší než 0 ani větší než 100:

CREATE TABLE Customers ( Id INT AUTO_INCREMENT, Age INT DEFAULT 18 CHECK(Age >0 AND Age < 100), FirstName VARCHAR(20) NOT NULL, LastName VARCHAR(20) NOT NULL, Email VARCHAR(30) CHECK(Email !='' ), Phone VARCHAR(20) CHECK(Phone !='' ) );

Kromě kontroly věku také kontroluje, zda sloupce E-mail a Telefon nemohou mít jako hodnotu prázdný řetězec (prázdný řetězec není ekvivalentem hodnoty NULL).

Přečtěte si více
Objednat Galliformes kuřata, argus reprodukční chování aktivita argus velikost opeření ocas tečkovaný argus tance kohoutek lek páv ohnivý pták páv pláč dravci nepřátelé lek samec paví ocas peří zbarvení inkubace reprodukce hnízdo foto, Galliformes na - ZooSchool

Klíčové slovo AND se používá k propojení podmínek. Podmínky lze zadat jako porovnávací operace větší než (>), menší než (<), nerovná se (≠).

Příkaz CHECK lze použít i na úrovni tabulky:

CREATE TABLE Customers ( Id INT AUTO_INCREMENT, Age INT DEFAULT 18, FirstName VARCHAR(20) NOT NULL, LastName VARCHAR(20) NOT NULL, Email VARCHAR(30), Phone VARCHAR(20), CHECK((Age >0 AND Age<100) AND (Email !='' ) AND (Phone !='' )) );

Příkaz CONSTRAINT. Nastavení názvu omezení

Klíčové slovo CONSTRAINT umožňuje zadat název pro omezení. Jsou specifikována za klíčovým slovem CONSTRAINT, před atributy na úrovni tabulky:

CREATE TABLE Customers ( Id INT AUTO_INCREMENT, Age INT, FirstName VARCHAR(20) NOT NULL, LastName VARCHAR(20) NOT NULL, Email VARCHAR(30), Phone VARCHAR(20) NOT NULL, CONSTRAINT customers_pk PRIMARY KEY(Id), CONSTRAINT customer_phone_uq UNIQUE(Phone), CONSTRAINT customer_age_chk CHECK(Age >0 AND Age<100) );

V tomto případě se omezení pro PRIMARY KEY nazývá customers_pk , pro UNIQUE customer_phone_uq a pro CHECK customer_age_chk . Smyslem nastavení názvů omezení je, že později můžeme omezení prostřednictvím těchto názvů spravovat – mazat je nebo měnit.

Můžete nastavit název pro omezení PRIMARY KEY, CHECK, UNIQUE a FOREIGN KEY, která jsou popsána níže.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button