MySql数据库操做之数据约束

  首先数据库的外键是数据库提供的一种完整性约束。在许多数据库的书上也会介绍到,然而对于外键这个完整性性约束究竟应该在数据库端实现,仍是在项目业务端实现不少人有着不一样的意见。数据库

  我的开发(小型应用)、数据库读写资源充足(数据库并发低),集中式数据库系统,则应该使用外键保障数据的完整性,减小开发端的负担,有利于数据库开发与程序开发的分离。并发

  团队开发(大型应用)。数据库的读写成为瓶颈(数据库并发高),分布式数据库系统(分割式存储数据),(如阿里巴巴)则应该在项目业务端实现,团队合做开发模块化突出,经过在业务端设置外键能够减少项目开发时有外键带来的各类不便。同时外键的分布式的数据库存储,数据库中表的分割也使得在数据库端实现外键比较复杂,而在业务端经过代码实现则更灵活。分布式

一、建立表时数据默认值的设置:(默认值能够为NULL)模块化

create table 表名( 字段名 字段类型 default 默认值 , 字段名 字段类型 ) 

二、数据的非空限制:spa

create table 表名( 字段名 字段类型 not null, 字段名 字段类型 )

三、数据的惟一性的设置:(能够插入多个NULL,不是重复,是都没有值)code

create table 表名( 字段名 字段类型 unique, 字段名 字段类型 )

四、主键:(非空+惟一)blog

create table 表名( 字段名 字段类型 primary key , 字段名 字段类型, 字段名 字段类型 ) 

五、自增加(必须是int类型,并且是主键)资源

create table 表名( 字段名 字段类型 primary key auto_increment, 字段名 字段类型, 字段名 字段类型 ) 

六、外键约束(减小冗余):(正常字段1与字段5名同样,如一个为部门表,一个为员工表)开发

create table 表名1( 字段名1 字段类型1 primary key , 字段名2 字段类型2 ) create table 表名2( 字段名3 字段类型3 primary key , 字段名4 字段类型4, 字段名5 字段类型5 constraint 外键名字(如 fk_表1_表2)foreign key (字段名5) references 表1(字段1) ) 

注:rem

添加数据时先添加主表;删除及修改数据时先删除、修改副表。

相关文章
相关标签/搜索