Omezení v SQL znamená, že na databázi aplikujeme určité podmínky nebo omezení. To dále znamená, že před vložením dat do databáze kontrolujeme některé podmínky. Pokud podmínka, kterou jsme aplikovali na databázi, platí pro data, která mají být vložena, pak se do databázových tabulek vloží pouze data.
Omezení v SQL lze kategorizovat do dvou typů:
Omezení na úrovni sloupce se používá k aplikaci omezení na jeden sloupec.
Omezení na úrovni tabulky se používá k použití omezení na více sloupců.
Některé z reálných příkladů omezení jsou následující:
- Každý člověk má jedinečné e-mailové ID. Je to proto, že při vytváření e-mailového účtu pro libovolného uživatele služba poskytující e-mail, jako je Gmail, Yahoo nebo jakákoli jiná služba poskytující e-mail, vždy zkontroluje dostupnost e-mailového ID, které uživatel pro sebe chce. Pokud nějaký jiný uživatel již převezme e-mailové ID, které uživatel chce, nelze toto ID přiřadit jinému uživateli. To jednoduše znamená, že žádní dva uživatelé nemohou mít stejná e-mailová ID ve stejné službě poskytující e-mail. Zde je tedy id e-mailu omezením databáze služeb poskytujících e-maily.
- Kdykoli nastavujeme heslo pro jakýkoli systém, existují určitá omezení, která je třeba dodržovat. Tato omezení mohou zahrnovat následující:
- Heslo musí obsahovat jedno velké písmeno.
- Heslo musí mít alespoň osm znaků.
- Heslo musí obsahovat alespoň jeden speciální symbol.
Omezení dostupná v SQL jsou:
- NENULOVÝ
- UNIKÁTNÍ
- PRIMÁRNÍ KLÍČ
- CIZÍ KLÍČ
- ŠEK
- VÝCHOZÍ
- VYTVOŘIT INDEX
Nyní se pokusme pomocí příkladů podrobněji porozumět různým omezením dostupným v SQL. Pro psaní všech dotazů použijeme databázi MySQL.
1. NENÍ NULL
- NULL znamená prázdné, tj. hodnota není k dispozici.
- Kdykoli je sloupec tabulky deklarován jako NOT NULL, pak hodnota pro tento sloupec nemůže být pro žádný záznam tabulky prázdná.
- Ve sloupci musí existovat hodnota, na kterou se vztahuje omezení NOT NULL.
POZNÁMKA: NULL neznamená nulu. NULL znamená prázdný sloupec, dokonce ani nulu.
Syntaxe pro použití omezení NOT NULL během vytváření tabulky:
CREATE TABLE TableName (ColumnName1 datatype NOT NULL, ColumnName2 datatype,…., ColumnNameN datatype);
Příklad:
Vytvořte studentskou tabulku a při vytváření tabulky použijte omezení NOT NULL na jeden ze sloupců tabulky.
CREATE TABLE student(StudentID INT NOT NULL, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Abychom ověřili, že na sloupec tabulky je aplikováno nenulové omezení a studentská tabulka je úspěšně vytvořena, provedeme následující dotaz:
mysql> DESC student;
Syntaxe pro použití omezení NOT NULL na existující sloupec tabulky:
ALTER TABLE TableName CHANGE Old_ColumnName New_ColumnName Datatype NOT NULL;
Příklad:
Uvažujme, že máme existujícího studenta tabulky bez jakýchkoli omezení. Později jsme se rozhodli použít omezení NOT NULL na jeden ze sloupců tabulky. Poté provedeme následující dotaz:
mysql> ALTER TABLE student CHANGE StudentID StudentID INT NOT NULL;
Abychom ověřili, že se na sloupec studentské tabulky vztahuje nenulové omezení, provedeme následující dotaz:
mysql> DESC student;
2. UNIKÁTNÍ
- Duplicitní hodnoty nejsou povoleny ve sloupcích, na které se vztahuje omezení UNIQUE.
- Sloupec s jedinečným omezením bude vždy obsahovat jedinečnou hodnotu.
- Toto omezení lze použít na jeden nebo více než jeden sloupec tabulky, což znamená, že v jedné tabulce může existovat více než jedno jedinečné omezení.
- Pomocí omezení UNIQUE můžete také upravit již vytvořené tabulky.
Syntaxe pro použití omezení UNIQUE na jeden sloupec:
CREATE TABLE TableName (ColumnName1 datatype UNIQUE, ColumnName2 datatype,…., ColumnNameN datatype);
Příklad:
Vytvořte studentskou tabulku a při vytváření tabulky aplikujte UNIKÁTNÍ omezení na jeden ze sloupců tabulky.
mysql> CREATE TABLE student(StudentID INT UNIQUE, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Abychom ověřili, že je na sloupec tabulky aplikováno jedinečné omezení a že studentská tabulka je úspěšně vytvořena, provedeme následující dotaz:
mysql> DESC student;
Syntaxe pro použití omezení UNIQUE na více než jeden sloupec:
regáloví psi
CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype,…., ColumnNameN datatype, UNIQUE (ColumnName1, ColumnName 2));
Příklad:
Vytvořte studentskou tabulku a při vytváření tabulky aplikujte UNIKÁTNÍ omezení na více než jeden sloupec tabulky.
mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40), UNIQUE(StudentID, Student_PhoneNumber));
Abychom ověřili, že jedinečné omezení je aplikováno na více než jeden sloupec tabulky a že studentská tabulka je úspěšně vytvořena, provedeme následující dotaz:
mysql> DESC student;
Syntaxe pro použití omezení UNIQUE na existující sloupec tabulky:
ALTER TABLE TableName ADD UNIQUE (ColumnName);
Příklad:
Uvažujme, že máme existujícího studenta tabulky bez jakýchkoli omezení. Později jsme se rozhodli použít na jeden sloupec tabulky omezení UNIQUE. Poté provedeme následující dotaz:
mysql> ALTER TABLE student ADD UNIQUE (StudentID);
Abychom ověřili, že je na sloupec tabulky aplikováno jedinečné omezení a že studentská tabulka je úspěšně vytvořena, provedeme následující dotaz:
mysql> DESC student;
3. PRIMÁRNÍ KLÍČ
- Omezení PRIMARY KEY je kombinací omezení NOT NULL a Unique.
- Omezení NOT NULL a omezení UNIQUE společně tvoří PRIMÁRNÍ omezení.
- Sloupec, na který jsme aplikovali primární omezení, bude vždy obsahovat jedinečnou hodnotu a nebude umožňovat hodnoty null.
Syntaxe omezení primárního klíče během vytváření tabulky:
mysql show uživatelům
CREATE TABLE TableName (ColumnName1 datatype PRIMARY KEY, ColumnName2 datatype,…., ColumnNameN datatype);
Příklad:
Vytvořte studentskou tabulku a při vytváření tabulky použijte omezení PRIMARY KEY.
mysql> CREATE TABLE student(StudentID INT PRIMARY KEY, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Abychom ověřili, že je na sloupec tabulky aplikováno omezení primárního klíče a že studentská tabulka je úspěšně vytvořena, provedeme následující dotaz:
mysql> DESC student;
Syntaxe pro použití omezení primárního klíče na existující sloupec tabulky:
ALTER TABLE TableName ADD PRIMARY KEY (ColumnName);
Příklad:
Uvažujme, že máme existujícího studenta tabulky bez jakýchkoli omezení. Později jsme se rozhodli použít na sloupec tabulky omezení PRIMARY KEY. Poté provedeme následující dotaz:
mysql> ALTER TABLE student ADD PRIMARY KEY (StudentID);
Abychom ověřili, že je na sloupec studentské tabulky aplikováno omezení primárního klíče, provedeme následující dotaz:
mysql> DESC student;
4. CIZÍ KLÍČ
- Pro referenční integritu se používá cizí klíč.
- Když máme dvě tabulky a jedna tabulka přebírá odkaz z jiné tabulky, tj. stejný sloupec je přítomen v obou tabulkách a tento sloupec funguje jako primární klíč v jedné tabulce. Tento konkrétní sloupec bude fungovat jako cizí klíč v jiné tabulce.
Syntaxe pro použití omezení cizího klíče během vytváření tabulky:
CREATE TABLE tablename(ColumnName1 Datatype(SIZE) PRIMARY KEY, ColumnNameN Datatype(SIZE), FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName));
Příklad:
Vytvořte tabulku zaměstnanců a při vytváření tabulky použijte omezení FOREIGN KEY.
Chcete-li vytvořit cizí klíč na libovolné tabulce, musíme nejprve vytvořit primární klíč na tabulce.
mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40));
Abychom ověřili, že je na sloupec tabulky zaměstnanců aplikováno omezení primárního klíče, provedeme následující dotaz:
mysql> DESC employee;
Nyní napíšeme dotaz na použití cizího klíče na tabulku oddělení s odkazem na primární klíč tabulky zaměstnanců, tj. Emp_ID.
mysql> CREATE TABLE department(Dept_ID INT NOT NULL PRIMARY KEY, Dept_Name VARCHAR(40), Emp_ID INT NOT NULL, FOREIGN KEY(Emp_ID) REFERENCES employee(Emp_ID));
Abychom ověřili, že je na sloupec tabulky oddělení aplikováno omezení cizího klíče, provedeme následující dotaz:
mysql> DESC department;
Syntaxe pro použití omezení cizího klíče s názvem omezení:
CREATE TABLE tablename(ColumnName1 Datatype PRIMARY KEY, ColumnNameN Datatype(SIZE), CONSTRAINT ConstraintName FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName));
Příklad:
Vytvořte tabulku zaměstnanců a při vytváření tabulky použijte podmínku FOREIGN KEY s názvem omezení.
Chcete-li vytvořit cizí klíč na libovolné tabulce, musíme nejprve vytvořit primární klíč na tabulce.
fronta v Javě
mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40));
Abychom ověřili, že je na sloupec studentské tabulky aplikováno omezení primárního klíče, provedeme následující dotaz:
mysql> DESC employee;
Nyní napíšeme dotaz na použití cizího klíče s názvem omezení na tabulku oddělení odkazující na primární klíč tabulky zaměstnanců, tj. Emp_ID.
mysql> CREATE TABLE department(Dept_ID INT NOT NULL PRIMARY KEY, Dept_Name VARCHAR(40), Emp_ID INT NOT NULL, CONSTRAINT emp_id_fk FOREIGN KEY(Emp_ID) REFERENCES employee(Emp_ID));
Abychom ověřili, že je na sloupec tabulky oddělení aplikováno omezení cizího klíče, provedeme následující dotaz:
mysql> DESC department;
Syntaxe pro použití omezení cizího klíče na existující sloupec tabulky:
ALTER TABLE Parent_TableName ADD FOREIGN KEY (ColumnName) REFERENCES Child_TableName (ColumnName);
Příklad:
Představte si, že máme stávajícího zaměstnance a oddělení. Později jsme se rozhodli použít omezení FOREIGN KEY na sloupec tabulky oddělení. Poté provedeme následující dotaz:
mysql> DESC employee;
mysql> ALTER TABLE department ADD FOREIGN KEY (Emp_ID) REFERENCES employee (Emp_ID);
Abychom ověřili, že je na sloupec tabulky oddělení aplikováno omezení cizího klíče, provedeme následující dotaz:
mysql> DESC department;
5. ZKONTROLUJTE
- Kdykoli je na sloupec tabulky aplikováno kontrolní omezení a uživatel do něj chce vložit hodnotu, před vložením hodnoty do tohoto sloupce bude hodnota nejprve zkontrolována na určité podmínky.
Syntaxe pro použití kontrolního omezení na jeden sloupec:
CREATE TABLE TableName (ColumnName1 datatype CHECK (ColumnName1 Condition), ColumnName2 datatype,…., ColumnNameN datatype);
Příklad:
Vytvořte tabulku studentů a aplikujte omezení CHECK pro kontrolu věku menšího nebo rovného 15 při vytváření tabulky.
mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40), Age INT CHECK( Age <= 15)); < pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-26.webp" alt="Constraints in SQL"> <p>To verify that the check constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-27.webp" alt="Constraints in SQL"> <p> <strong>Syntax to apply check constraint on multiple columns:</strong> </p> <pre> CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype CHECK (ColumnName1 Condition AND ColumnName2 Condition),…., ColumnNameN datatype); </pre> <p> <strong>Example:</strong> </p> <p>Create a student table and apply CHECK constraint to check for the age less than or equal to 15 and a percentage greater than 85 while creating a table.</p> <pre> mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40), Age INT, Percentage INT, CHECK( Age 85)); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-28.webp" alt="Constraints in SQL"> <p>To verify that the check constraint is applied to the age and percentage column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-29.webp" alt="Constraints in SQL"> <p> <strong>Syntax to apply check constraint on an existing table's column:</strong> </p> <pre> ALTER TABLE TableName ADD CHECK (ColumnName Condition); </pre> <p> <strong>Example:</strong> </p> <p>Consider we have an existing table student. Later, we decided to apply the CHECK constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ADD CHECK ( Age <=15 ); < pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-30.webp" alt="Constraints in SQL"> <p>To verify that the check constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-31.webp" alt="Constraints in SQL"> <h3>6. DEFAULT</h3> <p>Whenever a default constraint is applied to the table's column, and the user has not specified the value to be inserted in it, then the default value which was specified while applying the default constraint will be inserted into that particular column.</p> <p> <strong>Syntax to apply default constraint during table creation:</strong> </p> <pre> CREATE TABLE TableName (ColumnName1 datatype DEFAULT Value, ColumnName2 datatype,…., ColumnNameN datatype); </pre> <p> <strong>Example:</strong> </p> <p>Create a student table and apply the default constraint while creating a table.</p> <pre> mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40) DEFAULT '[email protected]'); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-32.webp" alt="Constraints in SQL"> <p>To verify that the default constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-33.webp" alt="Constraints in SQL"> <p> <strong>Syntax to apply default constraint on an existing table's column:</strong> </p> <pre> ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value; </pre> <p> <strong>Example:</strong> </p> <p>Consider we have an existing table student. Later, we decided to apply the DEFAULT constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ALTER Student_Email_ID SET DEFAULT '[email protected]'; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-34.webp" alt="Constraints in SQL"> <p>To verify that the default constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-35.webp" alt="Constraints in SQL"> <h3>7. CREATE INDEX</h3> <p>CREATE INDEX constraint is used to create an index on the table. Indexes are not visible to the user, but they help the user to speed up the searching speed or retrieval of data from the database.</p> <p> <strong>Syntax to create an index on single column:</strong> </p> <pre> CREATE INDEX IndexName ON TableName (ColumnName 1); </pre> <p> <strong>Example:</strong> </p> <p>Create an index on the student table and apply the default constraint while creating a table.</p> <pre> mysql> CREATE INDEX idx_StudentID ON student (StudentID); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-36.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-37.webp" alt="Constraints in SQL"> <p> <strong>Syntax to create an index on multiple columns:</strong> </p> <pre> CREATE INDEX IndexName ON TableName (ColumnName 1, ColumnName 2, ColumnName N); </pre> <p> <strong>Example:</strong> </p> <pre> mysql> CREATE INDEX idx_Student ON student (StudentID, Student_PhoneNumber); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-38.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-39.webp" alt="Constraints in SQL"> <p> <strong>Syntax to create an index on an existing table:</strong> </p> <pre> ALTER TABLE TableName ADD INDEX (ColumnName); </pre> <p>Consider we have an existing table student. Later, we decided to apply the DEFAULT constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ADD INDEX (StudentID); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-40.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-41.webp" alt="Constraints in SQL"> <hr></=15></pre></=>
Syntaxe pro použití kontrolního omezení na více sloupců:
bash pole
CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype CHECK (ColumnName1 Condition AND ColumnName2 Condition),…., ColumnNameN datatype);
Příklad:
Vytvořte tabulku studentů a aplikujte omezení CHECK pro kontrolu věku menšího nebo rovného 15 a procenta většího než 85 při vytváření tabulky.
mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40), Age INT, Percentage INT, CHECK( Age 85));
Abychom ověřili, že se na sloupec stáří a procento vztahuje kontrolní omezení, provedeme následující dotaz:
mysql> DESC student;
Syntaxe pro použití kontrolního omezení na existující sloupec tabulky:
ALTER TABLE TableName ADD CHECK (ColumnName Condition);
Příklad:
Uvažujme, že máme stávajícího studenta tabulky. Později jsme se rozhodli použít omezení CHECK na sloupec studentské tabulky. Poté provedeme následující dotaz:
mysql> ALTER TABLE student ADD CHECK ( Age <=15 ); < pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-30.webp" alt="Constraints in SQL"> <p>To verify that the check constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-31.webp" alt="Constraints in SQL"> <h3>6. DEFAULT</h3> <p>Whenever a default constraint is applied to the table's column, and the user has not specified the value to be inserted in it, then the default value which was specified while applying the default constraint will be inserted into that particular column.</p> <p> <strong>Syntax to apply default constraint during table creation:</strong> </p> <pre> CREATE TABLE TableName (ColumnName1 datatype DEFAULT Value, ColumnName2 datatype,…., ColumnNameN datatype); </pre> <p> <strong>Example:</strong> </p> <p>Create a student table and apply the default constraint while creating a table.</p> <pre> mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40) DEFAULT '[email protected]'); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-32.webp" alt="Constraints in SQL"> <p>To verify that the default constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-33.webp" alt="Constraints in SQL"> <p> <strong>Syntax to apply default constraint on an existing table's column:</strong> </p> <pre> ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value; </pre> <p> <strong>Example:</strong> </p> <p>Consider we have an existing table student. Later, we decided to apply the DEFAULT constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ALTER Student_Email_ID SET DEFAULT '[email protected]'; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-34.webp" alt="Constraints in SQL"> <p>To verify that the default constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-35.webp" alt="Constraints in SQL"> <h3>7. CREATE INDEX</h3> <p>CREATE INDEX constraint is used to create an index on the table. Indexes are not visible to the user, but they help the user to speed up the searching speed or retrieval of data from the database.</p> <p> <strong>Syntax to create an index on single column:</strong> </p> <pre> CREATE INDEX IndexName ON TableName (ColumnName 1); </pre> <p> <strong>Example:</strong> </p> <p>Create an index on the student table and apply the default constraint while creating a table.</p> <pre> mysql> CREATE INDEX idx_StudentID ON student (StudentID); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-36.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-37.webp" alt="Constraints in SQL"> <p> <strong>Syntax to create an index on multiple columns:</strong> </p> <pre> CREATE INDEX IndexName ON TableName (ColumnName 1, ColumnName 2, ColumnName N); </pre> <p> <strong>Example:</strong> </p> <pre> mysql> CREATE INDEX idx_Student ON student (StudentID, Student_PhoneNumber); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-38.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-39.webp" alt="Constraints in SQL"> <p> <strong>Syntax to create an index on an existing table:</strong> </p> <pre> ALTER TABLE TableName ADD INDEX (ColumnName); </pre> <p>Consider we have an existing table student. Later, we decided to apply the DEFAULT constraint on the student table's column. Then we will execute the following query:</p> <pre> mysql> ALTER TABLE student ADD INDEX (StudentID); </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-40.webp" alt="Constraints in SQL"> <p>To verify that the create index constraint is applied to the student table's column, we will execute the following query:</p> <pre> mysql> DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-41.webp" alt="Constraints in SQL"> <hr></=15>
6. VÝCHOZÍ
Kdykoli je na sloupec tabulky aplikováno výchozí omezení a uživatel neurčil hodnotu, která do něj má být vložena, bude do tohoto konkrétního sloupce vložena výchozí hodnota, která byla zadána při použití výchozího omezení.
Syntaxe pro použití výchozího omezení při vytváření tabulky:
CREATE TABLE TableName (ColumnName1 datatype DEFAULT Value, ColumnName2 datatype,…., ColumnNameN datatype);
Příklad:
Vytvořte studentskou tabulku a při vytváření tabulky použijte výchozí omezení.
mysql> CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40) DEFAULT '[email protected]');
Abychom ověřili, že na sloupec studentské tabulky je aplikováno výchozí omezení, provedeme následující dotaz:
mysql> DESC student;
Syntaxe pro použití výchozího omezení na existující sloupec tabulky:
ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value;
Příklad:
Uvažujme, že máme stávajícího studenta tabulky. Později jsme se rozhodli použít omezení DEFAULT na sloupec studentské tabulky. Poté provedeme následující dotaz:
mysql> ALTER TABLE student ALTER Student_Email_ID SET DEFAULT '[email protected]';
Abychom ověřili, že na sloupec studentské tabulky je aplikováno výchozí omezení, provedeme následující dotaz:
mysql> DESC student;
7. VYTVOŘTE INDEX
Omezení CREATE INDEX se používá k vytvoření indexu v tabulce. Indexy nejsou pro uživatele viditelné, ale pomáhají uživateli urychlit rychlost vyhledávání nebo načítání dat z databáze.
Syntaxe pro vytvoření indexu v jednom sloupci:
CREATE INDEX IndexName ON TableName (ColumnName 1);
Příklad:
Vytvořte index na studentské tabulce a při vytváření tabulky použijte výchozí omezení.
mysql> CREATE INDEX idx_StudentID ON student (StudentID);
Abychom ověřili, že se na sloupec studentské tabulky vztahuje omezení vytvoření indexu, provedeme následující dotaz:
mysql> DESC student;
Syntaxe pro vytvoření indexu ve více sloupcích:
algoritmus pro rsa
CREATE INDEX IndexName ON TableName (ColumnName 1, ColumnName 2, ColumnName N);
Příklad:
mysql> CREATE INDEX idx_Student ON student (StudentID, Student_PhoneNumber);
Abychom ověřili, že se na sloupec studentské tabulky vztahuje omezení vytvoření indexu, provedeme následující dotaz:
mysql> DESC student;
Syntaxe pro vytvoření indexu na existující tabulce:
ALTER TABLE TableName ADD INDEX (ColumnName);
Uvažujme, že máme stávajícího studenta tabulky. Později jsme se rozhodli použít omezení DEFAULT na sloupec studentské tabulky. Poté provedeme následující dotaz:
mysql> ALTER TABLE student ADD INDEX (StudentID);
Abychom ověřili, že se na sloupec studentské tabulky vztahuje omezení vytvoření indexu, provedeme následující dotaz:
mysql> DESC student;
=15>=>