【mysql】 mysql 子查询、联合查询、模糊查询、排序、聚合函数、分组----------语法

第二章 mysql

一、模糊查询

like

1. 字段 like '河北省%' %代表任何N个字符

2 字段 like '河北省____' _代表任意1个字符


二、IN

语法:SELECT 字段列1,字段2 ,…FROM 表名 WHERE 字段x IN ( 值1,值2,值3…)

三、排序

语法:select 字段1, 字段2, ... from 表名 where 条件 order by 字段 [asc|desc]

asc :升序

desc :降序

默认是升序asc

SELECT * FROM student ORDER BY age ASC, studentid ASC;

四、联合查询

内链接:只查询左右2张表中相同的记录 inner join

语法:select 列1, 列2, 列3, ...
from 表1
inner join 表2 on 表1.列x = 表2.列y

示例:select studentname, age, phone, classname
from student
inner join classinfo on student.classid = classinfo.classid


左外链接:查询左右2张表中相同的记录 + 左表未匹配的记录(右表字段为NULL) left outer join

语法:select 列1, 列2, 列3, ...
from 表1
left join 表2 on 表1.列x = 表2.列y

右外链接:查询左右2张表中相同的记录 + 右表未匹配的记录(左表字段为NULL) right outer join

语法:select 列1, 列2, 列3, ...
from 表1
right join 表2 on 表1.列x = 表2.列y

完全链接:对左右2张表中的记录做笛卡尔积 cross join

语法:select 列1, 列2, 列3, ...
from 表1
cross join 表2

五、LIMIT

语法:LIMIT [m,]n 或 LIMIT n OFFSET m
限制SELECT返回结果的行数
m 制定第一个返回记录行的偏移量
n 制定返回记录行的最大数目


数据分页:
pageIndex : 1 2 3 4 5 ...要显示的页码 3
pageSize : 每页的记录数 3

limit (pageSize * (pageIndex - 1)), (pageSize)


六、子查询

定义:在查询语句中,又嵌套了另外一个查询语句。

七、聚合函数

1.count() : 获取记录的行数

2.sum() : 对指定字段进行求和

3.avg() : 对指定字段进行求平均值

4.max() : 对指定字段求最大值

5.min() : 对指定字段求最小值


八、分组

group by 字段

注意:使用group by分组后,select后只能跟group by后的字段;或者跟聚合函数


SELECT age, COUNT(*)
FROM student
GROUP BY age

SELECT classid, COUNT(*), AVG(age), MAX(age), MIN(age)
FROM student
GROUP BY classid

SELECT classid, COUNT(*), AVG(age), MAX(age), MIN(age)
FROM student
GROUP BY classid
HAVING COUNT(*) > 1

SELECT classid, COUNT(*), AVG(age), MAX(age), MIN(age)
FROM student
GROUP BY classid
HAVING COUNT(*) > 1 AND age > 20

原文地址:https://www.cnblogs.com/xdcr/p/5053539.html