码迷,mamicode.com
首页 > 其他好文 > 详细

字段属性(一)

时间:2015-10-18 11:18:17      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

mysql中有的属性:NOLL/NOT NULL,default,comment,primary key,unique key,auto_increment

 

查询字段为空的字段:
select ×    from  stuent where sex is null;

 

default :默认值:

 

comment : 备注

 

primary key  主键:主要的键,是索引的意思,用于唯一标识出一条记录;(唯一性

 多个主键的字段叫复合主键;(代表两个字段组合成为一个主键);一个表只能有一个主键

 

删除主键:alter table stuent drop primary key;

增加主键:alter table stuent add primary key (...);s

 

主键分为逻辑主键和业务主键:
逻辑主键一般和业务没有关系,一般是ID比较常用

业务主键:主键本身就是一个数据字段,用来描述数据;

 

 

auto_increment : 必须要使用整数类型,必须是一个索引,一张表只能有一个自增长;

 

修改自增长:set auto_increment_increment = 值;

 

唯一键:保证字段唯一性,一张表允许多个唯一键  unique key ;

 

 

索引名字:可以直接使用字符串,或者给字符串增加反引号

 

 

什么是外键:

 

外面的键:在一张表中维护了一个字段,该字段指向另外一张表的主键,对应的字段就叫做外键。

 

 

关系型数据库:包含三部分:数据结构,数据操作指令,完整性约束;

 

{construct 外键名 } foreign key (字段名字)  reference  表名(z主键);

 

原因:外键要建立成功,必须保证外键字段本身是一个索引(键)

 

增加外键

外键可以在创建表的时候和创建表之后增加。

 

新增表增加外键:在所有的字段之后,使用

[constraint 外键名]  foreign key(字段名字)  references 表名(字段名);

技术分享

 

创建表之后增加外键

alter table 表名 add [constraint 外键名] foreign key(字段名) references 表名(主键);

技术分享

 

增加外键名

技术分享

 

查看外键

查看表结构

技术分享

 

原因:外键要建立成功,必须保证外键字段本身是一个索引(键)

 

通过查看表创建语句看到

技术分享

 

修改外键

外键不能修改,只能先删除,后新增

 

删除外键

外键具有特殊语法:系统单独为外键增加了操作语法

alter table 表名 drop foreign key 外键名;

技术分享

 

外键约束

子表:一个外键所在的表叫做子表(cz_student)

父表:被外键引用的表叫做父表(cz_class)

 

  1. 如果一个子表中插入数据的时候,外键数据在父表中并不存在,那么受外键约束的影响,插入失败。

技术分享

 

正确数据对比

技术分享

 

  1. 如果子表存在数据对父表的主键字段进行引用,那么父表对应的主键字段不能被修改。

技术分享

 

正确效果对比

技术分享

 

约束模式

外键在进行数据约束的是可以指定约束模式的,约束模式有三种

 

严格模式:默认的模式,district,父表不允许删除已经被引用的数据

级联模式:cascade,一起操作(父表改变子表也跟这改变)

置空模式:set null,如果父表将数据删除,那么子表就将外键值置空

 

约束操作:update和delete(对父表的约束),子表约束(不能新增一个父表中不存在的数据)

 

常见的约束模式:更新的时候级联操作;删除的时候置空

模式指定语法:

constraint 外键名 foreign key(字段名) references 表名(主键) on update 约束模式(cascade) on delete 约束模式(set null)

技术分享

 

更新的效果

技术分享

 

删除的效果

技术分享

 

 

外键操作注意事项

  1. 外键只有innodb存储引擎支持
  2. 外键字段的数据类型必须与被引用的表的主键字段数据类型完全一致
  3. 如果外键字段有not null属性:不允许为空,那么在指定外键约束模式的时候,就不能使用置空模式。

 

外键能够很好的约束数据的完整性,保证数据的有效性。但是,外键的存在会导致数据的维护变的相当复杂。

因此,正式因为外键对于数据的操作变的不确定性,所以外键的使用并不是很广。

字段属性(一)

标签:

原文地址:http://www.cnblogs.com/suriski/p/4889034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!