sql >> Databáze >  >> RDS >> Database

OMEZENÍ SQL

SQL Constraints specifikuje pravidla/omezení/omezení pro data obsažená v tabulce. Omezení SQL jsou specifikována v době vytvoření tabulky nebo po vytvoření tabulky pomocí příkazu ALTER. Existují dva typy omezení omezení na úrovni sloupců a omezení na úrovni tabulky .Jak určuje úroveň sloupce názvu, určuje konkrétní sloupec. V omezení na úrovni tabulky určuje více než jeden sloupec nebo všechny sloupce v tabulce.NOT NULL: Zajišťuje, že zadaná hodnota sloupce nemůže být NULL.UNIQUE: Zajišťuje, že každá hodnota ve sloupci je jiná.PRIMÁRNÍ KLÍČ: Primární klíč zajišťuje jak NOT NULL, tak UNIQUE. To znamená, že hodnota nemůže být nulová a měla by se od sebe lišit. Primární klíč tedy jednoznačně identifikuje každý záznam v tabulce.CIZI KLÍČ: Jednoznačně identifikuje záznam z jiné tabulky. Cizí klíč je odkaz na jinou tabulku a je jako primární klíč z jiné tabulky.VÝCHOZÍ: Pokud hodnota není zadána, nastaví výchozí hodnotu.KONTROLA: Zajišťuje, že všechny hodnoty ve sloupci splňují podmínku.INDEX: Index je vytvořen a používán k získávání dat z databáze.

NENÍ NULL

Výchozí hodnota pro každý sloupec je NULL. Omezení Not Null zajišťuje, že hodnota sloupce by neměla být nulová. Toto omezení vždy zajistí, že sloupec má nějakou hodnotu. Neumožňuje vkládání nebo aktualizaci záznamu bez uvedení hodnoty v tomto poli. Uživatel může přidat toto omezení do jednoho nebo více nebo všech sloupců tabulky.Syntaxe: CREATE  TABLE název_tabulky (sloupec 1 typ dat NOT NULL,………);Příklad: Vytvořte tabulku STUDENT(student_id int NOT NULL,student_name varchar(10),student_dept varchar(10) NOT NULL,classyear int); Ve výše uvedeném příkladu NOT NULL omezení je aplikováno na dva sloupce student_id a student_dept v tabulce STUDENT při vytváření tabulky. Popis tabulky STUDENT ukazuje, které sloupce mohou být NULL a které nemohou být NULL. Podívejte se na výstupní obrazovku v době vkládání hodnot do tabulky, omezení null neumožňuje zadat hodnotu NULL do polí, na která je omezení aplikováno.JEDINEČNÉ Jedinečné omezení zabraňuje duplicitním záznamům ve sloupci. Jedna tabulka může mít více jedinečných klíčů.Syntaxe: CREATE  TABLE název_tabulky (sloupec 1 datový typ UNIQUE,………);Příklad: vytvořit tabulku student(student_id int Unique,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ); Výše uvedený dotaz můžete napsat v jiné formě. Vytvořit tabulku student(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ,unique (student_id));# definovat více sloupců jedinečných najednou Syntaxe: CREATE  TABLE název_tabulky (sloupec 1 datový typ, ……… sloupec n, omezení název_podmínky Jedinečné (sloupec1,..));Příklad: vytvořit tabulku student(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ,Constraint cs_studentunique (student_id, student_name)); # Přidat UNIKÁTNÍ omezení pomocí příkazu ALTERSyntaxe: Změnit tabulku název_tabulkyPřidat jedinečný (název_sloupce);Příklad: Změnit tabulku StudentAdd Unique (student_id);Syntaxe: Změnit tabulku název_tabulkyPřidat omezení název_podmínky Jedinečné (sloupec1,sloupec2);Příklad: Změnit tabulku StudentAdd Omezení cs_student Unique (id_student,student_name);Primární klíč Primární klíč jednoznačně identifikuje každý záznam ve sloupci, jedna tabulka má jeden primární klíč. Primárním klíčem může být jeden sloupec nebo skupina sloupců.Syntaxe: Vytvořte tabulku název_tabulky( datový typ sloupce Primární klíč, datový typ sloupce2,………);Příklad: Vytvořit tabulku STUDENT(student_id int Primary Key,student_name varchar(20),student_dept varchar(20),classyear int); Syntaxe: Vytvořte tabulku název_tabulky( datový typ sloupec1, datový typ sloupec2,………sloupec n datový typ,Primární klíč (název_sloupce));Příklad: Vytvořit tabulku Student(student_id int,student_name varchar(10),student_dept varchar(10),classyear int,Primary key (student_id)); # Použití příkazu ALTER Syntaxe: alter table table_nameadd primární klíč (název_sloupce); Příklad: alter table studentadd primární klíč (student_id); Syntaxe: alter table table_namedrop primární klíč;Příklad: změnit primární klíč studentdrop tabulky;

VÝCHOZÍ

