-- 表达式无字段:查询时添加固定列
SELECT id,name,10 FROM exam_result;
-- 表达式单字段:英语成绩+10
SELECT id, name, english + 10 FROM exam_result;
-- 表达式多字段:计算总成绩
SELECT id, name, chinese + math + english FROM exam_result;
-- 1. 英语不及格(<60)的同学
SELECT name, english FROM exam_result WHERE english < 60;
-- 2. 语文成绩在80-90之间(闭区间)
SELECT name,chinese FROM exam_result WHERE chinese BETWEEN 80 AND 90;
-- 3. 数学成绩是58/59/98/99的同学
SELECT name, math FROM exam_result WHERE math IN (58, 59, 98, 99);
-- 4. 姓孙的同学(%匹配任意后缀)
SELECT name FROM exam_result WHERE name LIKE '孙%';
-- 5. 姓名为"孙某"的同学(_匹配一个字符)
SELECT name FROM exam_result WHERE name LIKE '孙_';
-- 6. 语文成绩>英语成绩且不姓孙的同学
SELECT name, chinese FROM exam_result WHERE chinese>80 AND name NOT LIKE'孙%';
-- 7. 查询QQ号非空的学生
SELECT name, qq FROM students WHERE qq IS NOT NULL;
-- 数学成绩升序排列
SELECT name,math FROM exam_result ORDER BY math;
-- QQ号降序排列(NULL在最后)
SELECT name, qq FROM students ORDER BY qq DESC;
2.3.2 同学及qq号,按qq号排序显示
2.3.3 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
多个字段用逗号分隔,排序优先级随书写顺序而定,前一个字段值相同时,才按后一个字段排序。
2.3.4 查询同学及总分,由高到低
ORDER BY 中可以使用表达式
复制代码
-- 按总成绩(表达式)降序
SELECT name, chinese + english + math FROM exam_result
ORDER BY chinese + english + math DESC;
-- 按总成绩(别名)降序
SELECT name, chinese + english + math 总分 FROM exam_result
ORDER BY 总分 DESC;
-- 第1页:起始位置0,取3条
SELECT id, name, math FROM exam_result ORDER BY id LIMIT 3 OFFSET 0;
-- 第2页:起始位置3,取3条
SELECT id, name, math FROM exam_result ORDER BY id LIMIT 3 OFFSET 3;
-- 第3页:起始位置6,取3条(结果不足3条时,返回剩余数据)
SELECT id, name, math FROM exam_result ORDER BY id LIMIT 3 OFFSET 6;