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

深圳做网站网站建设仟首先金手指13

深圳做网站,网站建设仟首先金手指13,移动端网站建设公司,安徽招标投标信息网在MySQL数据库中,约束(Constraint)是用于限制表中数据的一种规则,目的是为了确保数据的完整性以及一致性。下面我们就从建表时的约束、建表后如何添加约束等几个方面,讲解MySQL中常用的几种约束。 创建时约束 分类 非空约束 非空&#xf…

在MySQL数据库中,约束(Constraint)是用于限制表中数据的一种规则,目的是为了确保数据的完整性以及一致性。下面我们就从建表时的约束、建表后如何添加约束等几个方面,讲解MySQL中常用的几种约束。

创建时约束

分类

非空约束

非空:关键字为[not null]。用来约束数据的该字段不能设置空值,也就是说,这一列的每个数据都应该有值。

非空约束的特点:

①插入数据时必须给该字段设置值

②修改数据时不能将字段修改为null

create table tbname{id int not null,-- other
};

唯一约束

唯一:关键字为[unique]。用来约束数据的该字段不因该有重复的值,也就是说,这一列的每个数据都是不一样的。

唯一约束的特点:

①插入数据时,如果设置值,那么不能与该列其它数据一样否则失败。如果不设置值,那么可以为null,如果该列有多个null值,不违反唯一约束(都没有值,怎么判断它们相等呢,是吧)

②修改数据时,如果将null修改为具体的值,那么这个值不能与该列其它数据一致

create table tbname{id int unique,-- other
};

主键约束

主键:关键字为[primary key]。是唯一标识 表中每一行的 那一列字段的约束。

主键的三个要求:

①每个数据表都应该有一个唯一的主键

②主键不应该被频繁的修改

③为了满足条件二,主键该与业务无关,避免业务的改变带动主键频繁修改。

主键的三个特点:

①唯一性:主键一旦设置,就自动加上了唯一约束

②非空性:主键一旦设置,就自动加上了非空约束

③单一性:即主键最多只能有一个,如果想要有多个字段都作为标识,那么可以使用联合主键的方式将多个字段联合为一个主键。

主键约束中常常与自增约束搭配使用:

自增约束的关键字为:[auto_increment],即每次插入一条新的数据,无需赋值,就可以根据内部的计数器的值设置主键的值。

create table tbname{id int primary key auto_increment,-- other
};

默认约束

默认:关键字为[default]。是用来约束该字段不设值时,默认给的一个值。如果不约束则是默认null。

默认约束的特点:

就是在插入数据时,如果不插入该字段,该字段的值会根据默认约束的默认值填充。

外键约束

外键:关键字为[foreign key]。外键用于建立表与表之间的关系,确保在一个表中的某列值必须在另一个表中出现。

外键的使用:

create table tbname{id int primary key auto_increment,userid int foreign key references usertb(id)
};

 拥有外键的表称之为子表(从表),外键关联的表称之为父表(主表)。

子表中拥有外键约束的字段,引用(references)父表中的主键或者唯一键。外键约束确保子表中的每个外键值都在父表中有对应的值。

外键约束的类型:

cascade:如果父表删除行,则所有引用该行的子表行也会被自动删除

set null:如果父表删除行,则所有引用该行的子表行会被设置为NULL

set default:如果父表删除行,则所有引用该行的子表行会被设置为默认值

no action:如果试图删除父表的行而子表中仍有引用,将会抛异常,阻止删除

restrict:与no action相似,但是在删除或更新时,立即检查外键约束,而不是在事务结束时检查

外键使用的注意事项:

①子表的外键约束列的数据类型必须与父表的引用列的数据类型相同

②外键约束会影响增删改,确保外籍值的有效性会导致性能下降

如果子表插入的外键值为空,可以建立,在该表中称为孤儿数据

先建父表,再建子表。

先插入父表数据,再插入子表数据

先删除子表数据,再删除父表数据

先删子表,在删父表

检查约束

检查:关键字为[check]。检查约束是用来确保列中的值符合特定的条件的一种规则。

检查约束的使用:

create table tbname{id int primary key auto_increment,salary decimal check(salary >= 0)
};

应用

create table mytb(id int not null, #非空约束name varchar(20) #不设置就是可以为空
);
insert into mytb(name) values("stark");#err-id is not null
insert into mytb(id,name) values(1,"stark");#sucess
#创建时约束
create table mytb(id int not null default 123,name varchar(20)
);
insert into mytb(name) values("stark");#sucess-id默认为123 -is not null
#创建时约束
create table mytb(id int unique,nama varchar(20)
);
insert into mytb(id) values(1);#sucess
insert into mytb(id) values(1);#err-上面一条语句已经插入了一个id值为1的记录了

创建后约束

非空约束

#创建后约束
alter table mytb
modify name varchar(20) not null;
#删除约束
alter table mytb
modify name varchar(20) null;

默认约束

#创建后约束
alter table mytb
modify name varchar(20) default "";
#删除约束
alter table mytb
modify name varchar(20) default null;

根据上面的例子,我们呢大概率也清楚了大概的方法,在使用时可以不断地尝试。

表级约束 - 联合主键(键、索引)

#创建时约束:
create table mytb(id int,name varchar(20)[constraint id_name] unique(id, name)
);#[constraint 是为键key or 索引index起别名]
#创建后约束:
alter table mytb
add [constraint id_name] unique(id,name);#删除:alter table mytbdrop key id_name;alter table mytbdrop index id_name;

http://www.dtcms.com/wzjs/602002.html

相关文章:

  • 设计开发上海网站设计开发公司8小8x人成免费观看
  • 云南交投集团公路建设有限公司网站怎么样自己做网站赚钱年入40万
  • 建设网站价钱个人版的wordpress怎么加关键词
  • 手机网站建设系统网站板块设计有哪些
  • 怎么进入网站后台图片广东品牌网站制作公司
  • 做空压机网站织梦网站栏目增加
  • 建外贸营销型网站大连旧房翻新装修哪家公司好
  • 浙江省住房和城乡建设厅干部学校网站网站建设属于什么开票类目
  • 湖南天人安装建设有限公司网站个人域名怎么做社交网站
  • 凡科建站的网址网站建设推广文案
  • 网站分辨率做96是否会更好培训加盟网站建设
  • 超级大气的一款工作室网站制作网络科技公司站点源码直接可用佛山企业网站建设咨询
  • 如何拉下对手网站外贸视频网站
  • 服装网站搭建计划书wordpress文章编辑器
  • 富阳科技网站有哪些投资理财网站开发
  • 视频网站砸钱做生态wordpress怎安装
  • 一个好的营销型网站模板怎么注册
  • 广东建科建设监理有限公司网站六安网站建设网络服务
  • 类似闲鱼网站怎么做抓取网站访客数据原理
  • 德语网站域名企业对企业的网站
  • 新材料 东莞网站建设移动应用开发专升本
  • 网站设计需要哪些外包程序员的出路
  • 招远网站设计百度推广入口
  • 网站建设布为网wordpress主页底端添加图
  • 广州云建站模板做网站被坑
  • 网站毕设代做东莞人才市场现场招聘信息
  • 小型网站建设价格百度安全中心
  • iis5.1建网站最容易做的网站类型
  • 建设一个网站的目标与期望偏门网站建设
  • 网站设置子目录深圳做手机网站