暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL基础-4

云生处 2021-06-21
339

本章节学习目标

1.select 检索单个列、多个列、全部列。2.全限定名与别名。3.去重和限定结果

select 基础用法

在纵观这个知识点之前,先来看一下 select 语句的语法结构:

语法select columns from table;

接着纵观学习目标中的第一个知识点的所有内容,简而言之即为下面三种语法:

1.select 某列 from table;
2.select 某列, 某列, 某列... from table;
3.select * from table;

以上就是本小结要掌握内容,非常的简单。


注:最好不要使用 *
 作为查询的字段,检索不需要的字段只会降低效率。


全限定名与别名

全限定名

举个例子:一个学校中分别处于 3年级2班 和 2级3班 姓名都为 A 的同学,此时你需要在学校广播中寻找其中的一位叫 A 的同学你会怎么做?

对,没错。你会加上这位 A 同学的所在的年级和班级进而定位这位同学,这就是全限定名字的作用。

多张表中会存在相同名字的字段,当需要检索不同表中的相同字段时,区分它们也只有使用全限定名。


别名

举个例子:俗称小名。

当表名(也可以是 库名.表名.字段名 )名字过于长的时候,查询多个字段时非常的不人性,为了提高效率起个别名就是解决当前最好的办法。

去重和限定结果

去重

关键字distinct

正如书上所说,这个关键字只能作用在它后面的字段上,并非全局。随之而来的问题是不能对多个字段进行分组,而且该关键字只能放在开头。

如: select vend_id, distinct prod_id from products;
 这就会直接报语义错误。

多个字段进行分组使用关键字:group by 。后续会介绍,暂时不着急。


限定结果

关键字limit

两种用法:

1.limit 行数;:只有一个参数时代表返回所要查询的行数。2.limit 偏移量, 步长;:两个参数时,第一个参数表示从第几行开始查;第二个参数表示查多少行。

limit 所引导的表达式需要放在结尾处,不能至于其他位置。

注:MySQL 中下标是从 0 开始数的。

番外篇

既然文中已经提及到各个关键字在语句中所放置的位置,所以下面先来看一下整个 sql 语句的执行顺序是什么样子的。

先来一段小标注:

    (9) SELECT 
    (10) DISTICNCT column,
    (6) AGG_FUNC(column or expiression), ...
    (1) FROM left_table
    (3) JOIN right_table
    (2) ON tablename.column =
    other_tablename.column
    (4) WHERE constraint_expiression
    (5) GROUP BY column
    (7) WITH CUBE|ROLLUP
    (8) HAVING constraint_expiression
    (11) ORDER BY column ASC|DESC
    (12) LIMIT count OFFSET count;

    再来放一张图:

    想要了解更多的同学,可自行百度。基础篇幅不会涉及到原理问题,有机会会在高级部分详细探究。


    文章转载自云生处,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论