MySQL 学习笔记二 之 查询数据

条件查询

SELECT * FROM <表名> WHERE <条件表达式>

注:

  1. WHERE 60 <= score <= 90,意思是score >=60 or score <=90

  2. WHERE score IN (60, 90),意思是in (, , ,)和python中的in类似,和这里的or也类型,是指 是否在(, , ,)这个集合中。

  3. 若不加括号,运算按照NOT、AND、OR的优先级进行,即NOT优先级最高,其次是AND,最后是OR

##投影查询

  1. SELECT 列1, 列2, 列3 FROM …

    列的顺序可以不与原表相同

  2. SELECT 列1 别名1, 列2 别名2, 列3 别名3 FROM …

    给列重命名

  3. 如果有WHERE子句,那么ORDER BY子句要放到WHERE子句后面。

分页

SELECT id, name, gender, score
FROM students
ORDER BY score DESC
LIMIT 3 OFFSET 0;

LIMIT总是设定为pageSize;
OFFSET计算公式为pageSize * (pageIndex - 1);
pageSize :每页数据条数;pageIndex:当前页码。

OFFSET超过了查询的最大数量并不会报错,而是得到一个空的结果集。

聚合查询

对于统计总数、平均数这类计算,SQL提供了专门的聚合函数。

使用SQL提供的聚合查询,我们可以方便地计算总数COUNT()、合计值SUM()、平均值AVG()、最大值MAX()和最小值MIN();

聚合查询也可以添加WHERE条件。

多表查询

这种一次查询两个表的数据,查询的结果也是一个二维表,它是students表和classes表的“乘积”,即students表的每一行与classes表的每一行都两两拼在一起返回。

结果集的列数是students表和classes表的列数之和,行数是students表和classes表的行数之积。

注:
使用多表查询可以获取M x N行记录;

多表查询的结果集可能非常巨大,要小心使用。

连接查询

注意INNER JOIN查询的写法是:

  1. 先确定主表,仍然使用FROM <表1>的语法;
  2. 再确定需要连接的表,使用INNER JOIN <表2>的语法;
  3. 然后确定连接条件,使用ON <条件…>,这里的条件是 s.class_id = c.id,表示students表的class_id列与classes表的 id列相同的行需要连接;
  4. 可选:加上WHERE子句、ORDER BY等子句。

INNER JOIN是最常用的一种JOIN查询,
它的语法是SELECT … FROM <表1> INNER JOIN <表2> ON <条件…>;

JOIN查询仍然可以使用WHERE条件和ORDER BY排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值