一、基本查询
1、语法
select 查询列表 from 表名;
2、特点
查询列表可以是字段、常量、字符串、函数
查询结果是一个虚拟表
3、示例
(1)查询单个字段:select 字符名 from 表名;
(2)查询多个字段:select 字符名,字符名 from 表名;
(3)查询所有字段:select * from 表名;
(4)查询常量:select 常量值;
注意:字符型和日期型的常量要用单引号引起来
(5)查询函数:select 函数名(实参列表);
注意:函数调用必须用select,且mysql的函数均有返回值
(6)查询表达式:select 表达式;(不支持++,–,==)
(7)起别名
a.AS
b.空格
(8)去重:select distinct 字段名 from 表名;
注意:只能有一个字段名
(9)加号:只能用于运算
字符加数值,先试图将字符转化成数值。若成功,继续运算,若失败,赋值0进行加法运算,null与任何相加都为null
(10)补充函数
concat函数:用于拼接字符
ifnull函数:判断字段与表达式是否为null,若是,返回指定值,若不是,返回原始值
isnull函数:判断字段与表达式是否为null,若是,返回1,若不是,返回,0
二、条件查询
1.语法
select 查询列表 from 表名 where 筛选条件;
2.筛选条件的分类
(1)简单条件运算符
< > <= >= != <> = <=>安全等于,可以判断null与普通数值
(2)简单逻辑运算符
&& || ! 在mysql中建议写成and or not
(3)模糊查询
like(查找包涵某字符的值,可以使用通配符:%——任意多位数通配符,可以表示无;_——任意单个通配符)
between and
in(满足某些条件中的任意一个,即或的关系)
isnull(用于判断null值)
三、排序查询
1.语法
select 查询列表 from 表名 where 筛选条件 order by 排序列表
2.特点
asc——升序(默认);desc——降序
支持单个,多个字段,函数,表达式,别名
order by一般放在查询语句的最后(除limit语句之外)
四、分组查询
1、语法
select 分组函数,分组后的字段 from 表名 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序列表
执行顺序:from—where—group by—having—select—order by
2、特点
使用的关键字 筛选的表 位置
分组前筛选 where 原始表 group by之前
分组后筛选 having 分组后的结果 group by之后
判断分组前还是分组后筛选
先写出框架
select 查询列表(要求是分组函数和group by后出现的字段)
from 表名
group by 分组列表
当筛选条件可以在原有表中表示出来,就用where,分组前筛选
分组函数做条件,肯定放在having语句中
分组前和分组后都可以的话优先进行分组前筛选,性能较好