logo

SQL | 제약 조건 확인

그만큼CHECKSQL의 제약 조건은 삽입 또는 업데이트할 수 있는 데이터를 제한하여 열 값에 규칙을 적용합니다. 이는 값이 지정된 조건을 충족하는지 확인합니다. 값이 조건을 위반하면 작업이 거부됩니다.CHECK테이블 생성 또는 수정 중에 추가할 수 있습니다.

CHECK 제약 조건의 구문

그만큼 CHECK 제약조건 테이블을 생성할 때 정의하거나 나중에 ALTER 문을 사용하여 추가할 수 있습니다.

1. CREATE TABLE과 함께 CHECK 사용 :

CREATE TABLE table_name (  
column1 datatype
column2 datatype CHECK (condition)
...
);

2. ALTER TABLE과 함께 CHECK 사용

ALTER TABLE table_name  
ADD CONSTRAINT constraint_name CHECK (condition);

CHECK 제약조건에 대한 주요 사항:



  • 도메인 무결성: 이는 열의 값이 지정된 조건을 충족하는지 확인하여 데이터베이스에서 유효한 데이터를 유지하는 데 도움이 됩니다.
  • CREATE 또는 ALTER와 함께 사용됩니다. CHECK 제약 조건은 테이블을 생성할 때 정의하거나 기존 테이블에 추가할 수 있습니다.
  • 다른 제약 조건과 결합 가능: 다음과 같은 다른 제약 조건과 함께 CHECK를 사용할 수 있습니다. 기본 키 FOREIGN KEY 및 NOT NULL을 사용하여 테이블 데이터에 대한 보다 포괄적인 규칙을 정의합니다.
  • 행 수준 제약 조건: 개별 열에 영향을 미치는 열 수준 제약 조건과 달리 CHECK 제약 조건은 필요한 경우 여러 열에 동시에 적용할 수 있습니다.

CHECK 제약 조건 사용 예

CHECK 제약 조건이 어떻게 작동하는지 더 잘 이해하기 위해 몇 가지 실제 예를 살펴보겠습니다. SQL .

예 1: 단일 열에 CHECK 적용

이 예에서는 18에서 120 사이의 값을 포함해야 하는 Age 열이 있는 Customers 테이블을 만듭니다. CHECK 제약 조건은 잘못된 연령이 테이블에 삽입되지 않도록 합니다.

질문:

CREATE TABLE Customers (  
CustomerID INT PRIMARY KEY
Name VARCHAR(50)
Age INT CHECK (Age >= 18 AND Age <= 120)
);


-- Valid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (1 'John Doe' 25);

-- Invalid insert
INSERT INTO Customers (CustomerID Name Age)
VALUES (2 'Jane Smith' 15); -- This will fail due to the CHECK constraint

Age 열에는 값이 18에서 120 사이여야 한다는 것을 보장하는 CHECK 제약 조건이 있습니다. 이 범위를 벗어나는 나이를 삽입하려고 하면 데이터베이스에서 오류가 발생합니다.

예 2: 여러 열이 포함된 CHECK 제약 조건

여러 열에 걸쳐 CHECK 제약 조건을 사용할 수도 있습니다. 예를 들어 우리가 Employee 테이블에서 Salary가 양수이고 Age가 18보다 크거나 같은지 확인하려고 합니다.

질문:

의도 의도
CREATE TABLE Employee (  
EmployeeID INT PRIMARY KEY
Name VARCHAR(50)
Age INT
Salary DECIMAL(10 2)
CHECK (Age >= 18 AND Salary > 0)
);


-- Valid insert
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (1 'Alice Johnson' 30 50000);

-- Invalid insert (age < 18)
INSERT INTO Employee (EmployeeID Name Age Salary)
VALUES (2 'Bob Lee' 16 45000); -- This will fail due to the CHECK constraint

CHECK 제약 조건은 두 조건이 모두 충족되는지 확인합니다. 직원은 18세 이상이어야 하며 급여는 0보다 커야 합니다. 이러한 종류의 제약 조건은 규칙에 여러 열이 포함될 때 유용합니다.

예 3: ALTER TABLE을 사용하여 CHECK 제약 조건 추가

ALTER TABLE 문을 사용하여 기존 테이블에 CHECK 제약 조건을 추가할 수 있습니다.

질문:

ALTER TABLE Employee  
ADD CONSTRAINT chk_salary CHECK (Salary >= 30000);

그러면 Salary 열의 최소값이 30000이 되도록 Employee 테이블에 chk_salary라는 CHECK 제약 조건이 추가됩니다. 급여가 30000보다 낮은 레코드를 삽입하거나 업데이트하려고 하면 작업이 실패합니다.

추천 퀴즈 퀴즈 편집 질문 5개

CHECK 제약 조건은 SQL에서 무엇을 보장합니까?

  • 에이

    열은 규칙 없이 값을 허용합니다.

  • 열은 고유한 경우에만 값을 허용합니다.

  • 기음

    열은 null이 아닌 경우에만 값을 허용합니다.

  • 열은 지정된 규칙과 일치하는 값을 허용합니다.

설명:

CHECK는 정의된 규칙을 위반하는 모든 데이터를 거부하는 조건을 열 값에 적용합니다.

SQL은 언제 CHECK를 사용하는 INSERT를 방지합니까?

무효 0
  • 에이

    해당 컬럼에 값이 중복된 경우

  • 값이 정의된 조건을 위반하는 경우

  • 기음

    테이블에 기본 제약조건이 없는 경우

  • 값이 NULL이고 열이 null을 허용하는 경우

설명:

삽입되거나 업데이트된 데이터가 CHECK 조건을 위반하면 SQL은 작업을 취소합니다.

CHECK 제약 조건은 어디에 정의할 수 있나요?

  • 에이

    SELECT 쿼리 구문 내부에서만

  • 기본 키가 선언된 후에만

  • 기음

    테이블 생성 또는 수정 중

    java 문자열을 int로 캐스트
  • 범위가 있는 숫자 열에만 해당

설명:

CHECK는 테이블을 생성하는 동안 추가하거나 나중에 ALTER TABLE 문을 사용하여 추가할 수 있습니다.

다중 열 CHECK 제약 조건에서는 어떻게 되나요?

  • 에이

    조건은 하나의 열만 참조할 수 있습니다.

  • 조건은 여러 열을 참조할 수 있습니다.

  • 기음

    조건은 숫자 열에서만 작동합니다.

    스프링 도구 제품군
  • 조건은 삽입 중 값을 무시합니다.

설명:

CHECK는 두 개 이상의 열을 사용하여 결합된 유효성 검사를 적용하는 규칙을 적용할 수 있습니다.

어떤 삽입이 CHECK(Age ≥ 18) 제약 조건을 충족하지 못합니까?

  • 에이

    15세 미만의 연령 값

  • 연령 값은 정확히 18과 같습니다.

  • 기음

    25세 이상의 연령 값

  • NULL 값으로 저장된 연령 값 허용

설명:

18 미만의 값은 CHECK 규칙을 위반하므로 삽입 실패가 발생합니다.

SQL | 제약 조건 확인퀴즈가 성공적으로 완료되었습니다. 귀하의 점수:  2/5정확성 : 0%설명을 보려면 로그인하세요 1/5 1/5 < Previous 다음 >