数据查询与排序
2 数据查询
2.1 简单查询
- 简单查询
SELECT * FROM 表名;
- 查询指定字段
SELECT 字段名 1, 字段名 2, 字段名 3 FROM 表名;
- 为查询的列指定别名
1.SELECT 字段名 1 as 列名1, 字段名 2 as 列名2, 字段名 3 as 列名3 FROM 表名;
2.使用 case when … end
SELECT 字段名 1 as 列名1, 字段名 2 as 列名2, (CASE WHEN score>=60 THEN '及格' ELSE '不及格' END) as 成绩情况 FROM 表名;
- 限制结果
LIMIT 的用法 限制提取行数
从SELECT语句的查询结果中返回其中一部分记录。 如:青年歌手大赛需要从所有参赛选手中找出成绩最好的前五名选手。
LIMIT 即强制SELECT语句返回指定的记录数。 SELECT语句返回所有匹配的行,他们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。
语法格式:
SELECT 列名(集) FROM 表名 LIMIT [起始行号], 返回行数;
-- Eg:
SELECT prod_name
FROM products
LIMIT 5;
# 此语句使用SELECT语句检索单个列。LIMIT 5指示 MySQL返回不多于5行。
-- 为得出下一个5行,可指定要检索的开始行和行数。
SELECT prod_name
FROM products
LIMIT 5,5;
# LIMIT 5,5指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。
# 所以带一个值的LIMIT总是从第一行开始,给出的数为返回的行数。
行 0 检索出来的第一行为行0而不是行1.因此LIMIT 1,1将检索出第二行而不是第一行。
在行数不够时 LIMIT中指定要检索的行数为检索的最大行数。如果没有足够的行(例如,给出LIMIT 10, 5, 但只有13行), MySQL将只返回它能返回的那么多行。
MySQL的LIMIT语法 LIMIT 3, 4的含义是从行3开始的4行。此处行3指的是第3行。由于此语法容易把人搞糊涂,MySQL 5以后的版本支持LIMIT的另一种替代语法。LIMIT 4 OFFSET 3意为从行3考试取4行,就像LIMIT 3, 4一样。
2.2 条件查询
条件查询用于过滤数据,即查询结果中只包含满足条件的记录。在 WHERE 子句中多用关系运算符和逻辑运算符构造查询条件。
语法格式:SELECT ... FROM table WHERE conditions;
关系运算符和逻辑运算符
- 简单的条件查询 (WHERE + 指定查询条件)
SELECT * FROM student WHERE student_id = '20197030';
- IN 构造查询条件,将条件用括号括起来,条件之间用逗号隔开,只要满足其中的一个条件即为满足条件。
格式:WHERE fieldname IN(值 1, 值 2, ... ...)
- BETWEE