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不支持这种写法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值