class07_查询数据
查询部分列
如何查询表中的部分列
查询数据:关键字 SELECT
SELECT 字段列表 FROM 表名;
【查询出来的结果集无 互异性 】
SELECT stu_id FROM Student;
查询多个列: SELECT stu_id,stu_name,gender FROM Student;
查询所有列
如何查询表中的所有咧
SELECT * FROM 表名;
*:也可以是手动写出所有字段名,显示字段顺序与输入的顺序一致
排序返回结果
如何将查询出的结果排序
关键字:ORDER BY ...[ASC:升序排序 / DESC:降序排序]
SELECT 字段列表 FROM 表名 ORDER BY 字段1【ASC/DESC】,字段2【ASC/DESC】……;
【注意:】ORDER BY 字段名,默认是ASC方式
字段名也可以用SELECT 后面结果的顺序,直接用顺序数字代替:
例子:
SELECT stu_id,stu_name,age FROM Student ORDER BY stu_id ASC,age ASC;
等价于 ===:
SELECT stu_id,stu_name,age FROM Student ORDER BY 1 ASC, 3 ASC;
【一般不太建议】
限制返回结果
如何返回部分查询结果
返回前几行:关键字 : TOP、LIMIT
两种写法:
-
SELCET TOP 10 字段列表 FROM 表名;
-
SELECT 字段列表 FROM 表名 LIMIT 10;
一般在两种情况下会使用:
-
想随便查看一下表中的数据;
-
一般与ORDER BY关键字配合使用,返回按某些字段排序后的前几行
例子:
SELECT stu_id FROM Student ORDER BY stu_id ASC,age ASC LIMIT 3;
SELECT TOP 3 stu_id FROM Student ORDER BY stu_id ASC,age ASC;
[注意:]
MySQL不支持TOP写法,但是支持 LIMIT 用法
返回中间几行:关键字: LIMIT M OFFSET N【从第N行开始,返回M行记录】N:从0开始
两种写法:
SELECT 字段列表 FROM 表名 LIMIT M OFFSET N;
SELECT 字段列表 FROM 表名 LIMIT N,M;
注意:
SELECT 字段列表 FROM 表名 LIMIT 0,10; === SELECT 字段列表 FROM 表名 LIMIT 10;
返回后几行:关键字:TOP、LIMIT、ORDER BY
SQL语句中,没有返回后几行的专用写法,一般转换为按返回前几行的相反方式排序后,再返回前几行。使用这种方式变相的返回后几行。
例子:
SELECT * FROM(SELECT * FROM teacher ORDER BY teacher_id DESC LIMIT 5) **as Button_5** ORDER BY teacher_id;
【注意:】这里的两个SELECT已经属于联合查询了,因此要给这个子查询取一个别名,这里取名:Button_5