您的位置:首页 > 数据库 > MySQL

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

2015-12-17 11:34 801 查看
第二章 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: