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

什么网站可以做PS 写论文兼职世界500强企业平均寿命

什么网站可以做PS 写论文兼职,世界500强企业平均寿命,哪个网站可以做c语言的题,制作好MySQL基础3-约束 一. 约束概述1.1 概念1.2 目的1.3 分类 二. 约束演示三. 外键约束3.1 概念3.2 语法三. 删除/更新行为 一. 约束概述 1.1 概念 约束是作用于表中字段上的规则,用于限制存储在表中的数据 1.2 目的 保证数据库中数据的正确、有效性和完整…

MySQL基础3-约束

  • 一. 约束概述
    • 1.1 概念
    • 1.2 目的
    • 1.3 分类
  • 二. 约束演示
  • 三. 外键约束
    • 3.1 概念
    • 3.2 语法
    • 三. 删除/更新行为

一. 约束概述

1.1 概念

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

1.2 目的

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

1.3 分类

约束描述关键字
非空约束限制该字段的数据不能为nullNOT NULL
唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE
主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY
默认约束保存数据时,如果未指定该字段的值,则采用默认值DEFAULT
检查约束(8.0.16版本之后)保证字段值满足某一个条件CHECK
外键约束用来让两张表的数据之间建立连接,保证数据的一致性和完整性FOREIGN KEY

注:约束是作用于表中字段上的,可以在创建/修改表的时候添加约束

二. 约束演示

案例:

根据需求,完成表结构的创建

字段名字段含义字段类型约束条件约束关键字
idID唯一标识int主键,并且自动增长PRIMARY KEY(主键), AUTO_INCREMENT(自动增长)
name姓名varchar(10)不为空,并且唯一NOT NULL(非空), UNIQUE(唯一)
age年龄int大于0,并且小于等于120CHECK(检查)
status状态char(1)如果没有指定该值,默认为1DEFAULT(默认)
gender性别char(1)

演示

-- ------------------------------------------------- 约束演示 ----------------------------------------------------- 创建表students
create table students(id int primary key auto_increment comment 'ID',name varchar(10) not null unique comment '姓名',age int check(age > 0 and age <= 120) comment '年龄’,status char(1) default '1' comment '状态',gender char(1) comment '性别'
) comment '学生信息表';-- 添加信息
insert into students(name, age, status, gender) values('李雷', 16, '1', '男'), ('韩梅梅', 16, '0', '女');-- 添加第三条信息,将姓名设为null
insert into students(name, age, status, gender) values(null, 17, '1', '男');
# 提示"Column 'name' cannot be null", 姓名不能为空,因为该字段约束为not null-- 再次添加信息,将姓名设为李雷
insert into students(name, age, status, gender) values('李雷', 16, '1', '男');
# 提示"Duplicate entry '李雷' for key 'students.name'", 因为'name'字段约束还有unique,所以不允许出现重复-- 添加年龄大于120的数据
insert into students(name, age, status, gender) values('张三丰', 121, '1', '男');
# 提示"Check constraint 'student_chk_1' is violated.", 因为该字段有'check'约束-- 添加一条没有status的数据
insert into student(name, age, gender) values('张三丰', 30, '男');# 通过查看表的信息,虽然没有设置status的值,但表上给出了默认值'1',因为该字段设置的约束为defaul '1'

注:添加数据失败时,请求已经发出,所以id主键也是自动增长的

三. 外键约束

3.1 概念

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

3.2 语法

添加外键

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

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名);

删除外键

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

三. 删除/更新行为

行为说明
NO ACTION当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。(与RESTRICT一致)
RESTRICT当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。(与NO ACTION一致)
CASCADE当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表中的记录。
SET NULL当在父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(这就要求该外键允许取null值)。
SET DEFAULT父表有变更时,子表将外键列设置成一个默认的值(Innodb不支持)。

语法

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名(主表字段名) ON UPDATE [行为关键字] ON DELETE [行为关键字];

演示

