标签:
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)
正确数据对比
正确效果对比
外键在进行数据约束的是可以指定约束模式的,约束模式有三种
严格模式:默认的模式,district,父表不允许删除已经被引用的数据
级联模式:cascade,一起操作(父表改变子表也跟这改变)
置空模式:set null,如果父表将数据删除,那么子表就将外键值置空
约束操作:update和delete(对父表的约束),子表约束(不能新增一个父表中不存在的数据)
常见的约束模式:更新的时候级联操作;删除的时候置空
模式指定语法:
constraint 外键名 foreign key(字段名) references 表名(主键) on update 约束模式(cascade) on delete 约束模式(set null)
更新的效果
删除的效果
外键操作注意事项
外键能够很好的约束数据的完整性,保证数据的有效性。但是,外键的存在会导致数据的维护变的相当复杂。
因此,正式因为外键对于数据的操作变的不确定性,所以外键的使用并不是很广。
标签:
原文地址:http://www.cnblogs.com/suriski/p/4889034.html