MySQL基础入门学习【7】查询表达式解析 SELECT

1. 查找记录: 

 SELECT select_expr [,select_expr...]

[

FROM table_references

[WHERE where_condition]

[GROUP BY {col_name | postion}  [ASC|DESC],...]

[HAVING where_condition]

[ORDER BY {col_name | expr | position} [ASC | DESC],...]

[LIMIT { [offset,] row_count | row_count OFFSET offset } ]

]

计算表达式的结果

1) 查询表达式: select_expr

    每一个表达式表示想要的一列,必须有至少一个;

    多个列之间以英文逗号分隔;

    星号(*)表示所有列。 tbl_name.* 可以表示命名表的所有列;

    查询表达式可以使用 [ AS ] alias_name 为其赋予别名;

    别名可用于GROUP BY , ORDER BY 或HAVING 子句。

 

也可以让当前的数据列的排列顺序和原表中不一样

SELECT 语句查询表达式的顺序将影响着结果的顺序

以后使用多表连接时,两张不同的表可能存在相同的字段,如果直接写字段名的话,则分不清到底属于哪张数据表

有些时候某些字段的名字特别长,可能不太容易记忆,我们可以为其赋予别名。

字段的别名也将影响到以后的结果集的字段名。

AS 可以省略:(一般情况下还是要书写AS 比较好)

(2)where 语句进行条件查询:

   条件表达式: 对记录进行过滤,如果没有指定WHERE 子句,则显示所有记录;

          在 WHERE 表达式中,可以使用MySQL支持的函数或运算符。

(3)group by 语句对查询结果分组:

    [GROUP BY {col_name | position} [ ASC | DESC],...]  

    既可以指定列的列名(常用),也可以指定列的位置(它在select语句中字段的位置,从1开始);升序(默认)或降序排列;多个分组条件中间以逗号做分割。

   

(4) having语句设置分组条件

   只对某一部分记录做分组: [HAVING where_condition] 

       一定要保证分组的条件要么为一个聚合函数(max/min/avg/sum/count...,永远只有一个返回结果),要么这个字段必须出现在当前SELECT语句中。

       (if you got some expression#1 error, see https://blog.csdn.net/fansili/article/details/78664267 )

(5) order by 语句对查询结果排序: [ORDER BY {col_name | expr | position} [ASC | DESC],...]

同时以两个字段排序:首先先看第一个字段能否排出想要的结果,如果可以则直接忽略第二个字段,否则再遵守第二个字段甚至第三个字段等等:

(6) limit语句限制查询结果返回的数量:

        [LIMIT { [ offset,] row_count | row_count OFFSET offset} ]  

  第一种形式的语法结构比较常见

  默认情况下返回所有的你要查找到的结果。

  以后利用PHP进行分页时就会用到这个语句进行分页效果的实现。offset公式为(当前页码-1)*每页所显示的记录数。

从第1行开始返回,返回2条记录。

从第3条记录开始,返回2条。记录是从0开始编号的!!!

注意,我们例子中的id号和结果集中的排列顺序没有任何的联系,只要它排在结果集中的第一个位置,它就对应是0;第二个位置就对应是1...,id号是100 还是1000都没有任何关系。

[参考链接]   https://www.imooc.com/learn/122 

原文地址:https://www.cnblogs.com/jade-91/p/8681664.html