logo

SQL의 제약조건

SQL의 제약 조건은 데이터베이스에 특정 조건이나 제한 사항을 적용한다는 의미입니다. 이는 또한 데이터베이스에 데이터를 삽입하기 전에 몇 가지 조건을 확인하고 있음을 의미합니다. 데이터베이스에 적용한 조건이 삽입될 데이터에 대해 true인 경우 해당 데이터만 데이터베이스 테이블에 삽입됩니다.

SQL의 제약 조건은 두 가지 유형으로 분류될 수 있습니다.

    열 수준 제약:
    열 수준 제약 조건은 단일 열에 제약 조건을 적용하는 데 사용됩니다.테이블 레벨 제약:
    테이블 수준 제약 조건은 여러 열에 제약 조건을 적용하는 데 사용됩니다.

제약 조건의 실제 예는 다음과 같습니다.

  1. 모든 사람은 고유한 이메일 ID를 가지고 있습니다. 이는 사용자의 이메일 계정을 생성하는 동안 Gmail, Yahoo 또는 기타 이메일 제공 서비스와 같은 이메일 제공 서비스가 항상 사용자가 원하는 이메일 ID의 가용성을 확인하기 때문입니다. 다른 사용자가 자신이 원하는 이메일 ID를 이미 사용하고 있는 경우 해당 ID를 다른 사용자에게 할당할 수 없습니다. 이는 단순히 두 명의 사용자가 동일한 이메일 제공 서비스에서 동일한 이메일 ID를 가질 수 없음을 의미합니다. 따라서 여기서 이메일 ID는 이메일 제공 서비스 데이터베이스에 대한 제약 조건입니다.
  2. 시스템에 비밀번호를 설정할 때마다 따라야 할 특정 제약 조건이 있습니다. 이러한 제약에는 다음이 포함될 수 있습니다.
    • 비밀번호에는 대문자가 1개 있어야 합니다.
    • 비밀번호는 8자 이상이어야 합니다.
    • 비밀번호에는 특수 기호가 하나 이상 포함되어야 합니다.

SQL에서 사용할 수 있는 제약 조건은 다음과 같습니다.

  1. NULL이 아님
  2. 고유한
  3. 기본 키
  4. 외래 키
  5. 확인하다
  6. 기본
  7. 인덱스 생성

이제 예제를 통해 SQL에서 사용할 수 있는 다양한 제약 조건을 더 자세히 이해해 보겠습니다. 우리는 모든 쿼리를 작성하기 위해 MySQL 데이터베이스를 사용할 것입니다.

1. NULL이 아니다

  • NULL은 비어 있음을 의미합니다. 즉, 값을 사용할 수 없습니다.
  • 테이블의 열이 NOT NULL로 선언될 때마다 해당 열의 값은 테이블의 레코드에 대해 비어 있을 수 없습니다.
  • NOT NULL 제약 조건이 적용되는 컬럼에는 반드시 값이 존재해야 합니다.

참고: NULL은 0을 의미하지 않습니다. NULL은 0이 아닌 빈 열을 의미합니다.

테이블 생성 중에 NOT NULL 제약 조건을 적용하는 구문은 다음과 같습니다.

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

예:

학생 테이블을 생성하고 테이블을 생성하는 동안 테이블 열 중 하나에 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 제약 조건이 적용되고 학생 테이블이 성공적으로 생성되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql> DESC student; 

SQL의 제약조건

기존 테이블의 열에 NOT NULL 제약 조건을 적용하는 구문:

 ALTER TABLE TableName CHANGE Old_ColumnName New_ColumnName Datatype NOT NULL; 

예:

어떠한 제약 조건도 적용되지 않은 기존 테이블 학생이 있다고 가정해 보겠습니다. 나중에 우리는 테이블의 열 중 하나에 NOT NULL 제약 조건을 적용하기로 결정했습니다. 그런 다음 다음 쿼리를 실행합니다.

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

SQL의 제약조건

null이 아닌 제약 조건이 학생 테이블의 열에 적용되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql> DESC student; 

SQL의 제약조건

2. 독특함

  • UNIQUE 제약 조건이 적용된 컬럼에는 중복된 값이 허용되지 않습니다.
  • 고유 제약 조건이 있는 열에는 항상 고유 값이 포함됩니다.
  • 이 제약 조건은 테이블의 하나 이상의 열에 적용될 수 있습니다. 즉, 단일 테이블에 둘 이상의 고유 제약 조건이 존재할 수 있습니다.
  • UNIQUE 제약 조건을 사용하면 이미 생성된 테이블을 수정할 수도 있습니다.

단일 열에 UNIQUE 제약 조건을 적용하는 구문은 다음과 같습니다.

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

예:

학생 테이블을 생성하고 테이블을 생성하는 동안 테이블 열 중 하나에 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의 제약조건

테이블의 열에 고유 제약 조건이 적용되고 학생 테이블이 성공적으로 생성되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql> DESC student; 

SQL의 제약조건

둘 이상의 열에 UNIQUE 제약 조건을 적용하는 구문:

황소 대 황소
 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의 제약조건

두 개 이상의 테이블 열에 고유 제약 조건이 적용되고 학생 테이블이 성공적으로 생성되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql> DESC student; 

SQL의 제약조건

기존 테이블의 열에 UNIQUE 제약 조건을 적용하는 구문:

 ALTER TABLE TableName ADD UNIQUE (ColumnName); 

예:

어떠한 제약 조건도 적용되지 않은 기존 테이블 학생이 있다고 가정해 보겠습니다. 나중에 우리는 테이블의 열 중 하나에 UNIQUE 제약 조건을 적용하기로 결정했습니다. 그런 다음 다음 쿼리를 실행합니다.

 mysql> ALTER TABLE student ADD UNIQUE (StudentID); 

