您的位置:首页 > 娱乐 > 明星 > seo优化费用_重庆seo入门教程_定制网站+域名+企业邮箱_互联网营销软件

seo优化费用_重庆seo入门教程_定制网站+域名+企业邮箱_互联网营销软件

2024/12/22 0:20:30 来源:https://blog.csdn.net/longnice666/article/details/144036113  浏览:    关键词:seo优化费用_重庆seo入门教程_定制网站+域名+企业邮箱_互联网营销软件
seo优化费用_重庆seo入门教程_定制网站+域名+企业邮箱_互联网营销软件

前言:数据库约束是关系型数据库的一个重要功能,主要作用就是保证数据库数据的完整性,也可以理解为数据的正确性(数据本身是否正确,关联关系是否正确)

约束一般是指定在列上。

1.约束类型

1.1 NOT NULL  ----指某一个列不能存储NULL值

定义id规定不能为空,所以查看表结构时NULL为NO

插入NULL数据则报错!

1.2 UNIQUE ----保证某列的每行必须有唯一的值

1.3 DEFAULT ----规定没有给列赋值时的默认值

 

 注意:①当某列设置值了默认的约束的时候,如果不给这个列指定值才会用默认值!

            ②用户指定的优先级高于默认值约束!

1.4 PRIMARY KEY (主键)----not null和unique的结合(非空且唯一),确保列有唯一表示,有助于更容易快速地找到表中的一个特定的值

由此可见not null和unique结合就是primary key,可以直接定义为primary key

一般与主键搭配使用还有自增(auto increment)

注意:主键约束帮我们校验了非空且唯一,这两个校验在写入数据时对效率有一点影响,强烈建议每一张表都定义一个主键!

自增:让数据库帮我们去维护主键的增长,不用我们去借宿那,在插入时会先找到最大值,在最大值上+1,要是期间写了一条错误语句,这时候主键已经自增,不会退回,可能会出现不连续主键,但不影响!自增情况下,写入null值,数据库会自动处理null(自增成有效数据!)

注意:一个表中不允许有两个主键,但是一个主键可以有两个列(复合主键!)

在唯一校验时,只有复合主键中所有的列的值都相同,才会判定为相同数据!

1.5 FOREIGN KEY(外键) ----保证一个表中的数据匹配另一个表中的值的参照完整性

语法:foreign key (列名) references 主表(列);

表中某一列的值,必须是另外一张表中的主键列,也就是这个值必须在另外一张表存在,且满足主键或唯一约束! 

示例:创捷学生表和班级表

写入正确数据是可以成功插入的,要是插入一个不存在的班级的学生会报错!

删除主表中的数据时,子表中不能有对该条记录的依赖,就意味着先要删除自己表中的记录,才可以删除主表的记录!

1.6 CHECK ----保证列中的值符合指定条件

MYSQL8.0 是有效的,MYSQL5.7 无效,所以这个语句不经常使用!

2.表的设计

从需求中获得类,类对应到数据库中的实体,实体在数据库中就表现为一张一张的表,类中的属性就是对应表中的列(字段),要确定类与类之间的关系,使用SQL去创建具体的表!

设计表会遵循三大范式!(了解概念)

2.1第一范式 (1NF)

关系型数据库的一个最基本的要求,表里的字段不可在拆分!

2.2第二范式 (2NF)

满足1NF的基础上,不存在非关键字段(非主键字段)对任意候选键(主键,外键,没有主键的唯一键)的不分函数依赖(存在于符合主键的情况下)

2.3第三范式 (3NF)

满足2NF的基础上,不存在非关键字段对任一候选键的函数依赖

第三范式可以解决数据冗余,更新异常,插入异常,删除异常的问题!!!

数据库知识不定期更新,谢谢大家的关注与点赞!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com