文章目录

  • 一,筛选条件
  • 二,聚合与分组(重点和难点)
  • 三,子查询(了解)
  • 四,连接查询

一,筛选条件

1.1,比较运算符

等于:=(注意!不是==)

大于等于:>=

空: is NULL

不等于:!=或<>

小于:<

非空: is NOT NULL

大于:>

小于等于:<=

1.2,逻辑运算符

与:and 或:or 非:not

1.3,排序

正序(降序):order by 字段

相反(降序):order by 字段 desc

例如:select * from 表名 order by 字段

1.4,限制

-limit 数字:限制条件只能输出前多少行

-limit num1, num2:从num1下一个位置开始输出num2行数据

1.5,去重

-distinct:查找的时候不显示重复的数据

例如:select distinct * from 表名

1.6,模糊查询

-任意多个字符:like '%'

例如:select * from 表名 where 字段 like '李%'

-任意一个字符:like '_'

例如:select * from 表名 where 字段 like '李__'

1.7,范围查询

-数值查询:between num1 and num2

例如:select * from 表名 where 字段 between num1 and num2

-间隔返回:in (条件,条件),只筛选符合括号内的数据

例如:select * from 表名 where 字段 in(条件,条件...)

二,聚合与分组(重点和难点)

2.1,常用的聚合函数

统计个数:count(column)

求和:sum(column)

**最大值:**max(column)

**平均值:**avg(column)

**最小值:**min(column)

**列出字段全部值:**group_concat(column)

例子:select count(*) as group_counts from 表名 group_by 字段:先把表按照字段分组,在计算各组的数量,最后统一存放在group_counts 字段中

select 字段 from 表名 group by 字段:列出该个字段里的内容

2.2,分组查询(group by)

mysql怎么根据id找parentid mysql查询id为1,2,3_字段

mysql怎么根据id找parentid mysql查询id为1,2,3_字段_02

2.3,聚合筛选

-having:相当于where,可以对已筛选的表格再次进行筛选

where和having的区别:where是在查看时候参与筛选,having是在第一次筛选完毕后再执行,相当于对已经筛选的表再次进行筛选.

mysql怎么根据id找parentid mysql查询id为1,2,3_字段_03

-as:可以给聚合函数起名,并在后面可以使用

select * from (select * from students order by age) as e;
# (select * from students order by age) as e 这一步就是期别名为e

mysql怎么根据id找parentid mysql查询id为1,2,3_表名_04

三,子查询(了解)

3.1,将一个查询的结果留下来用于下一次查询(select 中嵌套 select

要求:

1):嵌套在查询内部

2):必须始终出现在圆括号内(圆括号里面的数据没被别名时必须是单一的数据)

mysql怎么根据id找parentid mysql查询id为1,2,3_数据_05

例子:select count(*) from grades where subject_number=(select number from subjects where title='Python1'); :查询subject_number等于后面这个子查询里面数据的数据(子查询里面的数据必须是一个确定的唯一数)

四,连接查询

4.1,内连接(inner join)

-无条件连接

无条件内连接,又名交叉连接/笛卡尔连接

第一张表中的每一项会和另一张的每一项依次组合

例子:MySQL> select * from 表名 join 表名

-有条件内连接

在无条件连接的基础上,加上一个on子句

当连接的时候,筛选出那些有实际意义的记录来进行组合

例子:MySQL> select * from 表名 join 表名 on 表名.字段 = 表名.字段如果不想显示重复的数据,把*改为想要的数据,重复的改为条件.字段

4.2,外连接(left/right join)

-左外链接:(以左表为基准)

两张表做链接的时候,在连接条件不匹配的时候

留下左表的数据,而右表中的数据以NULL填充

例子:MySQL> select * from 表名 left join 表名 on 表名.字段 = 表名.字段

mysql怎么根据id找parentid mysql查询id为1,2,3_表名_06

-右外连接(以右表为基准)