1.查询所有语句
select * from 表名;
2.查询单个列名
select 列名 from 表名;
3.查询多个字段
select 字段名1,字段名2。。。字段名n from 表名;
4.查询指定记录
select * from 表名 where 查询条件;
如 age >20。可以是 =,<> !=,<,<=,>,>=,between
5.带IN关键字的查询
select * from 表名 where 字段 IN (值1,值2,。。。);
6.带between and 的范围查询
select * from 表名 where 字段 between 值1 and 值2;
7.带like的字符匹配查询
select * from 表名 where 字段 like ' %_ ';
8.查询空值
select * from 表名 where 字段 is null; 相反的是 is not null
9.带and的多条件查询
select * from 表名 where 条件1 and 条件2;
10.单列排序
select * from 表名 order by 字段;
11.多列排序
select * from 表名 order by 字段1,字段2;
12.指定排序方向
select * from 表名 order by 字段1 DESC,字段2;其中ASC是默认的排序方式。
13.分组查询
group by 字段 [having 条件表达式];
如;select 班级字段 count(*) from 学生表 group by 班级 having count(*)>30;
按班级对学生分组,显示超过30人的班级。其中having 在数据分组之后进行过滤来选择分组,而where在分组之前用来选择记录。
14.group by 和 order by 一起使用
如:select 用户id sum(数量*单价) as total from 订单表
group by 用户id having sum(数量*单价)>100 order by total;
查询花费超过100的用户和总订单价格,按用户分组,按消费金额排序。
15.使用 limit 限制查询结果的数量
limit [位置偏移量 ,] 行数
16.有时候并不需要返回实际表中的数据,而是对数据进行总结。mysql提供一些查询功能,可以对获取的数据进行分析和报告,这就是聚合函数。group by 通常和聚合函数一起使用。
17.count() 计算某列的行数。
用法 count(*)计算表的总行数,不管某列有数值或为空值。
count(字段)计算指定列下总的行数,计算时忽略空值。
sum() 计算某列值的和
min()返回某列值的最小值
max()返回某列值的最大值
avg()返回某列值的平均值
18.内连接查询
select * from 表1,表2 where 连接条件;
select * from 表1 inner join 表2 on 连接条件
19.外连接查询
左连接
select 字段列表 from 表1 left outer join 表2 on 连接条件;
右连接
select 字段列表 from 表1 right outer join 表2 on 连接条件;
全连接
MySQL不支持全外连接,所以只能采取关键字UNION来联合左、右连接的方法:
查询语句:SELECT s.*,subject,score FROM student s LEFT JOIN mark m ON s.id=m.id
UNION
SELECT s.*,subject,score FROM student s RIGHT JOIN mark m ON s.id=m.id;
20.子查询
a. 带any 、some 关键字的子查询,表示满足其中任一条件
select * from 表名 where 字段 > any ( 子查询)
b. 带all关键字的子查询,需要同时满足所有内层查询的条件
c.带exists关键字的子查询,系统对子查询进行运算以判断它是否至少返回一行,如果返回一行则
为ture. select * from 表 where exists (子查询)
d.带 in 关键字的子查询 select * from 表名 where 字段 in (子查询);
网友评论