您的位置:首页 > 教育 > 锐评 > 深圳办公室装修多少钱一个平方_品牌网络图_seo百度贴吧_谷歌竞价推广教程

深圳办公室装修多少钱一个平方_品牌网络图_seo百度贴吧_谷歌竞价推广教程

2025/8/30 7:41:46 来源:https://blog.csdn.net/2301_79881188/article/details/143858961  浏览:    关键词:深圳办公室装修多少钱一个平方_品牌网络图_seo百度贴吧_谷歌竞价推广教程
深圳办公室装修多少钱一个平方_品牌网络图_seo百度贴吧_谷歌竞价推广教程
在MySQL中,约束(Constraints)是用于限制表中数据类型和数据完整性的规则, 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合 法性 ,从业务逻辑角度保证数据的正确性。比如有一个字段是 email ,要求是唯一的。

1.空属性

两个值: null (默认的)和 not null( 不为空 )
数据库默认字段基本都是字段为空,但是实际开发时,要尽可能保证字段不为空,因为数据为空没办法参与运算,not null( 不为空 )就适用于那些在任何情况下都必须有值的列。
案例:
创建一个班级表,包含班级名和班级所在的教室。 站在正常的业务逻辑中:
  • 如果班级没有名字,就不知道在哪个班级
  • 如果教室名字可以为空,就不知道在哪上课
所以我们在设计数据库表的时候,一定要在表中进行限制,班级为空或教室名为空的数据就不能插入到表中。这就是“ 约束
第三列Null表示该列是否允许为空,建表时设置not null的字段该项为NO,而other字段没有指定,默认为YES。
当我们插入的数据 class_name 为 null 或 class_room 为 null 时,就会报错。

2.默认值

默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,插入数据时,如果某些列没有指定数据,那么就会启用默认值。
例如,我们创建表t1, name字段设置默认值0,gender字段设置默认值 '男'。
当我们插入的数据不指明值时,就会使用默认值。

3.列描述

列描述: comment ,没有实际含义,专门用来描述字段,会根据表创建语句保存,用来给程序员或 DBA 来进行了解。
按照上例,我们在每一字段后加comment属性。
通过 desc 查看不到注释信息:
通过 show 可以看到:

4.zerofill

刚开始学习数据库时,很多人对 数字类型 后面的长度很迷茫。通过 show 看看 t3 表的建表语句:
可以看到 int(10), 这个代表什么意思呢?整型不是 4字节码?这个10又代表什么呢?
其实int后面 ()内的数字,用于指定数据的显示宽度, 如果没有zerofill这个属性,括号内的数字是毫无意义的。 如果数据的宽度小于设定的宽度(这里 设置的是 5 ),就会自动填充 0。如果数据的宽度超出设定的宽度(这里 设置的是 5),则正常输入数据,zerofill属性并不影响任何数据的真实存储范围。例如:

5.主键

主键: primary key 用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键,主键所在的列通常是整数类型。

创建表的时候直接在字段上指定主键

第四列Key中的PRI表示主键所在位置。

主键约束:主键对应的字段中不能重复,一旦重复,操作失败。

删除主键
alter table 表名 drop primary key;

当表创建好以后但是没有主键的时候,可以再次追加主键
alter table 表名 add primary key(字段列表);

复合主键
在创建表的时候,在所有字段之后,使用 primary key( 主键字段列表 ) 来创建主键,如果有多个字段
作为主键,可以使用复合主键。
当我们尝试插入数据时,发现复合主键只有当两列数据相同时才会触发主键约束。

6.自增长

auto_increment :当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值 +1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。
自增长的特点 :
  • 任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
  • 自增长字段必须是整数
  • 一张表最多只能有一个自增长

例如我们创建表t5,其中 id 列被设为了主键,Key的值为PRI,该列有值说明是索引,因此可以添加 auto_increment属性,在Extra中可以看到id具有该属性。

插入数据,我们可以看到未插入id列,但其值从1开始自动增长。

在插入后获取上次插入的 auto_increment 的值(批量插入获取的是第一个值)
select last_insert_id();
我们也可以在创建表的后面指定auto_increment的初始值,不设置的时候默认为1,例如:

7.唯一键

一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。
唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较。
例如,我们创建表t7,并将id设置unique属性。
当我们插入的id值重复时,就会报错,但可以插入null值。

8.外键

外键用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique 约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null

对上面的示意图进行设计:
先创建主键表
再创建从表
查看从表属性
我们可以发现,class_id在Key列的值为MUL,表示外键约束。
正常插入数据
插入一个班级号为 30 的学生,因为没有这个班级,所以插入不成功
另外的,外键其实也会反过来约束参照键
例如删除表myclass中的 id=20 的班级会失败,因为在表stu中还存在 class_id=20 的班级。

版权声明:

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

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