mysql에서 제한은 테이블의 데이터에 대한 제한을 의미하며 데이터베이스 관리자가 데이터베이스를 더 잘 관리하고 데이터베이스에 있는 데이터의 정확성, 유효성 및 완전성을 보장하는 데 도움이 될 수 있습니다. MySQL에는 기본 키 제약 조건, 외래 키 제약 조건, 고유 제약 조건, 검사 제약 조건, Null이 아닌 제약 조건, 기본값 제약 조건 등 6가지 유형의 제약 조건이 있습니다.
restrict(제약)은 테이블의 데이터에 대한 제한을 의미하며, 이는 데이터베이스 관리자가 데이터베이스를 더 잘 관리하고 데이터베이스에 있는 데이터의 정확성, 유효성 및 무결성을 보장하는 데 도움이 될 수 있습니다.
200, 300 등 유효하지 않은 값이 데이터 테이블에 연령 값으로 저장되면 이 값은 의미가 없습니다. 따라서 테이블의 데이터 범위를 제한하려면 제약 조건을 사용해야 합니다.
MySQL의 제약 조건은 데이터의 정확성과 합리성을 감지하는 데 사용됩니다. 일반적인 오류는 다음과 같습니다. 1. 동일한 중복 데이터가 존재합니다. 3. 데이터 손실 오류(빈 데이터); (테이블을 정확하게 연결할 수 없음) 등
MySQL의 제약 조건은 ID 번호 중복을 금지하고 배송 주소를 비워 두지 않는 등의 일부 문제를 해결하도록 설계되었습니다. 제약 조건을 위반하면 데이터 조작 동작이 억제됩니다.
MySQL에서는 주로 다음 6가지 제약 조건을 지원합니다.
1) 기본 키 제약 조건
기본 키 제약 조건은 가장 자주 사용되는 제약 조건입니다. 데이터 테이블을 디자인할 때 일반적으로 테이블에 기본 키를 설정해야 합니다.
기본 키는 테이블의 각 정보를 고유하게 식별하는 테이블의 특수 필드입니다. 예를 들어, 학생 정보 테이블의 학생 번호는 고유합니다.
2) 외래 키 제약 조건
외래 키 제약 조건은 데이터 일관성을 보장하기 위해 기본 키 제약 조건과 함께 사용되는 경우가 많습니다.
예를 들어 과일 가판대에는 사과, 복숭아, 자두, 수박 4가지 과일만 있는데, 과일을 사러 과일 가판대에 오면 사과, 복숭아, 자두, 수박만 고를 수 있고, 그리고 다른 과일은 살 수 없습니다.
3) Unique 제약 조건
Unique 제약 조건과 기본 키 제약 조건에는 공통점이 있습니다. 즉 둘 다 열의 고유성을 보장한다는 것입니다. 기본 키 제약 조건과 달리 테이블에는 여러 개의 고유 제약 조건이 있을 수 있으며, 고유 제약 조건이 설정된 열에는 Null 값이 하나만 있을 수 있지만 Null 값을 가질 수 있습니다.
예를 들어 사용자 정보 테이블에서 테이블에 사용자 이름이 중복되는 것을 방지하려면 사용자 이름 열을 고유 제약 조건으로 설정할 수 있습니다.
4) 검사 제약
검사 제약은 데이터 테이블의 필드 값이 유효한지 확인하는 수단입니다.
학생 정보 테이블의 연령 필드에는 음수가 포함되지 않으며 숫자 제한이 있습니다. 대학생이라면 나이는 일반적으로 18세에서 30세 사이여야 합니다. 유효하지 않은 데이터의 입력을 줄이기 위해서는 해당 필드의 검사 제약 조건을 설정할 때 실제 상황에 따라 적절한 설정을 할 필요가 있습니다.
5) Null이 아닌 제약 조건
Non-null 제약 조건은 테이블의 필드를 비워둘 수 없도록 제한하는 데 사용됩니다. 학생정보 양식에 학생의 이름이 기재되지 않은 경우, 이 기록은 의미가 없습니다.
6) 기본값 제약 조건
기본 값 제약 조건은 데이터 테이블의 필드에 값을 입력하지 않으면 이미 설정된 값이 자동으로 추가되도록 제약하는 데 사용됩니다.
예를 들어 학생 정보 등록 시 학생의 성별을 입력하지 않으면 기본적으로 성별이 설정되거나 '알 수 없음'이 입력됩니다.
기본값 제약 조건은 일반적으로 null이 아닌 제약 조건이 설정된 열에 사용되며, 이를 통해 데이터 테이블에 데이터를 입력할 때 오류를 방지할 수 있습니다.
위 6가지 제약 조건 중 데이터 테이블에는 기본 키 제약 조건이 하나만 있을 수 있으며, 다른 제약 조건은 여러 개가 있을 수 있습니다.
1. 테이블에 기본 키 제약 조건 추가
기본 키를 추가하는 방법에는 두 가지가 있습니다.
단일 기본 키: 하나의 열을 기본 키 열로 사용하면 이 열의 값이 반복되면 고유 제약 조건을 위반합니다.
공동 기본 키: 여러 열을 기본 키 열로 사용합니다. 여러 열의 값이 동일하면 고유 제약 조건을 위반합니다. 이는 여러 열의 조합을 사용하여 기본 키를 결정하는 것을 의미합니다. 조합이 반복되면 00,01,10,11,12,22의 조합과 같이 유효하지 않습니다.
DDL 문을 사용하여 기본 키 제약 조건을 추가합니다. 예:
ALTER TABLE 表名 ADD PRIMARY KEY(列名); alter table emp add primary key(employee_id);//选取employee_id作为主键 alter table emp add primary key(employee_id,shenfen_id);//联合主键
2. 테이블에 자동 증가 기본 키 제약 조건
auto_increment을 추가합니다. 데이터베이스 관리 시스템이 자동으로 테이블을 유지 관리할 때 자연수 증가 방식에 따라 기본 키가 자동으로 추가됩니다. 마찬가지로 자체 증가 기본 키도 특정 열을 기본 키로 사용합니다. 테이블에 기본 키가 추가된 필드에 데이터가 추가되면 기본 키가 자동으로 1씩 증가합니다.
자체 증가 기본 키와 일반 기본 키 제약 조건은 서로 변환될 수 있습니다.
1. 테이블에서 하나의 열만 자동으로 커질 수 있습니다. 2. 자동으로 성장하는 컬럼의 유형은 정수 유형이어야 합니다. 3. 자동 증가는 기본 키 제약 조건 및 고유 제약 조건이 있는 열에만 추가할 수 있습니다. 4. 기본 키 제약 조건 또는 고유 제약 조건을 삭제합니다. 열에 자동 증가 기능이 있으면 먼저 자동 증가를 제거한 다음 제약 조건을 삭제해야 합니다.
注意点:如果之前给某个字段添加了自增长属性,则删除这个字段时要先删除自增长属性。
alter table 表名 modify 主键 类型 auto_increment; alter table emp modify employee_id int auto_increment;
或者在Navicat中添加主键:
3、删除一张表中的主键约束
使用DDL语句删除主键。
ALTER TABLE 表名 DROP PRIMARY KEY; alter table emp drop primary key;
注意:删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后在删除主键。
alter table emp modify employee_id int;//去掉自增长,与添加自增长代码地区别就是没有auto_increament alter table emp drop primary key;
4、给一张表添加外键约束
使用DDL语句添加外键约束。可以给一张表设置多个外键。
ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY(列名) REFERENCES 参照的表名(参照的列名); alter table emp add constraint emp_fk foreign key(dept_id) references departments(department_id);
或在在Navicat中添加外键。外键名称常使用:表名_fk,表名_fk1表示。
5、删除一张表的外键约束
外键约束可以通过使用DDL语句来删除。或者在Navicat中主动删除外键。
ALTER TABLE 表名 DROP FOREIGN KEY 约束名; alter table emp drop foreign key emp_fk;
6、给表中某字段添加唯一性约束
使用DDL语句添加唯一性约束。或在在Navicat中添加唯一性约束。
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名); alter table emp add constraint emp_uk unique(name);
7、删除表中某字段的唯一性约束
使用DDL语句删除唯一性约束。删除之前需要弄清楚删除的约束名是对哪一个字段进行约束的。
ALTER TABLE 表名 DROP KEY 约束名; alter table emp drop key emp_uk;
8、给表中某个字段添加非空约束
使用DDL语句添加非空约束。或者Navicat。
ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL; alter table emp modify salary float(8,2) not NULL;
9、删除表中某个字段的非空约束
使用DDL语句删除非空约束。
ALTER TABLE 表名 MODIFY 列名 类型 NULL; alter table emp modify salary float(8,2) NULL;
上面介绍了当一张表已经存在之后如何添加约束。下面介绍在一开始新建表的时候如何添加约束。
1、查询表中加了哪些约束?
SHOW KEYS FROM 表名;
2、创建表时添加约束
创建 depts 表包含 department_id 该列为主键且自动增长,department_name 列不允许重复,location_id 列不允含有空值。
create table depts ( department_id int primary key auto_increment, department_name varchar(30) unique, location_id int not null; );
위 내용은 mysql에서 제한의 의미는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!