分页limit和排序order by
排序: 升序ASC 降序:DESC
排序
-- =======================排序===============================
-- 查询的结果根据,成绩排序
-- 排序:升序 ASC 降序 DESC
-- 查询的结果根据,成绩升序,排序
SELECT s.name,s.`emal`,r.`food`,s.`result`
FROM student AS s
LEFT JOIN result AS r
ON s.`emal`=r.`emal`
INNER JOIN `grade`AS g
ON r.food = g.food
ORDER BY s.`result` ASC
思考: 为什么分页?
缓解数据库压力
给用户体验更好
分页:
语法: LIMIT (起始值,pageSize)
-- ============分页 ===========
# 每页只显示两条数据
-- 语法: limit 起始值、页面的大小
-- 网页应用 : 当前页,总数,页面的大小
-- LIMIT 0,2 一到二条数据
-- LIMIT 1,2 1-2
SELECT s.name,s.`emal`,r.`food`,s.`result`
FROM student AS s
LEFT JOIN result AS r
ON s.`emal`=r.`emal`
INNER JOIN `grade`AS g
ON r.food = g.food
ORDER BY s.`result` DESC
LIMIT 0,2
-- 规律
-- 第一页 LIMIT 0,2 (1-1)*5 0代表从0开始的数据,2代表显示两个数据
-- 第二页 LIMIT 2,2 (2-1)*5 2代表从第二个数据开始,显示两个数据
-- 第三页 LIMIT 4,2 (3-1)*5
-- 第N页 LIMTY N,2 (n-1)* pageSize,pageSize
-- [pageSize:页面大小]
-- 【(n-1)*pageSize:起始值】
-- 【n:当前页面】
-- 【数据总数/页面大小 = 总页数】
子查询and嵌套查询
-- 思考:
-- 查询 课程成绩大于60的学生(学生学号,姓名,分数,课程,)用升序排序,给前两名分页
SELECT s.`id`,s.`name`,s.`result`,`affect`
FROM `student`AS s
LEFT JOIN `test`AS t
ON s.name =t.name
WHERE s.`result`>60
ORDER BY s.`result` DESC
LIMIT 0,2
子查询
方式一
-- 查询所有 数学的考试结果(学号,科目,成绩,姓名)降序
SELECT s.`id`,s.`result`,t.`affect`,s.`name`
FROM `student`AS s
INNER JOIN `test`AS t
ON s.name = t.name
WHERE t.`affect`='数学'
ORDER BY s.`result` DESC
MySQL常用函数
-- ===================常用函数=======================================
-- 数学运算
SELECT ABS(-8) -- 绝对值
SELECT CEILING(9.4) -- 向上取整数
SELECT FLOOR(9.4) -- 向下取整数
SELECT RAND() -- 返回一个0~1之间的随机数
SELECT SIGN(10) -- 判断一个数的符号 负数返回 -1 正数返回1
-- 字符串函数
SELECT CHAR_LENGTH('东临碣石,以观沧海') -- 字符串长度
SELECT CONCAT('我','爱','中国') -- 拼接字符串
SELECT INSERT('我饿了',1,1,'你') -- 查询 ,从某个位置开始替换某个长度
SELECT LOWER('KUANG') -- 小写字母
SELECT UPPER('kuang') -- 大写字母
SELECT INSTR('日月之行,若出其中','月') -- 返回第一次出现的子串的索引
SELECT SUBSTR('星汉灿烂,若出其里',6,4) -- 返回指定 的字符串
SELECT REVERSE('落霞与孤鹜齐飞,秋水共长天一色') -- 翻转
-- 查询姓张的同学,改成 夏
SELECT REPLACE(NAME,'张','夏') FROM student
WHERE NAME LIKE '张%'
-- 时间和日期 函数
SELECT CURRENT_DATE() -- 获取当前日期
SELECT CURDATE()-- 获取当前日期
SELECT NOW()-- 获取当前时间
SELECT LOCALTIME() -- 本地时间
SELECT SYSDATE() -- 系统时间
-- 年 月 日 时 分 秒
SELECT YEAR(NOW())
SELECT MONTH(NOW())
SELECT DAY(NOW())
SELECT HOUR(NOW())
SELECT MINUTE(NOW())
SELECT SECOND(NOW())
-- 系统
SELECT SYSTEM_USER()
SELECT USER() -- 查看用户名
SELECT VERSION() -- 查看版本号
\