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

Posted jade-91

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL基础入门学习查询表达式解析 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都没有任何关系。

技术分享图片

 

以上是关于MySQL基础入门学习查询表达式解析 SELECT的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 学习之路Mysql基础知识之简单查询

Mysql 学习之路Mysql基础知识之简单查询

MySQL基础_SQL语言

MySQL学习笔记DQL语句之基础查询

mysql注入快速学习基础

最基础!MySQL基础查询SELECT