SQL'deki kısıtlamalar, veritabanına belirli koşullar veya kısıtlamalar uyguladığımız anlamına gelir. Bu ayrıca veritabanına veri eklemeden önce bazı koşulları kontrol ettiğimiz anlamına gelir. Eğer veri tabanına uyguladığımız koşul eklenecek veri için geçerli ise veri tabanı tablolarına sadece veri eklenecektir.
SQL'deki kısıtlamalar iki türe ayrılabilir:
Sütun Düzeyi Kısıtlaması, tek bir sütuna kısıtlama uygulamak için kullanılır.
Tablo Düzeyinde Kısıtlama, birden fazla sütuna kısıtlama uygulamak için kullanılır.
Kısıtlamaların gerçek hayattaki örneklerinden bazıları şunlardır:
- Her kişinin benzersiz bir e-posta kimliği vardır. Bunun nedeni, herhangi bir kullanıcı için bir e-posta hesabı oluştururken, Gmail, Yahoo gibi e-posta sağlayan hizmetlerin veya diğer herhangi bir e-posta sağlayan hizmetin, kullanıcının kendisi için istediği e-posta kimliğinin kullanılabilirliğini her zaman kontrol etmesidir. Başka bir kullanıcı, kullanıcının istediği e-posta kimliğini zaten alıyorsa, bu kimlik başka bir kullanıcıya atanamaz. Bu, aynı e-posta sağlama hizmetinde iki kullanıcının aynı e-posta kimliklerine sahip olamayacağı anlamına gelir. Yani burada e-posta kimliği, e-posta sağlayan hizmetlerin veritabanındaki kısıtlamadır.
- Herhangi bir sistem için bir şifre belirlediğimizde takip edilmesi gereken belirli kısıtlamalar vardır. Bu kısıtlamalar aşağıdakileri içerebilir:
- Şifrede bir adet büyük harf bulunmalıdır.
- Şifre en az sekiz karakter uzunluğunda olmalıdır.
- Şifre en az bir özel sembol içermelidir.
SQL'de mevcut kısıtlamalar şunlardır:
- GEÇERSİZ DEĞİL
- EŞSİZ
- BİRİNCİL ANAHTAR
- YABANCI ANAHTAR
- KONTROL ETMEK
- VARSAYILAN
- DİZİN OLUŞTUR
Şimdi SQL'de bulunan farklı kısıtlamaları örnekler yardımıyla daha detaylı anlamaya çalışalım. Tüm sorguları yazmak için MySQL veritabanını kullanacağız.
1. BOŞ DEĞİL
- NULL boş anlamına gelir, yani değer mevcut değildir.
- Bir tablonun sütunu NOT NULL olarak bildirildiğinde, bu sütunun değeri tablonun herhangi bir kaydı için boş olamaz.
- NOT NULL kısıtlamasının uygulandığı sütunda bir değer bulunmalıdır.
NOT: NULL, sıfır anlamına gelmez. NULL boş sütun anlamına gelir, sıfır bile değil.
Tablo oluşturma sırasında NOT NULL kısıtlamasını uygulama sözdizimi:
CREATE TABLE TableName (ColumnName1 datatype NOT NULL, ColumnName2 datatype,…., ColumnNameN datatype);
Örnek:
Bir öğrenci tablosu oluşturun ve tablo oluştururken tablonun sütunlarından birine NOT NULL kısıtlaması uygulayın.
CREATE TABLE student(StudentID INT NOT NULL, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Tablonun sütununa null olmayan kısıtlamanın uygulandığını ve öğrenci tablosunun başarıyla oluşturulduğunu doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
NOT NULL kısıtlamasını mevcut bir tablonun sütununa uygulamak için kullanılan sözdizimi:
ALTER TABLE TableName CHANGE Old_ColumnName New_ColumnName Datatype NOT NULL;
Örnek:
Herhangi bir kısıtlama uygulanmayan mevcut bir masa öğrencimiz olduğunu düşünün. Daha sonra tablonun sütunlarından birine NOT NULL kısıtlaması uygulamaya karar verdik. Daha sonra aşağıdaki sorguyu çalıştıracağız:
mysql> ALTER TABLE student CHANGE StudentID StudentID INT NOT NULL;
Öğrenci tablosunun sütununa null olmayan kısıtlamanın uygulandığını doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
2. EŞSİZ
- UNIQUE kısıtlamasının uygulandığı sütunlarda yinelenen değerlere izin verilmez.
- Benzersiz kısıtlamaya sahip sütun her zaman benzersiz bir değer içerecektir.
- Bu kısıtlama bir tablonun bir veya birden fazla sütununa uygulanabilir; bu, tek bir tabloda birden fazla benzersiz kısıtlamanın bulunabileceği anlamına gelir.
- UNIQUE kısıtlamasını kullanarak önceden oluşturulmuş tabloları da değiştirebilirsiniz.
UNIQUE kısıtlamasını tek bir sütuna uygulamak için söz dizimi:
CREATE TABLE TableName (ColumnName1 datatype UNIQUE, ColumnName2 datatype,…., ColumnNameN datatype);
Örnek:
Bir öğrenci tablosu oluşturun ve tablo oluştururken tablonun sütunlarından birine UNIQUE kısıtlaması uygulayın.
mysql> CREATE TABLE student(StudentID INT UNIQUE, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40));
Benzersiz kısıtlamanın tablonun sütununa uygulandığını ve öğrenci tablosunun başarıyla oluşturulduğunu doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
UNIQUE kısıtlamasını birden fazla sütuna uygulamak için kullanılan sözdizimi:
sql'deki birden fazla tablo arasından seçim yapın
CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype,…., ColumnNameN datatype, UNIQUE (ColumnName1, ColumnName 2));
Örnek:
Bir öğrenci tablosu oluşturun ve tablo oluştururken birden fazla tablonun sütununa UNIQUE kısıtlaması uygulayın.
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));
Benzersiz kısıtlamanın birden fazla tablonun sütununa uygulandığını ve öğrenci tablosunun başarıyla oluşturulduğunu doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
UNIQUE kısıtlamasını mevcut bir tablonun sütununa uygulamak için kullanılan sözdizimi:
ALTER TABLE TableName ADD UNIQUE (ColumnName);
Örnek:
Herhangi bir kısıtlama uygulanmayan mevcut bir masa öğrencimiz olduğunu düşünün. Daha sonra tablonun sütunlarından birine UNIQUE kısıtlaması uygulamaya karar verdik. Daha sonra aşağıdaki sorguyu çalıştıracağız:
mysql> ALTER TABLE student ADD UNIQUE (StudentID);
Benzersiz kısıtlamanın tablonun sütununa uygulandığını ve öğrenci tablosunun başarıyla oluşturulduğunu doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
3. BİRİNCİL ANAHTAR
- PRIMARY KEY Kısıtlaması NOT NULL ve Benzersiz kısıtlamaların birleşimidir.
- NOT NULL kısıtlaması ve UNIQUE kısıtlaması birlikte bir PRIMARY kısıtlaması oluşturur.
- Birincil kısıtlamayı uyguladığımız sütun her zaman benzersiz bir değer içerecek ve boş değerlere izin vermeyecektir.
Tablo oluşturma sırasında birincil anahtar kısıtlamasının sözdizimi:
CREATE TABLE TableName (ColumnName1 datatype PRIMARY KEY, ColumnName2 datatype,…., ColumnNameN datatype);
Örnek:
Java'da boş kontrol
Bir öğrenci tablosu oluşturun ve tablo oluştururken PRIMARY KEY kısıtlamasını uygulayın.
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));
Birincil anahtar kısıtlamasının tablonun sütununa uygulandığını ve öğrenci tablosunun başarıyla oluşturulduğunu doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
Mevcut bir tablonun sütununa birincil anahtar kısıtlamasını uygulama sözdizimi:
ALTER TABLE TableName ADD PRIMARY KEY (ColumnName);
Örnek:
Herhangi bir kısıtlama uygulanmayan mevcut bir masa öğrencimiz olduğunu düşünün. Daha sonra PRIMARY KEY kısıtlamasını tablonun sütununa uygulamaya karar verdik. Daha sonra aşağıdaki sorguyu çalıştıracağız:
mysql> ALTER TABLE student ADD PRIMARY KEY (StudentID);
Birincil anahtar kısıtlamasının öğrenci tablosunun sütununa uygulandığını doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
4. YABANCI ANAHTAR
- Referans bütünlüğü için yabancı anahtar kullanılır.
- İki tablomuz olduğunda ve bir tablo başka bir tablodan referans aldığında, yani her iki tabloda da aynı sütun mevcut olduğunda ve bu sütun bir tabloda birincil anahtar görevi görür. Bu belirli sütun başka bir tabloda yabancı anahtar görevi görecektir.
Tablo oluşturma sırasında yabancı anahtar kısıtlamasını uygulama sözdizimi:
CREATE TABLE tablename(ColumnName1 Datatype(SIZE) PRIMARY KEY, ColumnNameN Datatype(SIZE), FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName));
Örnek:
Bir çalışan tablosu oluşturun ve tablo oluştururken FOREIGN KEY kısıtlamasını uygulayın.
Herhangi bir tabloda yabancı anahtar oluşturmak için öncelikle tablo üzerinde birincil anahtar oluşturmamız gerekir.
mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40));
Çalışan tablosunun sütununa birincil anahtar kısıtlamasının uygulandığını doğrulamak için aşağıdaki sorguyu çalıştıracağız:
Java'da basit tarih biçimlendirici
mysql> DESC employee;
Şimdi, çalışan tablosunun birincil anahtarına yani Emp_ID'ye atıfta bulunarak departman tablosuna yabancı anahtar uygulamak için bir sorgu yazacağız.
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));
Departman tablosunun sütununa yabancı anahtar kısıtlamasının uygulandığını doğrulamak için aşağıdaki sorguyu uygulayacağız:
mysql> DESC department;
Yabancı anahtar kısıtlamasını kısıtlama adıyla uygulama sözdizimi:
CREATE TABLE tablename(ColumnName1 Datatype PRIMARY KEY, ColumnNameN Datatype(SIZE), CONSTRAINT ConstraintName FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName));
Örnek:
Bir çalışan tablosu oluşturun ve tablo oluştururken FOREIGN KEY kısıtlamasını bir kısıtlama adı ile uygulayın.
Herhangi bir tabloda yabancı anahtar oluşturmak için öncelikle tablo üzerinde birincil anahtar oluşturmamız gerekir.
mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40));
Birincil anahtar kısıtlamasının öğrenci tablosunun sütununa uygulandığını doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC employee;
Şimdi, çalışan tablosunun birincil anahtarına yani Emp_ID'ye atıfta bulunan departman tablosunda kısıtlama adı olan bir yabancı anahtarı uygulamak için bir sorgu yazacağız.
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));
Departman tablosunun sütununa yabancı anahtar kısıtlamasının uygulandığını doğrulamak için aşağıdaki sorguyu uygulayacağız:
mysql> DESC department;
Yabancı anahtar kısıtlamasını mevcut bir tablonun sütununa uygulama sözdizimi:
ALTER TABLE Parent_TableName ADD FOREIGN KEY (ColumnName) REFERENCES Child_TableName (ColumnName);
Örnek:
Mevcut bir masa çalışanımız ve departmanımız olduğunu düşünün. Daha sonra departman tablosunun sütununa FOREIGN KEY kısıtlaması uygulamaya karar verdik. Daha sonra aşağıdaki sorguyu çalıştıracağız:
mysql> DESC employee;
mysql> ALTER TABLE department ADD FOREIGN KEY (Emp_ID) REFERENCES employee (Emp_ID);
Departman tablosunun sütununa yabancı anahtar kısıtlamasının uygulandığını doğrulamak için aşağıdaki sorguyu uygulayacağız:
mysql> DESC department;
5. KONTROL EDİN
- Tablonun sütununa bir kontrol kısıtlaması uygulandığında ve kullanıcı değeri bu sütuna eklemek istediğinde, değer o sütuna eklenmeden önce ilk olarak belirli koşullar açısından kontrol edilecektir.
Tek bir sütuna kontrol kısıtlaması uygulama sözdizimi:
CREATE TABLE TableName (ColumnName1 datatype CHECK (ColumnName1 Condition), ColumnName2 datatype,…., ColumnNameN datatype);
Örnek:
Bir öğrenci tablosu oluşturun ve tablo oluştururken 15'e eşit veya daha küçük bir yaş olup olmadığını kontrol etmek için CHECK kısıtlamasını uygulayın.
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></=>
Birden çok sütuna denetim kısıtlaması uygulama sözdizimi:
CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype CHECK (ColumnName1 Condition AND ColumnName2 Condition),…., ColumnNameN datatype);
Örnek:
Bir öğrenci tablosu oluşturun ve tablo oluştururken 15'ten küçük veya ona eşit yaşı ve 85'ten büyük bir yüzdeyi kontrol etmek için CHECK kısıtlamasını uygulayın.
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));
Kontrol kısıtlamasının yaş ve yüzde sütununa uygulandığını doğrulamak için aşağıdaki sorguyu uygulayacağız:
mysql> DESC student;
Mevcut bir tablonun sütununa kontrol kısıtlaması uygulama sözdizimi:
ALTER TABLE TableName ADD CHECK (ColumnName Condition);
Örnek:
Mevcut bir masa öğrencimiz olduğunu düşünün. Daha sonra CHECK kısıtlamasını öğrenci tablosunun sütununa uygulamaya karar verdik. Daha sonra aşağıdaki sorguyu çalıştıracağız:
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. VARSAYILAN
Tablonun sütununa bir varsayılan kısıtlama uygulandığında ve kullanıcı buna eklenecek değeri belirtmediğinde, varsayılan kısıtlama uygulanırken belirtilen varsayılan değer söz konusu sütuna eklenecektir.
Tablo oluşturma sırasında varsayılan kısıtlamayı uygulayacak sözdizimi:
rom nedir
CREATE TABLE TableName (ColumnName1 datatype DEFAULT Value, ColumnName2 datatype,…., ColumnNameN datatype);
Örnek:
Bir öğrenci tablosu oluşturun ve tablo oluştururken varsayılan kısıtlamayı uygulayın.
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]');
Öğrenci tablosunun sütununa varsayılan kısıtlamanın uygulandığını doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
Mevcut bir tablonun sütununa varsayılan kısıtlamayı uygulama sözdizimi:
ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value;
Örnek:
Mevcut bir masa öğrencimiz olduğunu düşünün. Daha sonra DEFAULT kısıtlamasını öğrenci tablosunun sütununa uygulamaya karar verdik. Daha sonra aşağıdaki sorguyu çalıştıracağız:
HTML etiketleri
mysql> ALTER TABLE student ALTER Student_Email_ID SET DEFAULT '[email protected]';
Öğrenci tablosunun sütununa varsayılan kısıtlamanın uygulandığını doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
7. ENDEKS OLUŞTURUN
CREATE INDEX kısıtı tablo üzerinde indeks oluşturmak için kullanılır. İndeksler kullanıcıya görünmez ancak kullanıcının arama hızını veya veri tabanından veri alımını hızlandırmasına yardımcı olur.
Tek sütunda dizin oluşturma sözdizimi:
CREATE INDEX IndexName ON TableName (ColumnName 1);
Örnek:
Öğrenci tablosunda bir dizin oluşturun ve tablo oluştururken varsayılan kısıtlamayı uygulayın.
mysql> CREATE INDEX idx_StudentID ON student (StudentID);
Dizin oluşturma kısıtlamasının öğrenci tablosunun sütununa uygulandığını doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
Birden çok sütunda dizin oluşturmak için söz dizimi:
CREATE INDEX IndexName ON TableName (ColumnName 1, ColumnName 2, ColumnName N);
Örnek:
mysql> CREATE INDEX idx_Student ON student (StudentID, Student_PhoneNumber);
Dizin oluşturma kısıtlamasının öğrenci tablosunun sütununa uygulandığını doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
Mevcut bir tabloda dizin oluşturmak için sözdizimi:
ALTER TABLE TableName ADD INDEX (ColumnName);
Mevcut bir masa öğrencimiz olduğunu düşünün. Daha sonra DEFAULT kısıtlamasını öğrenci tablosunun sütununa uygulamaya karar verdik. Daha sonra aşağıdaki sorguyu çalıştıracağız:
mysql> ALTER TABLE student ADD INDEX (StudentID);
Dizin oluşturma kısıtlamasının öğrenci tablosunun sütununa uygulandığını doğrulamak için aşağıdaki sorguyu çalıştıracağız:
mysql> DESC student;
=15>=>