您的位置:首页 > 房产 > 家装 > 泰安网站建设公司带_建站公司没前端_如何制作一个网页网站_今日十大热点新闻头条

泰安网站建设公司带_建站公司没前端_如何制作一个网页网站_今日十大热点新闻头条

2024/10/6 2:24:01 来源:https://blog.csdn.net/Zhenyu_Coder/article/details/142719550  浏览:    关键词:泰安网站建设公司带_建站公司没前端_如何制作一个网页网站_今日十大热点新闻头条
泰安网站建设公司带_建站公司没前端_如何制作一个网页网站_今日十大热点新闻头条

前言

 数据库是用户数据的最后一道保护屏障,所以数据库存在大量的约束,保证数据库中数据的完整性和可预期性。数据库中,数据类型本身就是一种约束,除此在外还有: null/not null,default, comment,zerofill,primary key,auto_increment,unique key。

一、空属性 和default

 空属性包含两个值:null(默认的),not null(不为空)。在mysql中,默认的字段大多为null。并且在数据库中,null和空串不同,null表示什么东西都没有;而空串有东西,只不过内容为空!并且null不参与计算!我们可以直接在列类型后指明空属性。如果指明not null,此时插入数据时此列不能为空!
在这里插入图片描述

 default默认值可以在创建时指定,不知道为null。一旦指定后,用户在不显示插入数据时就是要默认值。

在这里插入图片描述

  • 在表中列字段设置为为no null,如果用户显示指定了数据,就插入用户自身输入数据;否则使用默认值。但如果默认值没有,为null,此时mysql会报错拦截该行为!

二、comment(列描述)

 comment本身是没有任何意义,任何约束的。comment类似于注释,用来给程序员看的。所以也可以认为是一种软约束,让程序员看到后约束自身尽量插入符合要求的数据!
在这里插入图片描述

三、zerofill

 我们在创建表时,类型int在表中的默认格式为int(10)。而数字10本身是没有任何意义的,但添加zerofill就不一样了。添加zerofill字段后,数字10表示输出结果的最小宽度。如果插入数据宽度比指定数字大,没有任何影响;但如果小于,剩余宽度会用0来填充!
在这里插入图片描述

四、primary key(主键)

 主键用来约束字段中的数据唯一性(不重复,并且不能为空)。在一张表中只能存在一个主键,并且主键列一般为整数类型!

在这里插入图片描述
 当表创建好后没有主键,可以采用如下方式再次追加主键

alter table 表名 add primary key(字段列表)

 当然也可以删除主键!

alter table 表名 drop primary key;

 除此之外,我们还可以将多个字段作为主键,设置复合主键!但复合主键中,只有当复合主键的所有字段的数据都冲突时,mysql才会拦截!

mysql> create table tt14(
-> id int unsigned,
-> course char(10) comment '课程代码',
-> score tinyint unsigned default 60 comment '成绩',
-> primary key(id, course) -- id和course为复合主键
-> );

五、auto_increment(自增长)

 auto_increment修饰的对应字段不给值时,系统会从该字段当前字段中已有值的最大值进行+1,将结果作为当前该字段对应数据进行插入!auto_increment通常配合主键使用,作为逻辑主键!

  • 一张表最多只能有一个自增长,并且自增长字段必须是整数。
  • 任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)

在这里插入图片描述

六、 唯一键(unique key)

 在一张表中,往往存在很多值需要保证为唯一性,主键虽然可以保证唯一性,但一张表中只能存在一个主键。所以mysql增加了唯一键,也用来约束字段保证数据的唯一性。

  • 一张表中,主键只能存在一个;而唯一键可以存在多个。
  • 主键修饰的字段不能为null,而唯一键可以。
  • 在业务中,我们通常将一些和业务无关的字段作为主键,用来标识唯一性;而唯一键更多用来保证业务数据的唯一性!

七、外键

版权声明:

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

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