筛选分页结果
语法:
-- 起始下标为 0
-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n
-- 从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;
建议:对未知表进行查询时,最好加一条LIMIT 1,避免因为表中数据过大,查询全表导致数据库卡死
案例:按id进行分页,每页3条记录,分别显示第1,2页。
通过这个案例我们发现即使最后一页的数据不足也不会对数据的查询有任何影响。
下面补充Update的内容,Update的作用是对查询的结果进行列值更新。
Update语法:
UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]
案例:将孙悟空的数学成绩修改为80分
案例:将曹县的数学变成60语文变成70
案例:将总成绩倒三的人math加30分
案例:将所有的同学的语文成绩更新为原来的2倍(不加wher筛选就是对表中全部数据做修改)
下面补充Delete的内容,Delete的作用是删除数据。
Delete语法:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
案例:删除孙悟空的考试成绩
下面讲讲怎么删除整张表,这个操作一定要慎重
对于删除后的,我们进行查看表结构会发现auto_incremnt的值并未刷新而是继续递增。
下面讲讲怎么截断表
语法:
TRUNCATE [TABLE] table_name
这个操作只能对整表操作,不能像Delete一样对部分数据操作
实际上MySQL不对数据操作,所以DELETE更快,但是TRUNCATE在删除数据的时候,并不是经过真正的事物,所以无法回滚。
会重置auto_increment项。
插入查询结果的语法:
INSERT INTO table_name [(column [, column ...])] SELECT ...
案例:删除表中的重复记录,重复的数据只能有一份
下面讲讲聚合函数
用法统一就是:select 函数(列) from 表名