목차
2. 기존 테이블에 체크 제약 조건을 추가합니다
3. 체크 조건에서 복잡한 조건을 사용합니다
4. 체크 제약 조건을 떨어 뜨립니다
데이터 베이스 MySQL 튜토리얼 MySQL에서 검사 제약을 사용하여 데이터 규칙을 시행하는 방법은 무엇입니까?

MySQL에서 검사 제약을 사용하여 데이터 규칙을 시행하는 방법은 무엇입니까?

Aug 06, 2025 pm 04:49 PM
mysql

MySQL은 버전 8.0.16에서 효과적인 도메인 무결성을 강제하기위한 체크 제약 조건을 지원합니다. 1. 제약 조건 추가 테이블을 만들 때 : 테이블 작성 테이블을 사용하여 ≥18, 급여> 0, 부서 제한 값과 같은 점검 조건을 정의하십시오. 2. 제약 조건을 추가하기 위해 테이블을 수정하십시오. ALTER 테이블 사용 제약 조건을 추가하여 필드 값을 제한하지 않음. 3. 복잡한 조건 사용 : 종료 날짜 ≥ 스테이트 날짜 및 완료 상태와 같은 다중 열 논리 및 표현을 지원하십시오. 완료 상태에는 종료 날짜가 있어야합니다. 4. 제약 조건 삭제 : Alter Table Drop 제약 조건으로 이름을 지정하여 삭제; 5. 참고 : MySQL 8.0.16이 필요합니다, InnoDB 또는 MyISAM 엔진, 명시 적 명명 제약 조건, 부울 표현 평가 및 널 처리; 6. 일반적인 사용 사례 : 음수 값, 검증 범위, 조건부 논리를 방지하며 빈 문자열을 금지합니다. NULL 및 기타 제약 조건과 결합하여 데이터 무결성을 향상시키고 응용 프로그램 확인을위한 궁극적 인 보증 역할을 할 수 있습니다.

MySQL에서 검사 제약을 사용하여 데이터 규칙을 시행하는 방법은 무엇입니까?

MySQL의 확인 제약 조건은 열에 삽입 할 수있는 값을 제한하여 도메인 무결성을 시행하는 데 사용됩니다. 그들은 데이터가 테이블에 기록되기 전에 특정 조건을 충족하도록 보장합니다. MySQL은 버전 8.0.16으로 CHECK 제약을 지원하기 시작 했으므로 이전 버전은 구문 분석하지만 무시합니다.

MySQL에서 검사 제약을 사용하여 데이터 규칙을 시행하는 방법은 무엇입니까?

MySQL에서 확인 제약을 효과적으로 사용하는 방법은 다음과 같습니다.


1. 테이블 생성 중에 점검 제약 조건을 추가합니다

CREATE TABLE 문을 사용하여 테이블을 작성할 때 CHECK 제약 조건을 정의 할 수 있습니다.

MySQL에서 검사 제약을 사용하여 데이터 규칙을 시행하는 방법은 무엇입니까?
 테이블 직원 만들기 (
    ID int 기본 키 auto_increment,
    이름 Varchar (100) NOL NULL,
    나이 int,
    급여 소수점 (10,2),
    Varchar (50),

    - 나이가 최소 18 세로 시행됩니다
    제약 조건 CHK_AGE 체크 (Age> = 18),

    - 급여가 긍정적인지 확인하십시오
    제약 조건 CHK_SALARY 검사 (급여> 0),

    - 부서를 특정 값으로 제한합니다
    제약 조건 CHK_DEPARTMENT 확인 ( 'HR', 'Engineering', 'Sales', 'Marketing')의 부서
);

이 예에서 :

  • chk_age 18 세 미만의 직원이 추가되지 않도록합니다.
  • chk_salary 0 급여 또는 음의 급여를 방지합니다.
  • chk_department 사전 정의 된 부서의 항목을 제한합니다.

2. 기존 테이블에 체크 제약 조건을 추가합니다

ALTER TABLE ... ADD CONSTRAINT 테이블 생성 후 체크 제약 조건을 추가하십시오.

MySQL에서 검사 제약을 사용하여 데이터 규칙을 시행하는 방법은 무엇입니까?
 테이블 직원을 변경합니다
제약 조건 CHK_NAME_NOT_EMPTY를 추가하십시오
check (name! = '');

이것은 빈 줄이 name 필드에 삽입되는 것을 방지합니다.

⚠️ 참고 : 제약 조건은 모든 INSERT 또는 UPDATE 대해 평가됩니다. 기존 데이터가 조건을 위반하면 ALTER TABLE 문이 실패합니다.


3. 체크 조건에서 복잡한 조건을 사용합니다

