本文目录
  1. 1.简单查询
  2. 2.条件查询
  3. 3.聚合查询
  4. 4.排序查询
  5. 5.分组查询
  6. 6.insert into select 语句
  7. 7.分页查询 ——MySQL方言 不通用

MySQL 单表查询

系统整理条件、聚合、排序、分组与分页查询。

1.简单查询

#查询所有数据
select * from 库.表名;
#查询指定字段数据
select 列名1,列名2 from 库.表名;
#查询指定字段符合条件数据
select 列名1,列名2 from 库.表名 where 条件;
#去重
select distinct * from 库.表名;
#设置别名
select 列名 as '别名' from 库.表名;

2.条件查询

select * from 库.表名 where 条件;
比较运算符
> < <= >= = <> != 大于、小于、大于(小于)等于、不等于
BETWEEN …AND… 显示在某一区间的值(含头含尾)
IN(set) 显示在in列表中的值,例:in(100,200)
LIKE ‘张%’
LIKE ‘%涛%’
模糊查询,Like语句中,
%代表零个或多个任意字符,
_代表一个字符,
例如:first_name like ‘_a%’;
IS NULL
IS NOT NULL
判断是否为空
逻辑运算符
and 多个条件同时成立
or 多个条件任一成立
not 不成立,例:where not(salary>100);

3.聚合查询

纵向查询

select count() from 库.表名;
聚合函数 作用
count() 统计指定列不为NULL的记录行数;
sum() 计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0
max() 计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
min() 计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
avg() 计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

注:count 会排除值,count(1)不会查询数值,只计数

4.排序查询

select * from 库.表名 order by 列名 desc|asc;
#desc 降序
#asc 升序 默认为升序 

5.分组查询

##group by 必须按字段进行分组
##有分组必聚合,后面也要跟聚合的数据(用聚合函数)
##按什么分组,就按什么查询
select * from 库.表名 group by 列名 having 条件;
##having 和 where的区别
# having是先分组再计算再筛选
# where是第一步就进行筛选再分组再计算

6.insert into select 语句

INSERT INTO 新表名  SELECT 列名 FROM 库.表名;
1-  查询的结果 和 保存到目标表的结构要保持一致
2- 查询的结果的字段顺序要和目标表的字段的顺序保持一致, 当然类型、长度也要一致

7.分页查询 ——MySQL方言 不通用

select * from 库.表名 limit [strat] num;
# strat 从第几个数据开始 不写默认为0 从第一行开始
# num 展示几行数据