当前位置: 首页 > news >正文

建设协会网站的公司第三方商城网站开发

建设协会网站的公司,第三方商城网站开发,十大免费的免费软件下载官网,建立网站的作用一、概述 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 目的:保证数据库中数据的正确、有效性和完整性。 分类: 注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。 二…

一、概述

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。

目的:保证数据库中数据的正确、有效性和完整性。

分类:
在这里插入图片描述
注意:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。

二、约束演示

案例需求: 根据需求,完成表结构的创建。需求如下:
在这里插入图片描述

CREATE TABLE tb_user(id     int AUTO_INCREMENT PRIMARY KEY COMMENT 'ID唯一标识',name   varchar(10) NOT NULL UNIQUE COMMENT '姓名',age    int check (age > 0 && age <= 120) COMMENT '年龄',status char(1) default '1' COMMENT '状态',gender char(1) COMMENT '性别'
);

在为字段添加约束时,我们只需要在字段之后加上约束的关键字即可,需要关注其语法。我们执行上面的 SQL 把表结构创建完成,然后接下来,就可以通过一组数据进行测试,从而验证一下,约束是否可以生效。

insert into tb_user(name,age,status,gender) values ('Tom1',19,'1','男'),('Tom2',25,'0','男');
insert into tb_user(name,age,status,gender) values ('Tom3',19,'1','男');
insert into tb_user(name,age,status,gender) values (null,19,'1','男');
insert into tb_user(name,age,status,gender) values ('Tom3',19,'1','男');
insert into tb_user(name,age,status,gender) values ('Tom4',80,'1','男');
insert into tb_user(name,age,status,gender) values ('Tom5',-1,'1','男');
insert into tb_user(name,age,status,gender) values ('Tom5',121,'1','男');
insert into tb_user(name,age,gender) values ('Tom5',120,'男');

三、外键约束

1. 介绍

外键:用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。

2. 语法

2.1 添加外键

CREATE TABLE 表名(字段名 数据类型,...[CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名)
);

案例:
为 emp 表的 dept_id 字段添加外键约束,关联 dept 表的主键 id。

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);

添加了外键约束之后,我们再到 dept 表(父表)删除 id 为 1 的记录,然后看一下会发生什么现象。 此时将会报错,不能删除或更新父表记录,因为存在外键约束。

2.2 删除外键

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称; 

案例:
删除emp表的外键fk_emp_dept_id。

alter table emp drop foreign key fk_emp_dept_id;

3. 删除/更新行为

添加了外键之后,再删除父表数据时产生的约束行为,我们就称为删除/更新行为。具体的删除/更新行为有以下几种:
在这里插入图片描述
具体语法为:

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名 (主表字段名) ON UPDATE CASCADE ON DELETE CASCADE;

由于 NO ACTION 是默认行为,我们前面语法演示的时候,已经测试过了,就不再演示了,这里我们再演示其他的两种行为:CASCADE、SET NULL。

(1)CASCADE

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update set null on delete set null ;

1️⃣修改父表 id 为1的记录,将 id 修改为 6
我们发现,原来在子表中 dept_id 值为 1 的记录,现在也变为 6 了,这就是cascade 级联的效果。
在一般的业务系统中,不会修改一张表的主键值。

2️⃣删除父表 id 为 6 的记录
我们发现,父表的数据删除成功了,但是子表中关联的记录也被级联删除了。

(2)SET NULL

alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on update cascade on delete cascade ;

1️⃣我们发现父表的记录是可以正常的删除的,父表的数据删除之后,再打开子表 emp,我们发现子表 emp 的 dept_id 字段,原来 dept_id 为1的数据,现在都被置为 NULL 了。

http://www.yayakq.cn/news/989695/

相关文章:

  • 上海建筑建材业网站迁移怎么在百度上推广自己的产品
  • 可以做ppt的网站有哪些方面网站打开有声音是怎么做的
  • 网站建设怎么样做账哪里找做网站的
  • 江苏企业建站广东地区建网站的公司
  • 网站做sem优化怎么在建设部网站查注册造价师
  • 实时视频网站怎么做徐州建设工程招投标官方网站
  • 北京服饰电商网站建设淘宝客网站免费模板下载
  • 网站js代码网站怎么做后台
  • 网站如何做直播wordpress调用tag标签
  • 东莞常平火车站叫什么建设网站平台的用语
  • 做行业网站如何采集信息百度seo排名如何提升
  • 旅游网站后台html模板岳阳做网站多少钱
  • 松原手机网站开发公司首页定制
  • 关于网站开发的引言百度小程序注册流程
  • 企业网站建设应用研究论文百度首页关键词推广
  • 线切割加工东莞网站建设技术支持广告公司简介介绍
  • 西宁网站建设天锐科技wordpress切换主题后
  • 浙江金顶建设公司网站做网站心得体会
  • 徐州网站建设外包上海浦东人才市场招聘会
  • 个人网站建设报告济源建设网站
  • 哪里有网站建设官网wordpress稳定版
  • 网站搭建徐州百度网络搭建WordPress修改前端
  • 怎么做电影网站页面的重庆沛宣网站建设
  • 上海专业做网站服务商找企业老板的软件或平台
  • 建网站价格多少网站建设需要审批吗
  • 内部网站建设、wordpress 分类前缀
  • asp 网站卡死高校门户网站的建设方案
  • 优秀大校网站开封建设教育协会网站
  • 怎么做网站旅游宣传网店设计风格有哪些
  • 遵义服务好的网站建设公司wordpress用户角色插件