-- no action(当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新, 与restrict一致)
-- 更新/删除演示(确保创建的外键已经删除)
alter table emp add constraint fk_emp_dept_id foreign key (dept_id) references dept(id) on no action on delete no action;
-- 测试
delete from where id = 1;
# 此时提示删除失败-- restrict(当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新, 与no action一致)
# 删除外键
alter table emp drop foreign key fk_emp_dept_id;
# 添加行为
alter table emp add constraint fk_emp_dept_id foreign key(dept_id) references dept(id) on update restrict on delete restrict;
# 测试
update dept set id = 6 where id = 1;
# 同上,修改失败-- cascade(当在父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表中的记录)
# 删除外键
alter table emp drop foreign key fk_emp_dept_id;
# 添加行为
alter table emp add constraint fk_emp_dept_id foreign key(dept_id) references dept(id) on update cascade on delete cascade;
# 测试1:修改dept表中的id
update dept set id = 6 where id = 1;
# 查看是否修改成功
select * from dept;	# 此时可以看到id为1的研发部此时id为6
# 查看emp表中的dept_id是否更新
select * from emp;	# 表中原本dept_id为1的也更新成6
update dept set id = 1 where id = 6;	#还原
# 测试2:删除dept表中id = 1的数据
delete from dept where id = 1;
select * from dept;	# 此时dept表中id为1的数据已经删除
select * from emp;	# 此时emp表中dept_id为1的数据也全部被删除# 因为emp表中只剩下一条数据,于是将其删掉,参照前面创建表的步骤再次创建emp表并添加数据,这里不做演示
# 将dept删掉的数据补上
insert into dept(id, name) values(1, '研发部');-- set null(当在父表中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null, 这就要求该外键允许取null值)
-- 添加行为
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:修改
update dept set id = 7 where id = 1;	# 此时可以看到emp表中dept_id为1的地方都更新为null
update dept set id = 1 where id = 7;	# 改回来
update emp set dept_id = case when dept_id is null
then 1 when dept_id = 5 then 5 end;	# emp表也改回来
# 测试2:删除
delete from dept where id = 1;	# 

注:图形化界面只需要右键想要添加外键或行为的表,关联到父表进行相关操作即可,在此不做演示

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

相关文章:

  • 三字型布局的网站做一个网页需要多少钱
  • 公司网站站群是什么经营网站备案
  • 企业建站系统cms做一个家乡网站有什么可以做
  • 建设银行网站修改预留手机号推广网站的软文
  • 长沙做黄叶和网站的公司有哪些全能优化型网站
  • html5 微网站制作杂志 wordpress主题
  • 做自媒体需要关注什么网站支付网站建设
  • 山东禹城市建设局网站重庆免费微网站
  • 网站换ip影响 百度网站建设空格怎么打
  • jsp 响应式网站模板下载网站建设开发方式包括
  • 海口建设网站建设烟台规划网站
  • 做多语言网站教程网站排名是什么意思
  • 做膜的网站有哪些网页布局结构
  • 金华网站建设wordpress 釆集插件
  • 忻州专业网站建设厦门市建设局电工报名网站
  • 甘肃省住房和城乡建设局网站首页网络推广与营销
  • 网站建设信息模板下载网络挣钱
  • 绵阳汽车网站制作江阴建设局网站
  • 建设电商网站2024北京又开始核酸了吗今天
  • 网站建设在哪个会计科目核算资兴做网站公司
  • 网站建站服务公司电话wordpress 维基
  • 网站建设市场定位网站建设模型软件
  • 网站开发项目规划书搜索引擎营销sem
  • 自做网站告白如何弄网络销售公司产品推广方案
  • 设计网站推荐百度贴吧沈阳好的互联网设计
  • 建手机端网站wwr下载建设网站
  • 网页设计素材网站集公司有网站域名后如何建网站
  • 网站建设教程答允苏州久远网络财经app制作公司
  • seo如何建立优化网站网站建设课题简介
  • VIP视频网站有得做吗广州网站建设制作公司