logo

SQL の制約

SQL の制約とは、データベースに特定の条件や制限を適用することを意味します。これは、データベースにデータを挿入する前に、いくつかの条件をチェックしていることをさらに意味します。データベースに適用した条件が挿入されるデータに当てはまる場合、そのデータのみがデータベース テーブルに挿入されます。

SQL の制約は、次の 2 つのタイプに分類できます。

    列レベルの制約:
    列レベル制約は、単一の列に制約を適用するために使用されます。テーブルレベルの制約:
    テーブル レベルの制約は、複数の列に制約を適用するために使用されます。

制約の実際の例の一部を次に示します。

  1. すべての人は固有の電子メール ID を持っています。これは、ユーザーの電子メール アカウントを作成するときに、Gmail、Yahoo、またはその他の電子メール提供サービスなどの電子メール提供サービスが、ユーザーが希望する電子メール ID が利用可能かどうかを常にチェックするためです。他のユーザーがそのユーザーが希望する電子メール ID をすでに取得している場合、その ID を別のユーザーに割り当てることはできません。これは単に、同じ電子メール提供サービス上で 2 人のユーザーが同じ電子メール ID を持つことができないことを意味します。したがって、ここで電子メール ID は、電子メールを提供するサービスのデータベースに対する制約となります。
  2. どのシステムにパスワードを設定する場合も、必ず従うべき特定の制約があります。これらの制約には次のものが含まれる場合があります。
    • パスワードには大文字が 1 文字含まれている必要があります。
    • パスワードの長さは 8 文字以上である必要があります。
    • パスワードには少なくとも 1 つの特殊記号が含まれている必要があります。

SQL で使用できる制約は次のとおりです。

  1. NULLではありません
  2. 個性的
  3. 主キー
  4. 外部キー
  5. チェック
  6. デフォルト
  7. インデックスの作成

ここで、例を使用して、SQL で使用できるさまざまな制約をさらに詳しく理解してみましょう。すべてのクエリの作成には MySQL データベースを使用します。

1. NULL ではない

  • NULL は空、つまり値が利用できないことを意味します。
  • テーブルの列が NOT NULL として宣言されている場合は、テーブルのどのレコードでもその列の値を空にすることはできません。
  • NOT NULL制約が適用される列には値が存在する必要があります。

注: NULL はゼロを意味するものではありません。 NULL は空の列を意味し、ゼロでもありません。

テーブルの作成時に NOT NULL 制約を適用する構文は次のとおりです。

 CREATE TABLE TableName (ColumnName1 datatype NOT NULL, ColumnName2 datatype,…., ColumnNameN datatype); 

例:

Student テーブルを作成し、テーブルの作成中にテーブルの列の 1 つに NOT NULL 制約を適用します。

 CREATE TABLE student(StudentID INT NOT NULL, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40)); 

SQL の制約

not null 制約がテーブルの列に適用され、student テーブルが正常に作成されたことを確認するために、次のクエリを実行します。

 mysql> DESC student; 

SQL の制約

既存のテーブルの列に NOT NULL 制約を適用する構文:

 ALTER TABLE TableName CHANGE Old_ColumnName New_ColumnName Datatype NOT NULL; 

例:

制約が適用されていない既存のテーブル学生があるとします。その後、テーブルの列の 1 つに NOT NULL 制約を適用することにしました。次に、次のクエリを実行します。

 mysql> ALTER TABLE student CHANGE StudentID StudentID INT NOT NULL; 

SQL の制約

not null 制約が Student テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql> DESC student; 

SQL の制約

2. ユニーク

  • UNIQUE 制約が適用される列では、重複する値は許可されません。
  • 一意制約が設定された列には、常に一意の値が含まれます。
  • この制約はテーブルの 1 つまたは複数の列に適用できます。つまり、1 つのテーブルに複数の一意の制約が存在できることになります。
  • UNIQUE 制約を使用すると、すでに作成されたテーブルを変更することもできます。