Omezení DEFAULT se používá k nastavení výchozí hodnoty sloupce. Toto omezení lze použít na jeden sloupec nebo více sloupců. NULL je výchozí hodnota pro všechny sloupce v tabulce. Když uživatel na žádný sloupec nepoužije omezení null nebo primární, jeho výchozí hodnota se změní.Syntaxe: Vytvořte tabulku název_tabulky (datový typ sloupce,…….výchozí hodnota datového typu sloupce);Příklad: Vytvořit tabulku student (student_id int,student_name varchar(20),student_dept varchar(20) default 'IT',classyear int); Výstupní obrazovka zobrazuje výchozí hodnotu ‘IT‘ přiřazeno do sloupce student_odd. „IT“ hodnota nastavena do sloupce student_dept když není zadána žádná hodnota pro sloupec student_dept . # Přidání DEFAULT omezení na sloupec pomocí příkazu ALTER   Syntaxe: alter table table_namealter column_nameset výchozí hodnota;Příklad: změnit tabulku studentalter student_deptset výchozí 'CS'; Syntaxe: alter table table_namealter column_namedrop default;Příklad: alter table studentalter student_deptdrop výchozí; Zahraniční klíč Cizí klíč je spojnicí mezi dvěma tabulkami. Primární klíč jedné tabulky může být referenčním/cizím klíčem jiné tabulky. Tabulka, která obsahuje cizí klíč, se nazývá podřízená tabulka a další tabulka, jejíž primární klíč odkazoval na tuto tabulku, je nadřazená tabulka. Uživatel musí zadat záznamy v nadřazené tabulce před podřízenou tabulkou, pokud v nadřazené tabulce nejsou žádná data. Jedna tabulka může mít jeden primární klíč.Tabulka ODDĚLENÍ
DEPT_ID DEPT_NAME DEPT_HEAD DEPT_LOC
0001 IT Pan S.K. Mishra 06
0002 CS Pan D.P. Patil 04
0003 EXTC Paní S.K. Bhosale 05
0004 MECH Pan A.B. Jha 07
Stůl STUDENT
STUDENT_ID STUDENT_NAME DEPT_NAME CLASSYEAR
10001 RAM IT 02
10002 KIRAN IT 04
10003 NEHA CS 01
10004 ROOPA MECH 01
STUDENT Primární klíč   student_idForeign key   dept_nameODDĚLENÍ Primární klíč   dept_nameHere, DEPARTMENT je nadřazená tabulka a STUDENT je podřízená tabulka. Primární klíč tabulky ODDĚLENÍ odkazovaný jako cizí klíč v tabulce studentů pojmenované jako název_oddělení. Je možné, že dvě tabulky mohou mít sloupec se stejným názvem. Předpokládejme, že v tabulce studentů je název_oddělení přítomen s jiným názvem, jako je oddělení_studenta nebo jakýkoli jiný, nezpůsobuje to žádný problém. Tabulka může obsahovat jeden nebo více cizích klíčů.# Při vytváření tabulky použít omezení Syntaxe: //  Nadřazená tabulka musí obsahovat primární klíč Vytvořte tabulku název_tabulky (datový typ sloupce Primární klíč, Sloupec …….., Sloupec n datový typ);//podřízená tabulka obsahuje cizí klíč Vytvořte tabulku název_tabulky(datový typ sloupce,……,Cizí klíč(název_sloupce)Odkazy nadřazený_název_tabulky(název_sloupce primárního klíče));Příklad: Vytvořit tabulku department(dept_id int,dept_name varchar(30) Primary key,dept_head varchar(50),dept_loc int);Create table student(student_id int primární klíč,student_name varchar(30),dept_name varchar(30),classyear int,Foreign klíč (název_oddělení)Oddělení referencí (název_oddělení)); # Použít omezení cizího klíče pomocí příkazu Alter Syntaxe: změnit tabulku název_tabulkypřidat cizí klíč (název_sloupce)odkazy název_nadřazené_tabulky (název_sloupce primárního klíče);Příklad: alter table studentadd cizí klíč (název_oddělení)reference oddělení(název_oddělení);Syntaxe: alter table table_nameadd constraint_namecizí klíč (název_sloupce)reference parent_table_name (název_sloupce primárního klíče);Příklad: alter table studentadd omezení fk_studentforeign key (dept_name)references department(dept_name);# DROP constraint Syntaxe: alter table table_namedrop cizí klíč constraint_name;Příklad: změnit tabulku studentdrop cizí klíč fk_student;Vytvořit tabulku student (student_id int, student_name varchar(50) není null, student_dept varchar(30) výchozí 'IT', classyear int check (classyear<5 a classyear>0), primární klíč (student_id) );


  1. jak používat položky tns s ovladači makromédií pro Oracle

  2. Co je technologie Java JPA?

  3. Chyby ve vývoji na Heroku

  4. Vložení spouštěče pro aktualizaci jiné tabulky pomocí PostgreSQL