점검 제약 조건에서 표현식 및 여러 열을 사용할 수 있습니다.

 테이블 프로젝트 생성 (
    project_id int 기본 키,
    start_date 날짜,
    end_date 날짜,
    상태 열거 ( '계획', '활성', '완료'),

    - 종료 날짜가 시작 날짜가 아닌지 확인하십시오
    제약 조건 chk_date_order check (end_date> = start_date),

    - end_date가 설정된 경우 '완료된'상태 만 허용합니다
    제약 조건 CHK_STATUS_COMPLETION Check (
        (status! = '완료') 또는 (상태 = '완료'및 end_date는 null이 아닙니다)
    ))
);

이것은 날짜와 상태 사이의 논리적 일관성을 보장합니다.


4. 체크 제약 조건을 떨어 뜨립니다

확인 제약 조건을 제거하려면 사용하십시오.

 테이블 직원을 변경합니다
DROP 제약 조건 CHK_NAME_NOT_EMPTY;

정확한 제약 이름을 알아야합니다. 다음을 사용하여 제약 조건을 볼 수 있습니다.

 information_schema.table_constraints에서 *를 선택하십시오
여기서 table_name = 'Employe'및 sonstraint_type = 'check';

5. 중요한 메모 및 제한

  • 8.0.16 이전의 MySQL 버전 : CHECK 구문은 구문 분석되지만 무시됩니다. 항상 MySQL 버전을 확인하십시오.
  • 스토리지 엔진 : innodb 및 myisam에서 확인 제약 조건이 지원됩니다.
  • 제약 이름 지정 : 더 쉬운 관리를 위해 제약 조건을 명시 적으로 이름을 지정하는 것이 좋습니다.
  • 부울 표현 : 조건은 부울 (참/거짓)으로 평가해야합니다. NULL은 알려지지 않은 것으로 취급되며 명시 적으로 처리되지 않는 한 삽입을 허용 할 수 있습니다.
  • 성능 : 체크 제약 조건은 오버 헤드가 최소화되지만 모든 쓰기마다 평가됩니다.

6. 일반적인 사용 사례

  • 음수 값 방지 : CHECK (price > 0)
  • 범위 검증 : CHECK (rating BETWEEN 1 AND 5)
  • 시행 조건부 로직 : CHECK (status != 'archived' OR archive_date IS NOT NULL)
  • 빈 줄을 허용하지 않음 : CHECK (LENGTH(trim(name)) > 0)

? 팁 : CHECK 강력한 데이터 무결성에 대한 NOT NULL 및 기타 제약 조건으로 결합하십시오.


점검 제약을 사용하면 데이터베이스 수준에서 직접 깨끗하고 신뢰할 수있는 데이터를 유지하여 응용 프로그램 논리에 대한 부담을 줄입니다. 응용 프로그램 검증을 대체하지는 않지만 유효하지 않은 데이터에 대한 최종 보호 역할을합니다.

기본적으로 MySQL 버전에서 지원하는 경우 (8.0.16), 데이터베이스에서 속한 비즈니스 규칙을 시행하기 위해 CHECK 제약 조건을 사용하십시오.

위 내용은 MySQL에서 검사 제약을 사용하여 데이터 규칙을 시행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

PHP 튜토리얼
1596
276
MySQL에서 모든 데이터베이스를 표시하는 방법 MySQL에서 모든 데이터베이스를 표시하는 방법 Aug 08, 2025 am 09:50 AM

MySQL에 모든 데이터베이스를 표시하려면 ShowDatabases 명령을 사용해야합니다. 1. MySQL 서버에 로그인 한 후 ShowDatabase를 실행할 수 있습니다. 현재 사용자가 액세스 할 권한이있는 모든 데이터베이스를 나열하도록 명령. 2. Information_Schema, MySQL, Performance_Schema 및 SYS와 같은 시스템 데이터베이스는 기본적으로 존재하지만 권한이 부족한 사용자는이를 볼 수 없을 수 있습니다. 3. SelectSchema_namefrominformation_schema.schemata를 통해 데이터베이스를 쿼리하고 필터링 할 수도 있습니다. 예를 들어, 사용자가 만든 데이터베이스 만 표시하려면 시스템 데이터베이스를 제외합니다. 사용하십시오

MySQL의 기존 테이블에 기본 키를 추가하는 방법은 무엇입니까? MySQL의 기존 테이블에 기본 키를 추가하는 방법은 무엇입니까? Aug 12, 2025 am 04:11 AM

기존 테이블에 기본 키를 추가하려면 AddPrimarykey 절을 사용하여 Altertable 문을 사용하십시오. 1. 대상 열에 널 값이없고 복제가 없으며 NOTNULL로 정의되어 있는지 확인하십시오. 2. 단일 열차 기본 키 구문은 Altertable 테이블 이름 AddPrimaryKey (열 이름)입니다. 3. 멀티 컬럼 조합 기본 키 구문은 Altertable 테이블 이름 AddPrimaryKey (열 1, 열 2)입니다. 4. 열에서 NULL을 허용하는 경우 먼저 NOTNULL을 설정하도록 수정을 실행해야합니다. 5. 각 테이블에는 하나의 기본 키만이있을 수 있으며 추가하기 전에 기존 기본 키를 삭제해야합니다. 6. 직접 늘려야하는 경우 modify를 사용하여 auto_increment를 설정할 수 있습니다. 작동하기 전에 데이터를 확인하십시오

