您的位置:首页 > 技术中心 > 数据库 >

mysql中restrict是什么意思

时间:2023-04-13 18:38

在mysql中,restrict是约束的意思,是指对表中数据的一种限制,能够帮助数据库管理员更好地管理数据库,并且能够确保数据库中数据的正确性、有效性和完整性。MySQL支持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_increamentalter table emp drop primary key;

4、给一张表添加外键约束

使用DDL语句添加外键约束。可以给一张表设置多个外键。

ALTER  TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN  KEY(列名) REFERENCES 参照的表名(参照的列名);alter table emp add constraint emp_fkforeign key(dept_id) referencesdepartments(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视频教程】

以上就是mysql中restrict是什么意思的详细内容,更多请关注Gxl网其它相关文章!

热门排行

今日推荐

热门手游