大数据全栈成长计划第一阶段-关于mysql的约束和分页

举报
andyleung 发表于 2021/01/04 15:04:54 2021/01/04
【摘要】 大数据全栈成长计划第一阶段-关于mysql的约束和分页一、mysql的约束 定义:为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制。约束是表级的强制规定,可以在创建表时规定约束(通过CREATE TABLE 语句),或者在表创建之后也可以(通过ALTER TABLE 语句)约束的类型约束类型 意义NOT NULL 非空约束,规定某个字段不能为空;非空约束用于确保...

大数据全栈成长计划第一阶段-关于mysql的约束和分页

一、mysql的约束 

定义:为了保证数据的一致性和完整性,SQL规范以约束的方式对表数据进行额外的条件限制。约束是表级的强制规定,可以在创建表时规定约束(通过CREATE TABLE 语句),或者在表创建之后也可以(通过ALTER TABLE 语句)

约束的类型

约束类型

意义

NOT NULL

非空约束,规定某个字段不能为空;非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。

Null类型特征:1、所有的类型的值都可以是null,包括intfloat等数据类型 2、空字符串””不等于null0也不等于null

UNIQUE

唯一约束,规定某个字段在整个表中是唯一的;同一个表可以有多个唯一约束,多个列组合的约束。在创建唯一约束的时候,如果不给唯一约束名称,就默认和列名相同。

MySQL会给唯一约束的列上默认创建一个唯一索引

PRIMARY KEY

主键(非空且唯一)主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值

如果是多列组合的主键约束,那么这些列都不允许为空值,并且组合的值不允许重复。

每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建。

MySQL的主键名总是PRIMARY,当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。

FOREIGN KEY

外键;外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。

从表的外键值必须在主表中能找到或者为空。当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表中依赖该记录的数据,然后才可以删除主表的数据。

还有一种就是级联删除子表数据。

注意:外键约束的参照列,在主表中引用的只能是主键或唯一键约束的列

同一个表可以有多个外键约束

CHECK

检查约束(mysql不支持这个,虽然可以用,但是没有效果)

DEFAULT

默认值

单列约束

 

每个约束只约束一列

 

多列约束

 

每个约束可约束多列数据

 

列级约束

只能作用在一个列上,跟在列的定义后面

 

表级约束

 

可以作用在多个列上,不与列一起,而是单独定义

 

 

 

 

二、MySQL中使用limit实现分页

背景

查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢?

分页原理

所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件

 

怎么分段,当前在第几段(每页有几条,当前在第几页)

10条记录:SELECT * FROM table LIMIT 0,10;

1120条记录:SELECT * FROM table LIMIT 10,10;

2130条记录:SELECT * FROM table LIMIT 20,10;

公式:(当前页数-1*每页条数,每页条数SELECT * FROM table LIMIT(PageNo-1)*PageSize,PageSize;

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。