MySQL

  • 排序和分页操作
  • 多表查询
  • 等值连接与自连接
  • SQL92与99语法实现内连接与外连接


排序和分页操作

1.排序

数据库中查询默认的顺序为数据添加的顺序

使用order by 对查询到的数据进行排序操作

排序前:

mysql 分页排序 数据问题 mysql排序后分页_mysql

升序排序(ASC):
order by 想以什么进行排序

SELECT * FROM list
ORDER BY salary;

降序排序(DESC):
order by 想以什么进行排序 DESC

SELECT * FROM list
ORDER BY salary DESC;

mysql 分页排序 数据问题 mysql排序后分页_数据库_02


注意

1.列的别名只能在ORDER BY 中使用,不能在WHERE中使用,否则会报错。

2.查询时WHERE应与FROM在一起,后使用ORDER BY,即先选择后排序。

2.分页操作

为什么需要分页操作?

mysql 分页排序 数据问题 mysql排序后分页_分页_03


mysql 分页排序 数据问题 mysql排序后分页_学习_04


以上是某网站的分页。如何进行分页操作呢?

mysql使用 limit 来对数据进行分页显示。

使用方法:limit 偏移起点,偏移量;

需求一:每页显示二十条记录,此时显示第一页

mysql 分页排序 数据问题 mysql排序后分页_mysql_05


需求二:每页显示二十条记录,此时显示第二页

mysql 分页排序 数据问题 mysql排序后分页_数据库_06


总结:

mysql 分页排序 数据问题 mysql排序后分页_mysql 分页排序 数据问题_07


拓展:

mysql 分页排序 数据问题 mysql排序后分页_学习_08

多表查询

mysql 分页排序 数据问题 mysql排序后分页_mysql_09


mysql 分页排序 数据问题 mysql排序后分页_mysql 分页排序 数据问题_10

mysql 分页排序 数据问题 mysql排序后分页_学习_11


通过一个表的内容找到与之关联的表再找到自己想要的数据,如下图

箭头指向。

mysql 分页排序 数据问题 mysql排序后分页_学习_12


单个选中执行,查询时间慢,效率不高,要多次网络交互信息。如下图:

mysql 分页排序 数据问题 mysql排序后分页_数据库_13


如何进行多表查询?

mysql 分页排序 数据问题 mysql排序后分页_mysql 分页排序 数据问题_14


默认两张表的数据进行笛卡尔乘积,每个数据都会与另一张表的数据逐个配对。

错误原因:缺少了多表的连接条件。

正确的实现方式

mysql 分页排序 数据问题 mysql排序后分页_mysql_15


需要有连接条件。

mysql 分页排序 数据问题 mysql排序后分页_mysql 分页排序 数据问题_16

等值连接与自连接

多表查询的分类:

mysql 分页排序 数据问题 mysql排序后分页_分页_17


非等值连接:简单来说就是一个范围,不知道具体的数据

mysql 分页排序 数据问题 mysql排序后分页_学习_18


自连接就是自己表内的数据连接

非自连接顾名思义就是与别的表的数据连接

SQL92与99语法实现内连接与外连接

内连接与外连接:

mysql 分页排序 数据问题 mysql排序后分页_数据库_19


左外连接:两个表在连接过程中除了返回满足条件的行以外还返回左表中不满足条件的行。
右外连接:两个表在连接过程中除了返回满足条件的行以外还返回右表中不满足条件的行。

mysql 分页排序 数据问题 mysql排序后分页_mysql 分页排序 数据问题_20


MySQL不支持SQL92语法中的外连接写法

mysql 分页排序 数据问题 mysql排序后分页_分页_21


SQL99语法

采用join…on来实现内连接

mysql 分页排序 数据问题 mysql排序后分页_mysql_22


左外连接:LEFT OUTER JOIN…ON

mysql 分页排序 数据问题 mysql排序后分页_学习_23


右外连接:RIGHT OUTER JOIN…ON

满外连接:MYSQL不支持满外连接,语法:FULL OUTER JOIN…ON。