Mysql复习笔记(day03 排序,分页,多表 )

2022/2/21 2:31:02

本文主要是介绍Mysql复习笔记(day03 排序,分页,多表 ),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  1. 排序
    默认情况下,系统会按照数据添加进数据库的顺序进行排序,即时间顺序
    1.1 ORDER BY
    SELECT 字段名 FROM 表名 ORDER BY 需要排序的字段名 DESC/ASC(根据指定字段的值对查找的数据进行排序,DESC为降序,ASC为升序,默认为升序,)
    1.2 SELECT , WHERE, ORDER BY同时出现的执行顺序:
    先 WHERE 再 SELECT 最后 ORDER BY
    比如再SELECT中查询字段的时候取别名,WHERE不能使用该别名.而ORDER BY 可以
    且,格式也要按照 SELECT 字段 FROM 表 WHERE 条件 ORDER BY 字段 的顺序来写.
    1.3 多列排序
    想要对多个字段排序时
    SELECT 字段名 FROM 表名 ORDER BY 字段A DESC/ASC , 字段B DESC/ASC…
    先按照字段A进行排序,在字段A排完序的基础上,相同的值再按照字段B进行排序…

  2. 分页
    2.1 LIMIT
    SELECT 字段名 FROM 表名 LIMIT A,B;(A表示偏移量,B表示查询的数量,即从表中的第A+1个开始查找, 一共查询B个)
    注:MYSQL8.0新特性 : LIMIT A OFFSET B (其中A表示查询数量.B表示偏移量)
    如:分页查找,每页10条数据,
    第一页 :SELECT * FROM 表名 LIMIT 0,10;
    第二页: SELECT * FROM 表名 LIMIT 10,10;
    第三页 SELECT * REOM 表名 LIMIT 20,10;
    可得公式:LIMIT (pageNum-1)*pageSize,pageSize;(pageNum表示第几页,pageSize表示每页几个).
    2.2 WHERE ORDER BY LIMIT 的声明顺序(不是执行顺序)
    SELECT … FROM … WHERE … ORDER BY … LIMIT …

  3. 多表
    3.1 多表查询
    需要表与表之间有共有的字段,这里假设为字段C
    错误方式:SELECT 字段A , 字段B FROM 表A , 表B(这样会查询出表A和表B组合的所有结果,即迪卡尔积)
    正确方式 :SELECT 字段A , 字段B FROM 表A , 表B WHERE 表A.字段C = 表B.字段C
    注:当出现的字段名在多个表中(两个或多个)都含有时,要说明是哪个表中的字段,即 表名.字段名
    如果表的名字比较复杂,可以在FROM 的时候,给表起别名,但是一旦有了别名,就只能使用表的别名.

    3.2 多表查询的分类
    等值连接,非等值连接:
    在WHERE 后的条件,多个表之间用等号连接即 等式就是等值连接
    在WHERE 后的条件,多个表之间用的不是等号而是大于小于等别的,就是非等值连接
    自连接,非自连接:
    不同的表之间的相互连接就是非自连接
    自己连接自己就是自连接(如,找自己的一个字段值与另一个字段值相同的情况下,可以使用自连接)
    内连接,外连接
    内连接:合并具有同一列的两个以上的表的行,结果集中不包含一个表与另一个表不匹配的行(一般的查询都是内连接)
    或者使用 : SELECT * FROM 表名 JOIN 表名 ON 条件(后可跟多个JOIN ON)
    外连接:合并具有同理列的两个以上的表的行,结果集中除了包含一个表与另一个表匹配的行之外,还可以查询到左表或右表中不匹配的行.
    左外连接:两个表在连接过程中除了返回满足连接条件的行以外,还返回左表中不满足条件的行
    SELECT * FROM 表名 LEFT JOIN 表名 ON 条件(后可跟多个JOIN ON)
    右外连接:两个表在连接过程中除了返回满足连接条件的行以外,还返回右表中不满足条件的行
    SELECT * FROM 表名 RIGHT JOIN 表名 ON 条件(后可跟多个JOIN ON)
    UNION关键字
    利用UNION关键字,可以给出多条SELECT语句,并将他们的结果组合成单个结果集.合并时,两个表对应的列数和数据类型必须相同,并且相互对应.各个SELECT 语句之间 使用UNION或者UNION ALL 关键字分隔.
    语法格式: SELECT* FROM 表名 UNINO/UNION ALL SELECT * FROM 表名(UNINO会去重,UNINO ALL 不会)
    七种JOIN
    在这里插入图片描述
    上图中的 FULL , MYSQL不支持这种写法



这篇关于Mysql复习笔记(day03 排序,分页,多表 )的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程