일반적인 MySQL 연결 오류 문제를 해결하는 방법은 무엇입니까? 일반적인 MySQL 연결 오류 문제를 해결하는 방법은 무엇입니까? Aug 08, 2025 am 06:44 AM

MySQL 서비스가 실행 중인지 확인하고 sudosystemctlstatusmysql을 사용하여 확인하고 시작하십시오. 2. 원격 연결을 허용하고 서비스를 다시 시작하기 위해 BAND-ADDRESS가 0.0.0.0으로 설정되어 있는지 확인하십시오. 3. 3306 포트가 열려 있는지 확인하고 포트를 허용하도록 방화벽 규칙을 확인하고 구성하십시오. 4. "AccessDenied"오류의 경우 사용자 이름, 비밀번호 및 호스트 이름을 확인한 다음 MySQL에 로그인하여 MySQL.user 테이블을 쿼리하여 권한을 확인해야합니다. 필요한 경우 사용자를 생성하거나 업데이트하여 'Your_user'@'%'사용과 같은 승인; 5. Caching_sha2_password로 인해 인증이 손실 된 경우

MySQL에서 데이터베이스를 백업하는 방법 MySQL에서 데이터베이스를 백업하는 방법 Aug 11, 2025 am 10:40 AM

mysqldump를 사용하는 것이 MySQL 데이터베이스를 백업하는 가장 일반적이고 효과적인 방법입니다. 테이블 구조 및 데이터가 포함 된 SQL 스크립트를 생성 할 수 있습니다. 1. 기본 구문은 다음과 같습니다. mysqldump-u [user name] -p [database name]> backup_file.sql입니다. 실행 후 암호를 입력하여 백업 파일을 생성하십시오. 2.-databases 옵션으로 여러 데이터베이스를 백업 옵션 : mysqldump-uroot-p-- databasesdb1db2> multip_dbs_backup.sql. 3. all-databases : mysqldump-uroot-p를 사용하여 모든 데이터베이스를 백업합니다

MySQL 지원 PHP 응용 프로그램에 대한 데이터베이스 인덱싱 전략 (예 : B-Tree, Full-Text)을 설명하십시오. MySQL 지원 PHP 응용 프로그램에 대한 데이터베이스 인덱싱 전략 (예 : B-Tree, Full-Text)을 설명하십시오. Aug 13, 2025 pm 02:57 PM

b-treeindexesarebestformostphpapplications, asysupportequalityandrangequeries, 분류, andareidealforcolumnsusedinwhere, ororderbyclauses;

MySQL의 연합과 연합의 차이점은 무엇입니까? MySQL의 연합과 연합의 차이점은 무엇입니까? Aug 14, 2025 pm 05:25 PM

UnionleMovesDuplicates는 Duplicates; 1.unionperformsDeduplicationBysorting 및 ComcomparingRows, ReturnOnlyUniqueresults, whathitSlowerOnlargedAtasets;

MySQL에서 Group_Concat 분리기를 변경하는 방법 MySQL에서 Group_Concat 분리기를 변경하는 방법 Aug 22, 2025 am 10:58 AM

Group_Concat () 함수에서 분리기 키워드를 사용하여 분리기를 사용자 정의 할 수 있습니다. 1. 분리기를 사용하여 구분 기호와 같은 사용자 정의 분리기를 지정하십시오. '분리기는 세미콜론 및 플러스 공간으로 변경할 수 있습니다. 2. 일반적인 예제에는 파이프 문자 '|', space '', 라인 브레이크 문자 '\ n'또는 사용자 정의 문자열 '->'가 포함됩니다. 3. 분리기는 문자열 리터럴 또는 표현식이어야하며 결과 길이는 Group_Concat_Max_Len 변수에 의해 제한되며 SetSessionGroup_CONCAT_MAX_LEN = 100000으로 조정할 수 있습니다. 4. 분리기는 선택 사항입니다

MySQL에서 IN 연산자를 사용하는 방법은 무엇입니까? MySQL에서 IN 연산자를 사용하는 방법은 무엇입니까? Aug 12, 2025 pm 03:46 PM

theinoperatorinmysqlchecksifavaluematchesanyinaspecifiedlist, simplifying -multipleorconditions; itworkswithliterals, 문자열, 날짜 및 서브 쿼리, 개선 된 쿼리 리드 가능성, performswellonindexedcolumns, (cautionfornulls와 함께), 및 canbecomedwith

See all articles