SQL의 제약조건

테이블의 열에 고유 제약 조건이 적용되고 학생 테이블이 성공적으로 생성되었는지 확인하기 위해 다음 쿼리를 실행합니다.

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

예:

학생 테이블을 생성하고 테이블을 생성하는 동안 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의 제약조건

기본 키 제약 조건이 테이블 열에 적용되고 학생 테이블이 성공적으로 생성되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql> DESC student; 

SQL의 제약조건

기존 테이블 열에 기본 키 제약 조건을 적용하는 구문은 다음과 같습니다.

 ALTER TABLE TableName ADD PRIMARY KEY (ColumnName); 

예:

어떠한 제약 조건도 적용되지 않은 기존 테이블 학생이 있다고 가정해 보겠습니다. 나중에 우리는 테이블 열에 PRIMARY KEY 제약 조건을 적용하기로 결정했습니다. 그런 다음 다음 쿼리를 실행합니다.

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

SQL의 제약조건

기본 키 제약 조건이 학생 테이블의 열에 적용되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql> DESC student; 

SQL의 제약조건

4. 외래 키

  • 참조 무결성을 위해 외래 키가 사용됩니다.
  • 두 개의 테이블이 있고 한 테이블이 다른 테이블을 참조하는 경우, 즉 동일한 열이 두 테이블 모두에 존재하고 해당 열이 한 테이블에서 기본 키 역할을 하는 경우입니다. 해당 특정 열은 다른 테이블에서 외래 키 역할을 합니다.

테이블 생성 중에 외래 키 제약 조건을 적용하는 구문은 다음과 같습니다.

 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의 제약조건

직원 테이블의 열에 기본 키 제약 조건이 적용되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql> DESC employee; 

SQL의 제약조건

이제 Employee 테이블의 기본 키인 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의 제약조건

기본 키 제약 조건이 학생 테이블의 열에 적용되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql> DESC employee; 

SQL의 제약조건

이제 Employee 테이블의 기본키(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세보다 큰 조건으로 연령 열에 검사 제약 조건을 적용한 경우에는 사용자가 0 또는 18보다 작은 다른 값과 같은 잘못된 값을 삽입하려고 시도하더라도 연령은 열은 해당 값을 허용하지 않으며 age 열에 대한 검사 제약 조건 적용으로 인해 사용자가 해당 값을 삽입하는 것을 허용하지 않습니다.

단일 열에 검사 제약 조건을 적용하는 구문은 다음과 같습니다.

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

예:

학생 테이블을 생성하고 CHECK 제약 조건을 적용하여 테이블 생성 시 연령이 15세 이하인지 확인합니다.

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

예:

학생 테이블을 생성하고 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); 

예:

기존 테이블 학생이 있다고 생각해 보세요. 나중에 우리는 학생 테이블의 열에 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. 기본값

기본 제약 조건이 테이블 열에 적용될 때 사용자가 삽입할 값을 지정하지 않은 경우에는 기본 제약 조건을 적용하는 동안 지정된 기본값이 해당 특정 열에 삽입됩니다.

테이블 생성 중 기본 제약 조건을 적용하는 구문은 다음과 같습니다.

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

예:

학생 테이블을 생성하고 테이블을 생성하는 동안 기본 제약 조건을 적용합니다.

 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의 제약조건

학생 테이블의 열에 기본 제약 조건이 적용되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql&gt; DESC student; 

SQL의 제약조건

기존 테이블의 열에 기본 제약 조건을 적용하는 구문:

 ALTER TABLE TableName ALTER ColumnName SET DEFAULT Value; 

예:

기존 테이블 학생이 있다고 생각해 보세요. 나중에 우리는 학생 테이블의 열에 DEFAULT 제약 조건을 적용하기로 결정했습니다. 그런 다음 다음 쿼리를 실행합니다.

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

SQL의 제약조건

학생 테이블의 열에 기본 제약 조건이 적용되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql&gt; DESC student; 

SQL의 제약조건

7. 인덱스 생성

CREATE INDEX 제약 조건은 테이블에 인덱스를 생성하는 데 사용됩니다. 인덱스는 사용자에게 표시되지 않지만 사용자가 검색 속도를 높이거나 데이터베이스에서 데이터를 검색하는 데 도움이 됩니다.

단일 열에 인덱스를 생성하는 구문:

 CREATE INDEX IndexName ON TableName (ColumnName 1); 

예:

학생 테이블에 인덱스를 생성하고 테이블을 생성하는 동안 기본 제약 조건을 적용합니다.

 mysql&gt; CREATE INDEX idx_StudentID ON student (StudentID); 

SQL의 제약조건

학생 테이블의 열에 인덱스 생성 제약 조건이 적용되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 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의 제약조건

학생 테이블의 열에 인덱스 생성 제약 조건이 적용되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql&gt; DESC student; 

SQL의 제약조건

기존 테이블에 인덱스를 생성하는 구문은 다음과 같습니다.

 ALTER TABLE TableName ADD INDEX (ColumnName); 

기존 테이블 학생이 있다고 생각해 보세요. 나중에 우리는 학생 테이블의 열에 DEFAULT 제약 조건을 적용하기로 결정했습니다. 그런 다음 다음 쿼리를 실행합니다.

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

SQL의 제약조건

학생 테이블의 열에 인덱스 생성 제약 조건이 적용되었는지 확인하기 위해 다음 쿼리를 실행합니다.

 mysql&gt; DESC student; 

SQL의 제약조건