




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
常用五类约束:not null:非空约束,指定某列不为空unique: 唯一约束,指定某列和几列组合的数据不能重复primary key:主键约束,指定某列的数据不能重复、唯一foreign key:外键,指定该列记录属于主表中的一条记录,参照另一条数据check:检查,指定一个表达式,用于检验指定数据MySQL不支持check约束,但可以使用check约束,而没有任何效果;根据约束数据列限制,约束可分为:单列约束:每个约束只约束一列多列约束:每个约束约束多列数据MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息;1、 not null约束非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。Null类型特征:所有的类型的值都可以是null,包括int、float等数据类型空字符串“”是不等于null,0也不等于nullcreate table temp( id int not null, name varchar(255) not null default abc, sex char null)上面的table加上了非空约束,也可以用alter来修改或增加非空约束增加非空约束alter table tempmodify sex varchar(2) not null;取消非空约束alter table temp modify sex varchar(2) null;取消非空约束,增加默认值alter table temp modify sex varchar(2) default abc null;2、 unique唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。虽然唯一约束不允许出现重复的值,但是可以为多个null同一个表可以有多个唯一约束,多个列组合的约束。在创建唯一约束的时候,如果不给唯一约束名称,就默认和列名相同。唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。MySQL会给唯一约束的列上默认创建一个唯一索引;create table temp ( id int not null, name varchar(25), password varchar(16), -使用表级约束语法, constraint uk_name_pwd unique(name, password);表示用户名和密码组合不能重复添加唯一约束alter table temp add unique(name, password);alter table temp modify name varchar(25) unique;删除约束alter table temp drop index name;3、 primary key主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值;如果的多列组合的主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建。MySQL的主键名总是PRIMARY,当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。列模式:create table temp( /*主键约束*/ id int primary key, name varchar(25);create table temp2( id int not null, name varchar(25), pwd varchar(15), constraint pk_temp_id primary key(id);组合模式:create table temp2( id int not null, name varchar(25), pwd varchar(15), constraint pk_temp_id primary key(name, pwd);alter删除主键约束alter table temp drop primary key;alter添加主键alter table temp add primary key(name, pwd);alter修改列为主键alter table temp modify id int primary key;设置主键自增create table temp( id int auto_increment primary key, name varchar(20), pwd varchar(16);auto_increment自增模式,设置自增后在插入数据的时候就不需要给该列插入值了。4、 foreign key 约束外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。也就是说从表的外键值必须在主表中能找到或者为空。当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据,然后才可以删除主表的数据。还有一种就是级联删除子表数据。注意:外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列,假定引用的主表列不是唯一的记录,那么从表引用的数据就不确定记录的位置。同一个表可以有多个外键约束。创建外键约束:主表create table classes( id int auto_increment primary key, name varchar(20);从表create table student( id int auto_increment, name varchar(22), constraint pk_id primary key(id), classes_id int references classes(id);通常先建主表,然后再建从表,这样从表的参照引用的表才存在。表级别创建外键约束:create table student( id int auto_increment primary key, name varchar(25), classes_id int, foreign key(classes_id) references classes(id);上面的创建外键的方法没有指定约束名称,系统会默认给外键约束分配外键约束名称,命名为student_ibfk_n,其中student是表名,n是当前约束从1开始的整数。指定约束名称:create table student( id int auto_increment primary key, name varchar(25), classes_id int, /*指定约束名称*/ constraint fk_classes_id foreign key(classes_id) references classes(id);多列外键组合,必须用表级别约束语法:create table classes( id int, name varchar(20), number int, primary key(name, number);create table student( id int auto_increment primary key, name varchar(20), classes_name varchar(20), classes_number int, /*表级别联合外键*/ foreign key(classes_name, classes_number) references classes(name, number);删除外键约束:alter table student drop foreign key student_ibfk_1;alter table student drop foreign key fk_student_id;增加外键约束alter table student add foreign key(classes_name, classes_number) references classes(name, number);自引用、自关联(递归表、树状表)create table tree( id int auto_increment primary key, name varchar(50), parent_id int, foreign key(parent_id) references tree(id);级联删除:删除主表的数据时,关联的从表数据也删除,则需要在建立外键约束的后面增加on delete cascade或on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。create table student( id int auto_increment primary key, name varchar(20), classes_name varchar(20), classes_number int, /*表级别联合外键*/ foreign key(classes_name, classes_number) references classes(name, number) on delete cascade);5、 c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年火电运行基础知识及初级值班员考试要点详解
- 胃肠外科病人护理培训
- 甲状腺结节科普课件
- 一件好事 教学课件
- 医学教学课件模板
- 江苏南通2020-2024年中考满分作文74篇
- 临床护理教学课件
- 低碳节能教学课件
- 新解读《GB-T 23339-2018内燃机 曲轴 技术条件》
- 生鲜柜安全知识培训内容课件
- 叠片机说明书
- 结核病筛查结果报告单
- GB/T 18051-2000潜油电泵振动试验方法
- 广告投放“冷启动期”及“ocpm起量”的底层逻辑
- 小学音乐《村晚》优质课件设计
- 竞选团支书幽默大气简短六篇
- 知名投资机构和投资人联系方式汇总
- (完整word版)教育部发布《3-6岁儿童学习与发展指南》(全文)
- 混凝土监理旁站记录
- 县城市管理领域集中行使行政处罚权工作衔接规范(试行)
- 结肠息肉的护理查房精编ppt
评论
0/150
提交评论