NOT NULL 제약 조건이란 무엇입니까?
NOT NULL 제약 조건은 특정 열에 대해 테이블의 모든 행이 null이 아닌 값을 가져야 하는 null 값을 열에 포함할 수 없도록 합니다.
튜토리얼 요구 사항:
이 게시물에 제공된 지침을 따르기 위해 다음 요구 사항이 있다고 가정합니다.
- 머신에 설치된 PostgreSQL 서버
- 기본 SQL 지식
- 제약 조건, 함수 등과 같은 데이터베이스 테이블 개체를 생성할 수 있는 권한
예시 표:
not null 제약 조건이 포함된 열이 있는 샘플 테이블을 설정하여 시작하겠습니다. WordPress의 wp_users 테이블과 유사한 기본 테이블을 설정하는 다음 create table 문을 사용하십시오.
테이블 작성 wp_users(
ID 직렬 기본 키,
user_login VARCHAR(60) NOT NULL,
user_pass VARCHAR(255) NOT NULL,
user_nicename VARCHAR(50) NOT NULL,
user_email VARCHAR(100) NULL이 아님,
user_url VARCHAR(100),
user_registered TIMESTAMP NULL이 아님 기본값 current_timestamp,
user_activation_key VARCHAR(255),
user_status INT NULL이 아님 기본값 0,
display_name VARCHAR(250) NOT NULL
);
주어진 쿼리에서 대부분의 열에 NOT NULL 제약 조건이 포함되어 있음을 알 수 있습니다.
지정된 열에서 NOT NULL 제약 조건을 만드는 가장 효율적인 방법은 테이블을 만드는 동안입니다. 이렇게 하면 테이블에 추가되는 모든 데이터가 제약 조건 규칙을 준수하는지 확인할 수 있습니다.
그러나 기존 테이블에 제약 조건을 추가하면 기존 데이터가 아닌 제약 조건 뒤에 추가되는 데이터에만 규칙이 적용됩니다. 이로 인해 특히 큰 테이블에서 불일치가 발생할 수 있습니다.
NOT NULL 제약 조건 추가
경우에 따라 기존 테이블에 NOT NULL 제약 조건을 추가할 수 있습니다. 예를 들어 ALTER TABLE 명령 다음에 ALTER COLUMN 절을 사용할 수 있습니다.
구문은 다음과 같습니다.
ALTER TABLE table_nameALTER COLUMN column_name SET NOT NULL;
table_name을 대상 테이블로 바꾸고 column_name을 제약 조건을 적용하려는 대상 열로 바꿉니다.
구속 확인
PSQL 유틸리티의 '\d' 명령을 사용하여 주어진 테이블에 제약 조건이 존재하는지 확인할 수 있습니다.
\d 테이블 이름예:
sample_db=# \d wp_users;결과 출력은 다음과 같습니다.
NOT NULL 제약 조건 제거
지정된 열에서 NOT NULL 제약 조건을 제거할 수도 있습니다. 이를 위해 다음과 같이 ALTER TABLE 및 ALTER COLUMN 절을 사용할 수 있습니다.
ALTER TABLE table_nameALTER COLUMN column_name DROP NOT NULL;
예를 들어 wp_users 테이블의 user_url 열에서 NOT NULL 제약 조건을 제거하려면 다음 쿼리를 실행할 수 있습니다.
ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;이렇게 하면 테이블에서 제약 조건이 삭제됩니다.
결론
이 튜토리얼에서는 PostgreSQL에서 NOT NOLL 제약 조건으로 작업하는 방법에 대해 살펴보았습니다. 또한 주어진 열에서 기존 NOT NULL 제약 조건을 삭제하는 방법도 살펴보았습니다.