単一の列に UNIQUE 制約を適用する構文は次のとおりです。

 CREATE TABLE TableName (ColumnName1 datatype UNIQUE, ColumnName2 datatype,…., ColumnNameN datatype); 

例:

スチューデント テーブルを作成し、テーブルの作成中にテーブルの列の 1 つに UNIQUE 制約を適用します。

 mysql> CREATE TABLE student(StudentID INT UNIQUE, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40)); 

SQL の制約

一意制約がテーブルの列に適用され、Student テーブルが正常に作成されたことを確認するために、次のクエリを実行します。

 mysql> DESC student; 

SQL の制約

複数の列に UNIQUE 制約を適用する構文:

np.ユニーク
 CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype,…., ColumnNameN datatype, UNIQUE (ColumnName1, ColumnName 2)); 

例:

スチューデント テーブルを作成し、テーブルの作成中に複数のテーブルの列に UNIQUE 制約を適用します。

 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)); 

SQL の制約

一意制約が複数のテーブルの列に適用され、Student テーブルが正常に作成されたことを確認するには、次のクエリを実行します。

 mysql> DESC student; 

SQL の制約

既存のテーブルの列に UNIQUE 制約を適用する構文:

unixのトップコマンド
 ALTER TABLE TableName ADD UNIQUE (ColumnName); 

例:

制約が適用されていない既存のテーブル学生があるとします。その後、テーブルの列の 1 つに UNIQUE 制約を適用することにしました。次に、次のクエリを実行します。

 mysql> ALTER TABLE student ADD UNIQUE (StudentID); 

SQL の制約

一意制約がテーブルの列に適用され、Student テーブルが正常に作成されたことを確認するために、次のクエリを実行します。

 mysql> DESC student; 

SQL の制約

3. 主キー

  • PRIMARY KEY 制約は、NOT NULL 制約と Unique 制約を組み合わせたものです。
  • NOT NULL 制約と UNIQUE 制約を合わせて PRIMARY 制約を形成します。
  • 主制約を適用した列には常に一意の値が含まれ、NULL 値は許可されません。

テーブル作成時の主キー制約の構文:

 CREATE TABLE TableName (ColumnName1 datatype PRIMARY KEY, ColumnName2 datatype,…., ColumnNameN datatype); 

例:

Student テーブルを作成し、テーブルの作成時に 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)); 

SQL の制約

主キー制約がテーブルの列に適用され、Student テーブルが正常に作成されたことを確認するには、次のクエリを実行します。

 mysql> DESC student; 

SQL の制約

既存のテーブルの列に主キー制約を適用する構文:

 ALTER TABLE TableName ADD PRIMARY KEY (ColumnName); 

例:

制約が適用されていない既存のテーブル学生があるとします。その後、テーブルの列に PRIMARY KEY 制約を適用することにしました。次に、次のクエリを実行します。

 mysql> ALTER TABLE student ADD PRIMARY KEY (StudentID); 

SQL の制約

主キー制約が Student テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql> DESC student; 

SQL の制約

4. 外部キー

  • 外部キーは参照整合性のために使用されます。
  • 2 つのテーブルがあり、1 つのテーブルが別のテーブルから参照する場合、つまり、両方のテーブルに同じ列が存在し、その列が 1 つのテーブルの主キーとして機能します。その特定の列は、別のテーブルの外部キーとして機能します。

テーブル作成時に外部キー制約を適用する構文:

 CREATE TABLE tablename(ColumnName1 Datatype(SIZE) PRIMARY KEY, ColumnNameN Datatype(SIZE), FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName)); 

例:

従業員テーブルを作成し、テーブルの作成中に FOREIGN KEY 制約を適用します。

テーブルに外部キーを作成するには、まずテーブルに主キーを作成する必要があります。

 mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40)); 

SQL の制約

主キー制約が従業員テーブルの列に適用されていることを確認するには、次のクエリを実行します。

Pythonのソート辞書
 mysql> DESC employee; 

SQL の制約

ここで、従業員テーブルの主キー、つまり 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)); 

SQL の制約

外部キー制約が部門テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql> DESC department; 

