MySQL必知必会(二)
检索数据--列查询
在对数据库的各种操作(CRUD)中,查询无疑是使用频率最高的,也是最重要的,用户可能会有各种需求,就会产生各种查询(筛选、排序等),所以我们从查询(SELECT)开始。
1、查询数据至少需要两个条件:查什么,从哪儿查。然后在此基础上可以添加各种条件;
2、SQL语句在处理时,空格都会被忽略,所以在编写复杂SQL的时候可以将语句分成多行,这样更容易阅读和调试;
3、对于通配符 '*' 的使用,除非确实需要表中的每一列,否则最好别用,检索不需要的列通常会降低程序整体性能。
4、DISTINCT 关键字(选择有区别的,也就是去重),如果要应用于所有的列时,则所有的列前都应该加上DISTINCT关键字。
5、LIMIT 关键字 ,因为查询出来的第一行的索引为0,所以 LIMIT 1,1; 是查询结果集的第二行记录(正确的理解应该是这样:从索引为1的地方开始读记录,读1条记录。)。
1 -- 下面两个语句都是表示检索特定条数的记录
2 SELECT * FROM student LIMIT 1,4
3 SELECT student.* FROM student LIMIT 4 OFFSET 1
检索数据--排序查询
一般情况下,查询结果不排序,那么表现出来的数据顺序是数据在底层表中出现的顺序,可以是数据最初添加至数据库表中的顺序,但是,如果数据发生了更新或者删除,那么这个顺序就会受到MySQL重用回收存储空间的影响,不明确控制的话,这个顺序也没有任何意义。关系数据库设计理论认为:如果不明确规定排序顺序,检索出来的数据的顺序没有意义。
关键字:ORDER BY 、DESC(descending)、ASC(ascending)
1 -- 中文排序
2 SELECT
3 *
4 FROM
5 (SELECT * FROM student LIMIT 1, 4) temp
6 ORDER BY
7 CONVERT(temp.sname USING gbk)
使用ORDER BY 和 LIMIT 的组合可以快速找出最值
程序源于生活,也会有多姿多彩,也会有人情世故,这是感受;
莫道君行早,更有君行早,这是鞭策;
每一个努力的你,都可以凯旋,这是期望。