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 的组合可以快速找出最值

 

posted @ 2018-12-02 16:30  azouever  阅读(89)  评论(0编辑  收藏  举报