SQL の制約

制約名を使用して外部キー制約を適用する構文:

 CREATE TABLE tablename(ColumnName1 Datatype PRIMARY KEY, ColumnNameN Datatype(SIZE), CONSTRAINT ConstraintName FOREIGN KEY( ColumnName ) REFERENCES PARENT_TABLE_NAME(Primary_Key_ColumnName)); 

例:

従業員テーブルを作成し、テーブルの作成時に制約名を指定して FOREIGN KEY 制約を適用します。

テーブルに外部キーを作成するには、まずテーブルに主キーを作成する必要があります。

 mysql> CREATE TABLE employee (Emp_ID INT NOT NULL PRIMARY KEY, Emp_Name VARCHAR (40), Emp_Salary VARCHAR (40)); 

SQL の制約

主キー制約が Student テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql> DESC employee; 

SQL の制約

ここで、従業員テーブルの主キー、つまり 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)); 

SQL の制約

外部キー制約が部門テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql> DESC department; 

SQL の制約

既存のテーブルの列に外部キー制約を適用する構文:

 ALTER TABLE Parent_TableName ADD FOREIGN KEY (ColumnName) REFERENCES Child_TableName (ColumnName); 

例:

既存のテーブルの従業員と部門があるとします。その後、部門テーブルの列に FOREIGN KEY 制約を適用することにしました。次に、次のクエリを実行します。

 mysql> DESC employee; 

SQL の制約
 mysql> ALTER TABLE department ADD FOREIGN KEY (Emp_ID) REFERENCES employee (Emp_ID); 

SQL の制約

外部キー制約が部門テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql> DESC department; 

SQL の制約

5. チェック

  • チェック制約がテーブルの列に適用され、ユーザーがその列に値を挿入する場合は、その列に値を挿入する前に、まず値が特定の条件についてチェックされます。
  • 例えば:テーブルに年齢列がある場合、ユーザーは任意の値を挿入します。ユーザーは、負の値やその他の無効な値も入力します。ただし、ユーザーが 18 歳より大きい年齢という条件で年齢列にチェック制約を適用した場合、そのような場合、ユーザーがゼロなどの無効な値や 18 未満のその他の値を挿入しようとしても、年齢はage 列にはチェック制約が適用されているため、列はその値を受け入れず、ユーザーがその値を挿入することもできません。

単一の列にチェック制約を適用する構文:

 CREATE TABLE TableName (ColumnName1 datatype CHECK (ColumnName1 Condition), ColumnName2 datatype,…., ColumnNameN datatype); 

例:

Student テーブルを作成し、テーブルの作成中に 15 歳以下の年齢をチェックする CHECK 制約を適用します。

 mysql&gt; 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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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),&#x2026;., 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&gt; 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&gt; 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&apos;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&apos;s column. Then we will execute the following query:</p> <pre> mysql&gt; 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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&apos;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,&#x2026;., 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&gt; CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40) DEFAULT &apos;[email protected]&apos;); </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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&apos;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&apos;s column. Then we will execute the following query:</p> <pre> mysql&gt; ALTER TABLE student ALTER Student_Email_ID SET DEFAULT &apos;[email protected]&apos;; </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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&gt; 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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&gt; 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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&apos;s column. Then we will execute the following query:</p> <pre> mysql&gt; 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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-41.webp" alt="Constraints in SQL"> <hr></=15></pre></=>

SQL の制約

複数の列にチェック制約を適用する構文:

 CREATE TABLE TableName (ColumnName1 datatype, ColumnName2 datatype CHECK (ColumnName1 Condition AND ColumnName2 Condition),&#x2026;., ColumnNameN datatype); 

例:

Student テーブルを作成し、CHECK 制約を適用して、テーブルの作成中に 15 歳以下の年齢と 85 を超えるパーセンテージをチェックします。

 mysql&gt; 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)); 

SQL の制約

チェック制約が年齢と割合の列に適用されていることを確認するには、次のクエリを実行します。

 mysql&gt; DESC student; 

SQL の制約

