Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL NOT NULL 제약 조건이란 무엇이며, 테이블 생성 시 NOT NULL 필드를 선언하는 방법

MySQL NOT NULL 제약 조건이란?

MySQL에서 NOT NULL 제약 조건은 테이블의 특정 열(컬럼)에 NULL 값이 저장되지 않도록 제한하는 규칙입니다. NOT NULL 제약 조건이 적용된 열에는 NULL 값을 삽입하거나 업데이트할 수 없으며, 해당 열에는 반드시 유효한 데이터가 들어가야 합니다.

특히 주목할 점은 NOT NULL이 테이블 전체 단위가 아니라 개별 열 단위(컬럼 레벨)로만 선언된다는 것입니다. 즉, 여러 열 중 일부에만 NOT NULL을 적용할 수 있고, 나머지 열은 NULL 값을 허용하도록 설정할 수 있습니다.

테이블 생성 시 NOT NULL 필드 선언하기

특정 필드를 NOT NULL로 지정하려면 CREATE TABLE 문에서 해당 열을 정의할 때 NOT NULL 키워드를 함께 작성하면 됩니다.

예제

mysql> Create table Employee(ID Int NOT NULL, First_Name Varchar(20), Last_name Varchar(20), Designation Varchar(15));
Query OK, 0 rows affected (0.59 sec)

위 쿼리에서는 'Employee' 테이블의 'ID' 필드에 NOT NULL 제약 조건을 적용했습니다. 이제 'ID' 열에는 절대 NULL 값을 저장할 수 없으며, 새로운 행을 추가할 때 반드시 유효한 ID 값을 제공해야 합니다.

반면 First_Name, Last_name, Designation 열에는 NOT NULL이 적용되지 않았기 때문에 이 열들은 NULL 값을 가질 수 있습니다.

DESCRIBE로 제약 조건 확인하기

NOT NULL 제약 조건이 올바르게 적용되었는지는 DESCRIBE 문으로 확인할 수 있습니다. 아래 결과에서 'ID' 필드의 Null 항목이 NO로 표시된 것을 볼 수 있는데, 이는 해당 열이 NULL 값을 허용하지 않음을 의미합니다.

mysql> DESCRIBE Employee\G
*************************** 1. row ***************************
  Field: ID
   Type: int(11)
   Null: NO
    Key:
Default: NULL
  Extra:
*************************** 2. row ***************************
  Field: First_Name
   Type: varchar(20)
   Null: YES
    Key:
Default: NULL
  Extra:
*************************** 3. row ***************************
  Field: Last_name
   Type: varchar(20)
   Null: YES
    Key:
Default: NULL
  Extra:
*************************** 4. row ***************************
  Field: Designation
   Type: varchar(15)
   Null: YES
    Key:
Default: NULL
  Extra:
4 rows in set (0.03 sec)

정리

  • NOT NULL 제약 조건은 열에 NULL 값이 저장되는 것을 금지합니다.
  • 테이블 전체가 아닌 개별 열(컬럼 레벨)에만 선언할 수 있습니다.
  • CREATE TABLE 문에서 열 정의 시 NOT NULL 키워드를 붙여 선언합니다.
  • DESCRIBE 문의 Null 항목(NO/YES)으로 적용 여부를 확인할 수 있습니다.