SQL apribojimai reiškia, kad duomenų bazei taikome tam tikras sąlygas arba apribojimus. Tai dar reiškia, kad prieš įterpdami duomenis į duomenų bazę patikriname, ar nėra tam tikrų sąlygų. Jei sąlyga, kurią taikėme duomenų bazei, galioja duomenims, kurie turi būti įterpti, tada į duomenų bazės lenteles bus įterpiami tik duomenys.
SQL apribojimai gali būti suskirstyti į du tipus:
Stulpelio lygio apribojimas naudojamas apribojimui taikyti vienam stulpeliui.
Lentelės lygio apribojimas naudojamas apribojimui taikyti keliems stulpeliams.
Kai kurie realūs apribojimų pavyzdžiai yra tokie:
- Kiekvienas asmuo turi unikalų el. pašto adresą. Taip yra todėl, kad kuriant bet kurio vartotojo el. pašto paskyrą, el. paštas, teikiantis paslaugas, pvz., „Gmail“, „Yahoo“ ar bet kuri kita el. pašto teikimo paslauga, visada patikrins, ar yra el. pašto ID, kurio vartotojas nori pats. Jei kuris nors kitas vartotojas jau naudoja el. pašto ID, kurio jis nori, tada tas ID negali būti priskirtas kitam vartotojui. Tai tiesiog reiškia, kad du vartotojai negali turėti tų pačių el. pašto adresų toje pačioje el. pašto teikimo paslaugoje. Taigi, el. pašto ID yra el. pašto paslaugų duomenų bazės apribojimas.
- Kai nustatome bet kurios sistemos slaptažodį, reikia laikytis tam tikrų apribojimų. Šie apribojimai gali apimti:
- Slaptažodyje turi būti viena didžioji raidė.
- Slaptažodis turi būti bent aštuonių simbolių ilgio.
- Slaptažodyje turi būti bent vienas specialusis simbolis.
SQL galimi apribojimai:
- NE NULL
- UNIKALUS
- PIRMINIS RAKTAS
- SVETIMAS RAKTAS
- PATIKRINTI
- NUMATYTAS
- KURTI RODYKLĄ
Dabar pabandykime su pavyzdžiais išsamiau suprasti skirtingus SQL apribojimus. Visoms užklausoms rašyti naudosime MySQL duomenų bazę.
1. NE NULL
- NULL reiškia tuščią, t. y. reikšmė nepasiekiama.
- Kai lentelės stulpelis deklaruojamas kaip NOT NULL, to stulpelio reikšmė negali būti tuščia nė vienam lentelės įrašui.
- Stulpelyje turi būti reikšmė, kuriai taikomas NOT NULL apribojimas.
PASTABA: NULL nereiškia nulio. NULL reiškia tuščią stulpelį, net ne nulį.
Sintaksė, skirta taikyti NOT NULL apribojimą kuriant lentelę:
CREATE TABLE TableName (ColumnName1 datatype NOT NULL, ColumnName2 datatype,…., ColumnNameN datatype);
Pavyzdys:
Sukurkite mokinio lentelę ir kurdami lentelę pritaikykite NOT NULL apribojimą vienam iš lentelės stulpelių.
CREATE TABLE student(StudentID INT NOT NULL, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Norėdami patikrinti, ar lentelės stulpeliui taikomas ne nulinis apribojimas, o mokinio lentelė sėkmingai sukurta, vykdysime šią užklausą:
mysql> DESC student;
Sintaksė, skirta taikyti NOT NULL apribojimą esamos lentelės stulpelyje:
ALTER TABLE TableName CHANGE Old_ColumnName New_ColumnName Datatype NOT NULL;
Pavyzdys:
Apsvarstykite, kad turime esamą stalo studentą, jam netaikomi jokie apribojimai. Vėliau nusprendėme vienam iš lentelės stulpelių taikyti NOT NULL apribojimą. Tada vykdysime šią užklausą:
mysql> ALTER TABLE student CHANGE StudentID StudentID INT NOT NULL;
Norėdami patikrinti, ar studento lentelės stulpeliui taikomas ne nulinis apribojimas, vykdysime šią užklausą:
mysql> DESC student;
2. UNIKALUS
- Pasikartojančios reikšmės neleidžiamos stulpeliuose, kuriems taikomas UNIKALUS apribojimas.
- Stulpelyje su unikaliu apribojimu visada bus unikali reikšmė.
- Šis apribojimas gali būti taikomas vienam ar daugiau nei vienam lentelės stulpeliui, o tai reiškia, kad vienoje lentelėje gali būti daugiau nei vienas unikalus apribojimas.
- Naudodami UNIQUE apribojimą taip pat galite modifikuoti jau sukurtas lenteles.
Sintaksė, skirta taikyti UNIQUE apribojimą vienam stulpeliui:
CREATE TABLE TableName (ColumnName1 datatype UNIQUE, ColumnName2 datatype,…., ColumnNameN datatype);
Pavyzdys:
Sukurkite mokinio lentelę ir kurdami lentelę pritaikykite UNIKALĮ apribojimą vienam iš lentelės stulpelių.
mysql> CREATE TABLE student(StudentID INT UNIQUE, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Norėdami patikrinti, ar unikalus apribojimas pritaikytas lentelės stulpeliui ir mokinio lentelė sėkmingai sukurta, vykdysime šią užklausą:
mysql> DESC student;
Sintaksė, skirta taikyti UNIQUE apribojimą daugiau nei vienam stulpeliui:
Python kelio nustatymas
CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype,…., ColumnNameN datatype, UNIQUE (ColumnName1, ColumnName 2));
Pavyzdys:
Sukurkite mokinio lentelę ir kurdami lentelę pritaikykite UNIKALUS apribojimą daugiau nei vienos lentelės stulpelyje.
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));
Norėdami patikrinti, ar unikalus apribojimas taikomas daugiau nei vienam lentelės stulpeliui ir mokinio lentelė buvo sėkmingai sukurta, vykdysime šią užklausą:
mysql> DESC student;
Sintaksė, skirta taikyti UNIKALUS apribojimą esamam lentelės stulpeliui:
ALTER TABLE TableName ADD UNIQUE (ColumnName);
Pavyzdys:
Apsvarstykite, kad turime esamą stalo studentą, jam netaikomi jokie apribojimai. Vėliau nusprendėme vienam iš lentelės stulpelių pritaikyti UNIKALĮ apribojimą. Tada vykdysime šią užklausą:
mysql> ALTER TABLE student ADD UNIQUE (StudentID);
Norėdami patikrinti, ar unikalus apribojimas pritaikytas lentelės stulpeliui ir mokinio lentelė sėkmingai sukurta, vykdysime šią užklausą:
mysql> DESC student;
3. PIRMINIS RAKTAS
- PRIMARY KEY Constraint yra NOT NULL ir Unique apribojimų derinys.
- NOT NULL apribojimas ir UNIKALUS apribojimas kartu sudaro PIRMINĮ apribojimą.
- Stulpelyje, kuriam pritaikėme pirminį apribojimą, visada bus unikali reikšmė ir nebus leidžiamos nulinės reikšmės.
Pirminio rakto apribojimo sintaksė kuriant lentelę:
jdbc jdbc
CREATE TABLE TableName (ColumnName1 datatype PRIMARY KEY, ColumnName2 datatype,…., ColumnNameN datatype);
Pavyzdys:
Sukurkite mokinio lentelę ir kurdami lentelę pritaikykite apribojimą PAGRINDINIS RAKTAS.
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));
Norėdami patikrinti, ar pirminio rakto apribojimas pritaikytas lentelės stulpeliui ir mokinio lentelė sėkmingai sukurta, vykdysime šią užklausą:
mysql> DESC student;
Sintaksė, skirta taikyti pirminio rakto apribojimą esamos lentelės stulpelyje:
ALTER TABLE TableName ADD PRIMARY KEY (ColumnName);
Pavyzdys:
Apsvarstykite, kad turime esamą stalo studentą, jam netaikomi jokie apribojimai. Vėliau nusprendėme lentelės stulpeliui taikyti apribojimą PRIMARY KEY. Tada vykdysime šią užklausą:
mysql> ALTER TABLE student ADD PRIMARY KEY (StudentID);
Norėdami patikrinti, ar pirminio rakto apribojimas taikomas mokinio lentelės stulpeliui, vykdysime šią užklausą:
mysql> DESC student;
4. UŽSIENIO RAKTAS
- Užsienio raktas naudojamas nuorodos vientisumui užtikrinti.
- Kai turime dvi lenteles, o viena lentelė remiasi iš kitos lentelės, ty tas pats stulpelis yra abiejose lentelėse ir tas stulpelis veikia kaip pirminis raktas vienoje lentelėje. Tas konkretus stulpelis veiks kaip išorinis raktas kitoje lentelėje.
Sintaksė, skirta taikyti išorinio rakto apribojimą kuriant lentelę:
CREATE TABLE tablename(ColumnName1 Datatype(SIZE) PRIMARY KEY, ColumnNameN Datatype(SIZE), FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName));
Pavyzdys:
Sukurkite darbuotojų lentelę ir kurdami lentelę taikykite UŽSIENIO RAKTŲ apribojimą.
Norėdami sukurti pašalinį raktą bet kurioje lentelėje, pirmiausia turime sukurti pirminį raktą lentelėje.
mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40));
Norėdami patikrinti, ar pirminio rakto apribojimas taikomas darbuotojo lentelės stulpeliui, vykdysime šią užklausą:
mysql> DESC employee;
Dabar parašysime užklausą, kad skyriaus lentelėje pritaikytume išorinį raktą, nurodydami pirminį darbuotojo lentelės raktą, ty 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));
Norėdami patikrinti, ar išorinio rakto apribojimas taikomas skyriaus lentelės stulpeliui, vykdysime šią užklausą:
mysql> DESC department;
Sintaksė, skirta taikyti išorinio rakto apribojimą su apribojimo pavadinimu:
CREATE TABLE tablename(ColumnName1 Datatype PRIMARY KEY, ColumnNameN Datatype(SIZE), CONSTRAINT ConstraintName FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName));
Pavyzdys:
Sukurkite darbuotojų lentelę ir kurdami lentelę pritaikykite apribojimą UŽSIENIS RAKTAS su apribojimo pavadinimu.
Norėdami sukurti pašalinį raktą bet kurioje lentelėje, pirmiausia turime sukurti pirminį raktą lentelėje.
rinkinys vs žemėlapis
mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40));
Norėdami patikrinti, ar pirminio rakto apribojimas taikomas mokinio lentelės stulpeliui, vykdysime šią užklausą:
mysql> DESC employee;
Dabar parašysime užklausą, kad pritaikytume išorinį raktą su apribojimo pavadinimu skyriaus lentelėje, nurodant pirminį darbuotojo lentelės raktą, ty 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));
Norėdami patikrinti, ar išorinio rakto apribojimas taikomas skyriaus lentelės stulpeliui, vykdysime šią užklausą:
mysql> DESC department;
Sintaksė, skirta taikyti išorinio rakto apribojimą esamos lentelės stulpelyje:
ALTER TABLE Parent_TableName ADD FOREIGN KEY (ColumnName) REFERENCES Child_TableName (ColumnName);
Pavyzdys:
Apsvarstykite, kad turime esamą stalo darbuotoją ir skyrių. Vėliau nusprendėme skyriaus lentelės stulpeliui taikyti UŽSIENIO RAKTŲ apribojimą. Tada vykdysime šią užklausą:
mysql> DESC employee;
mysql> ALTER TABLE department ADD FOREIGN KEY (Emp_ID) REFERENCES employee (Emp_ID);
Norėdami patikrinti, ar išorinio rakto apribojimas taikomas skyriaus lentelės stulpeliui, vykdysime šią užklausą:
mysql> DESC department;
5. PATIKRINTI
- Kai lentelės stulpeliui taikomas tikrinimo apribojimas ir vartotojas nori į jį įterpti reikšmę, tada prieš įterpiant reikšmę į tą stulpelį pirmiausia bus patikrinama, ar nėra tam tikrų sąlygų.
Sintaksė, skirta taikyti tikrinimo apribojimą viename stulpelyje:
CREATE TABLE TableName (ColumnName1 datatype CHECK (ColumnName1 Condition), ColumnName2 datatype,…., ColumnNameN datatype);
Pavyzdys:
Sukurkite mokinio lentelę ir taikykite CHECK apribojimą, kad kurdami lentelę patikrintumėte, ar amžius yra mažesnis arba lygus 15.
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></=>
Sintaksė, skirta taikyti tikrinimo apribojimą keliuose stulpeliuose:
JavaScript kodo pavyzdžiai
CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype CHECK (ColumnName1 Condition AND ColumnName2 Condition),…., ColumnNameN datatype);
Pavyzdys:
Sukurkite mokinio lentelę ir taikykite CHECK apribojimą, kad kurdami lentelę patikrintumėte, ar amžius yra mažesnis arba lygus 15 metų ir procentas didesnis nei 85.
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));
Norėdami patikrinti, ar amžiaus ir procentų stulpeliui taikomas patikros apribojimas, vykdysime šią užklausą:
mysql> DESC student;
Sintaksė, kad esamos lentelės stulpelyje būtų taikomas tikrinimo apribojimas:
ALTER TABLE TableName ADD CHECK (ColumnName Condition);
Pavyzdys:
Apsvarstykite, kad turime esamą stalo studentą. Vėliau nusprendėme mokinių lentelės stulpelyje taikyti CHECK apribojimą. Tada vykdysime šią užklausą:
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. NUMATYTOJI
Kai lentelės stulpeliui taikomas numatytasis apribojimas, o vartotojas nenurodė į jį įterpiamos reikšmės, tada numatytoji reikšmė, kuri buvo nurodyta taikant numatytąjį apribojimą, bus įterpta į tą konkretų stulpelį.
Sintaksė, skirta taikyti numatytąjį apribojimą kuriant lentelę:
CREATE TABLE TableName (ColumnName1 datatype DEFAULT Value, ColumnName2 datatype,…., ColumnNameN datatype);
Pavyzdys:
Sukurkite mokinio lentelę ir kurdami lentelę taikykite numatytąjį apribojimą.
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]');
Norėdami patikrinti, ar numatytasis apribojimas taikomas mokinio lentelės stulpeliui, vykdysime šią užklausą:
mysql> DESC student;
Sintaksė, skirta taikyti numatytąjį apribojimą esamos lentelės stulpelyje:
ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value;
Pavyzdys:
Apsvarstykite, kad turime esamą stalo studentą. Vėliau nusprendėme studento lentelės stulpelyje taikyti NUMATYTOJI suvaržymą. Tada vykdysime šią užklausą:
mysql> ALTER TABLE student ALTER Student_Email_ID SET DEFAULT '[email protected]';
Norėdami patikrinti, ar numatytasis apribojimas taikomas mokinio lentelės stulpeliui, vykdysime šią užklausą:
mysql> DESC student;
7. KURTI RODYKLĄ
CREATE INDEX apribojimas naudojamas indeksui lentelėje sukurti. Rodyklės vartotojui nėra matomos, tačiau padeda vartotojui pagreitinti paieškos ar duomenų iš duomenų bazės gavimą greitį.
Sintaksė norint sukurti indeksą viename stulpelyje:
CREATE INDEX IndexName ON TableName (ColumnName 1);
Pavyzdys:
Sukurkite rodyklę mokinio lentelėje ir kurdami lentelę taikykite numatytąjį apribojimą.
mysql> CREATE INDEX idx_StudentID ON student (StudentID);
Norėdami patikrinti, ar studento lentelės stulpeliui taikomas indekso kūrimo apribojimas, vykdysime šią užklausą:
mysql> DESC student;
Sintaksė norint sukurti indeksą keliuose stulpeliuose:
java sinchronizuoti
CREATE INDEX IndexName ON TableName (ColumnName 1, ColumnName 2, ColumnName N);
Pavyzdys:
mysql> CREATE INDEX idx_Student ON student (StudentID, Student_PhoneNumber);
Norėdami patikrinti, ar studento lentelės stulpeliui taikomas indekso kūrimo apribojimas, vykdysime šią užklausą:
mysql> DESC student;
Sintaksė indeksui sukurti esamoje lentelėje:
ALTER TABLE TableName ADD INDEX (ColumnName);
Apsvarstykite, kad turime esamą stalo studentą. Vėliau nusprendėme studento lentelės stulpelyje taikyti NUMATYTOJI suvaržymą. Tada vykdysime šią užklausą:
mysql> ALTER TABLE student ADD INDEX (StudentID);
Norėdami patikrinti, ar mokinio lentelės stulpeliui taikomas indekso kūrimo apribojimas, vykdysime šią užklausą:
mysql> DESC student;
=15>=>