既存のテーブルの列にチェック制約を適用する構文:

 ALTER TABLE TableName ADD CHECK (ColumnName Condition); 

例:

既存のテーブルの生徒がいると考えてみましょう。その後、Student テーブルの列に CHECK 制約を適用することにしました。次に、次のクエリを実行します。

 mysql&gt; 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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&apos;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,&#x2026;., 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&gt; CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40) DEFAULT &apos;[email protected]&apos;); </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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&apos;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&apos;s column. Then we will execute the following query:</p> <pre> mysql&gt; ALTER TABLE student ALTER Student_Email_ID SET DEFAULT &apos;[email protected]&apos;; </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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&gt; 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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&gt; 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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; 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&apos;s column. Then we will execute the following query:</p> <pre> mysql&gt; 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&apos;s column, we will execute the following query:</p> <pre> mysql&gt; DESC student; </pre> <br> <img src="//techcodeview.com/img/sql-tutorial/65/constraints-sql-41.webp" alt="Constraints in SQL"> <hr></=15>

SQL の制約

6. デフォルト

デフォルト制約がテーブルの列に適用され、ユーザーがその列に挿入する値を指定していない場合は、デフォルト制約の適用中に指定されたデフォルト値がその特定の列に挿入されます。

Javaの配列リストをソートする

テーブル作成時にデフォルト制約を適用する構文:

 CREATE TABLE TableName (ColumnName1 datatype DEFAULT Value, ColumnName2 datatype,&#x2026;., ColumnNameN datatype); 

例:

Student テーブルを作成し、テーブルの作成時にデフォルトの制約を適用します。

 mysql&gt; CREATE TABLE student(StudentID INT, Student_FirstName VARCHAR(20), Student_LastName VARCHAR(20), Student_PhoneNumber VARCHAR(20), Student_Email_ID VARCHAR(40) DEFAULT &apos;[email protected]&apos;); 

SQL の制約

デフォルトの制約が Student テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql&gt; DESC student; 

SQL の制約

既存のテーブルの列にデフォルト制約を適用する構文:

 ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value; 

例:

既存のテーブルの生徒がいると考えてみましょう。その後、Student テーブルの列に DEFAULT 制約を適用することにしました。次に、次のクエリを実行します。

 mysql&gt; ALTER TABLE student ALTER Student_Email_ID SET DEFAULT &apos;[email protected]&apos;; 

SQL の制約

デフォルトの制約が Student テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql&gt; DESC student; 

SQL の制約

7. インデックスの作成

CREATE INDEX 制約は、テーブルにインデックスを作成するために使用されます。インデックスはユーザーには見えませんが、ユーザーの検索速度やデータベースからのデータの取得を高速化するのに役立ちます。

単一列にインデックスを作成する構文:

 CREATE INDEX IndexName ON TableName (ColumnName 1); 

例:

Student テーブルにインデックスを作成し、テーブルの作成時にデフォルトの制約を適用します。

メイブンのインストール
 mysql&gt; CREATE INDEX idx_StudentID ON student (StudentID); 

SQL の制約

インデックス作成制約が Student テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql&gt; DESC student; 

SQL の制約

複数の列にインデックスを作成する構文:

 CREATE INDEX IndexName ON TableName (ColumnName 1, ColumnName 2, ColumnName N); 

例:

 mysql&gt; CREATE INDEX idx_Student ON student (StudentID, Student_PhoneNumber); 

SQL の制約

インデックス作成制約が Student テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql&gt; DESC student; 

SQL の制約

既存のテーブルにインデックスを作成する構文:

 ALTER TABLE TableName ADD INDEX (ColumnName); 

既存のテーブルの生徒がいると考えてみましょう。その後、Student テーブルの列に DEFAULT 制約を適用することにしました。次に、次のクエリを実行します。

 mysql&gt; ALTER TABLE student ADD INDEX (StudentID); 

SQL の制約

インデックス作成制約が Student テーブルの列に適用されていることを確認するには、次のクエリを実行します。

 mysql&gt; DESC student; 

SQL の制約