MySql数据库操作之数据约束
首先数据库的外键是数据库提供的一种完整性约束。在许多数据库的书上也会介绍到,然而对于外键这个完整性性约束究竟应该在数据库端实现,还是在项目业务端实现很多人有着不同的意见。
个人开发(小型应用)、数据库读写资源充足(数据库并发低),集中式数据库系统,则应该使用外键保障数据的完整性,减少开发端的负担,有利于数据库开发与程序开发的分离。
团队开发(大型应用)。数据库的读写成为瓶颈(数据库并发高),分布式数据库系统(分割式存储数据),(如阿里巴巴)则应该在项目业务端实现,团队合作开发模块化突出,通过在业务端设置外键可以减小项目开发时有外键带来的各种不便。同时外键的分布式的数据库存储,数据库中表的分割也使得在数据库端实现外键比较复杂,而在业务端通过代码实现则更灵活。
1、创建表时数据默认值的设置:(默认值可以为NULL)
create table 表名( 字段名 字段类型 default 默认值 , 字段名 字段类型 )
2、数据的非空限制:
create table 表名( 字段名 字段类型 not null, 字段名 字段类型 )
3、数据的唯一性的设置:(可以插入多个NULL,不是重复,是都没有值)
create table 表名( 字段名 字段类型 unique, 字段名 字段类型 )
4、主键:(非空+唯一)
create table 表名( 字段名 字段类型 primary key , 字段名 字段类型, 字段名 字段类型 )
5、自增长(必须是int类型,而且是主键)
create table 表名( 字段名 字段类型 primary key auto_increment, 字段名 字段类型, 字段名 字段类型 )
6、外键约束(减少冗余):(正常字段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) )
注:
添加数据时先添加主表;删除及修改数据时先删除、修改副表。