MySQL之知识点(五)

一、排列数据

1,排列规则

使用order by子句排序

  • ASC(ascend):升序
  • DESC(descend):降序
  • order by子句在select语句的结尾

注意:如果没有使用排序操作,默认情况下查询返回的数据是添加数据的顺序显示的。

select id, name from employees order by id;

 (注意:select后加的名称是选择的对象,即结果出来的表名)

若输入select id from employees order by id;

如果需要进行降序排列的话就需DESC:

select id from employees order by id desc;

 

通过ASC进行升序排序:

select id from employees order by id asc;

 通过结果发现,如果在order by后没有显示指明排序的方式的话,则默认是升序排列。

在排序中,我们也可以通过别名进行排序:

select id as ID,name from employees order by ID;

 

2,二级排序:

显示学生信息,按照id进行升序排序,grade进行降序排序。

select id,grade,name from student order by id asc,grade desc;

 

 二、分页

1,使用LIMIT实现对数据的分页显示

需求1:每页显示3条记录,此时显示第1页.

select id,grade,name from student limit 0,3;

 需求2:每页显示3条记录,此时显示第2页.

select id,grade,name from student limit 3,3;

 LIMIT格式:LIMIT  位置偏移量,条目数。

在MySQL8.0中有一个新特性:LIMIT......OFFSET..........

与单独的LIMIT相比,LIMIT后接数据条数,OFFSET后接偏移量。

三、多表查询

多表查询也称为关联查询,指两个或更多个表一起完成查询操作

前提条件:这些一起查询的表之间是有关系的(一对一、一对多),他们之间一定有关联字段,这些关联字段可能建立了外键,也可能没有建立外键。

1,笛卡尔积错误

笛卡尔积:是一个数学运算,假设我们有两个集合X和Y,那么X和Y的笛卡尔积就是X和Y的所有组合,也就是第一个对象来自X,第二个对象来自于Y的所有可能。组合个数即为两个集合中元素个数的乘积。

而出现笛卡尔积错误就是因为缺少了多表连接的条件,除此之外,还可能是连接条件无效、所有表中的所有行互相连接。

为了避免笛卡尔积,可以在where中加入有效的连接条件,查询语法为:

select table1.column,table2.column from table1,table2

where table1.column1=table2.column2;  #连接条件

需要注意的是,如果查询语句中出现多个表中都存在的字段,则必须指明此字段所在的表。

如果给表起了别名,一旦在select或where中使用表名的话,则必须使用表的别名,而不能使用表的原名。

2,多表查询的分类

角度1:等值连接 vs 非等值连接

角度2:自连接 vs 非自连接

角度3:内连接 vs 外连接

内连接:合并具有同一列的两个以上的表的行,结果集中不包含一个表与另一个表不匹配的行

外连接:两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行,这种连接成为左(或右)外连接,没有匹配的行时,结果表中相应的列为空(NULL)。

如果是左外连接,则连接条件中左边的表也称为左表,右边称为从表;

如果是右外连接,则连接条件中右边的表也称为右表,左边称为从表;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值