SQLite-제약

제약 조건은 테이블의 데이터 열에 적용되는 규칙입니다. 테이블에 들어갈 수있는 데이터 유형을 제한하는 데 사용됩니다. 이것은 데이터베이스에있는 데이터의 정확성과 신뢰성을 보장합니다.

제약 조건은 열 수준 또는 테이블 수준 일 수 있습니다. 열 수준 제약 조건은 하나의 열에 만 적용되는 반면 테이블 수준 제약 조건은 전체 테이블에 적용됩니다.

다음은 SQLite에서 일반적으로 사용되는 제약 조건입니다.

  • NOT NULL Constraint − 열이 NULL 값을 가질 수 없도록합니다.

  • DEFAULT Constraint − 아무것도 지정되지 않은 경우 열에 대한 기본값을 제공합니다.

  • UNIQUE Constraint − 열의 모든 값이 다른지 확인합니다.

  • PRIMARY Key − 데이터베이스 테이블에서 각 행 / 레코드를 고유하게 식별합니다.

  • CHECK Constraint − 열의 모든 값이 특정 조건을 충족하는지 확인합니다.

NOT NULL 제약

기본적으로 열은 NULL 값을 보유 할 수 있습니다. 열이 NULL 값을 갖지 않도록하려면 해당 열에 대해 이제 NULL이 허용되지 않음을 지정하여이 열에 이러한 제약 조건을 정의해야합니다.

NULL은 데이터가없는 것과 같지 않고 알 수없는 데이터를 나타냅니다.

예를 들어 다음 SQLite 문은 COMPANY라는 새 테이블을 만들고 5 개의 열을 추가합니다.이 중 3 개는 ID와 NAME 및 AGE가 NULL을 허용하지 않도록 지정합니다.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

DEFAULT 제약

DEFAULT 제약 조건은 INSERT INTO 문이 특정 값을 제공하지 않을 때 열에 기본값을 제공합니다.

예를 들어 다음 SQLite 문은 COMPANY라는 새 테이블을 만들고 5 개의 열을 추가합니다. 여기서 SALARY 열은 기본적으로 5000.00으로 설정되어 있으므로 INSERT INTO 문이이 열에 대한 값을 제공하지 않는 경우 기본적으로이 열은 5000.00으로 설정됩니다.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

고유 한 제약

UNIQUE 제약 조건은 두 레코드가 특정 열에서 동일한 값을 갖는 것을 방지합니다. 예를 들어 COMPANY 테이블에서 두 명 이상의 사람이 동일한 연령을 가지지 못하도록 할 수 있습니다.

예를 들어 다음 SQLite 문은 COMPANY라는 새 테이블을 만들고 5 개의 열을 추가합니다. 여기서 AGE 열은 UNIQUE로 설정되어 있으므로 동일한 연령의 두 레코드를 가질 수 없습니다.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL UNIQUE,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

기본 키 제약

PRIMARY KEY 제약 조건은 데이터베이스 테이블의 각 레코드를 고유하게 식별합니다. 더 많은 UNIQUE 열이있을 수 있지만 테이블에는 기본 키가 하나만 있습니다. 데이터베이스 테이블을 디자인 할 때 기본 키가 중요합니다. 기본 키는 고유 한 ID입니다.

테이블 행을 참조하는 데 사용합니다. 테이블 간의 관계를 만들 때 기본 키는 다른 테이블에서 외래 키가됩니다. '오랜 코딩 감독'으로 인해 기본 키는 SQLite에서 NULL이 될 수 있습니다. 이것은 다른 데이터베이스의 경우가 아닙니다.

기본 키는 데이터베이스 테이블의 각 행 / 레코드를 고유하게 식별하는 테이블의 필드입니다. 기본 키는 고유 한 값을 포함해야합니다. 기본 키 열은 NULL 값을 가질 수 없습니다.

테이블에는 하나 또는 여러 필드로 구성 될 수있는 하나의 기본 키만있을 수 있습니다. 여러 필드가 기본 키로 사용되는 경우이를composite key.

테이블에 필드에 정의 된 기본 키가있는 경우 해당 필드의 값이 동일한 두 개의 레코드를 가질 수 없습니다.

ID를 기본 키로 사용하여 COMPANY 테이블을 만든 위의 다양한 예제를 이미 보았습니다.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

제약 조건 확인

CHECK Constraint는 레코드에 입력되는 값을 확인하는 조건을 활성화합니다. 조건이 거짓으로 평가되면 레코드가 제약 조건을 위반하고 테이블에 입력되지 않습니다.

예를 들어 다음 SQLite는 COMPANY라는 새 테이블을 만들고 5 개의 열을 추가합니다. 여기에서 SALARY 열이있는 CHECK를 추가하여 SALARY 0을 가질 수 없습니다.

CREATE TABLE COMPANY3(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    CHECK(SALARY > 0)
);

제약 조건 삭제

SQLite는 ALTER TABLE의 제한된 하위 집합을 지원합니다. SQLite의 ALTER TABLE 명령을 사용하면 사용자가 테이블의 이름을 바꾸거나 기존 테이블에 새 열을 추가 할 수 있습니다. 열 이름을 바꾸거나 열을 제거하거나 테이블에서 제약 조건을 추가 또는 제거 할 수 없습니다.