一、简单查询
1、查询指定字段信息
格式:select 字段1,字段2,...from 表名;
2、查询表中所有字段
格式:select * from 表名;
3、distinct用于去除重复记录
格式:select distinct 字段 from 表名;
4、别名查询
别名可以给表中的字段,表设置别名。 当查询语句复杂时,使用别名可以极大的简便操作。表别名可以解决嵌套查询的问题。使用的as关键字,as可以省略的。
(1)表别名
格式一:select * from 表名 as 别名;
格式二:select * from 表名 别名;
(2)列别名
格式一:select 字段名 as 别名 from 表名;
格式二:select 字段名 别名 from 表名;
5、直接对列进行运算
例:对所有账务的金额+100元
二、条件查询
where语句表条件过滤。满足条件操作,不满足不操作,多用于数据的查询与修改。
比较运算符 | > < <= >= = <> | 大于、小于、大于(小于)等于、不等于 |
BETWEEN ...AND... | 显示在某一区间的值(含头含尾) | |
IN(set) | 显示在in列表中的值,例:in(100,200) | |
LIKE 通配符 | 模糊查询,Like语句中有两个通配符: % 用来匹配多个字符;例first_name like ‘a%’; _ 用来匹配一个字符。例first_name like ‘a_’; | |
IS NULL | 判断是否为空 is null; 判断为空 is not null; 判断不为空 | |
and | 多个条件同时成立 | |
or | 多个条件任一成立 | |
not | 不成立,例:where not(salary>100); |
格式 :select 字段 from 表名 where 条件;
1、比较运算符
(1)<>
eg:查询金额不等于325的账务信息
(2)>=
eg:查询出金额大于等于2000的账务信息
(3)BETWEEN...AND...
eg:查询出金额在1000-30000之间的账务信息
(4)LIKE通配符
eg:查询出账务名称包含”支出”的账务信息
(5)IS NOT NULL
eg:查询出账务名称不为null账务信息
(6)IN
eg:查询出金额是500或1000或3000的商品信息
2、逻辑运算符
(1)AND
eg:查询出金额在1000-30000之间的账务信息
(2)OR
eg:查询出金额是500或1000或3000的商品信息
(3)NOT
eg:查询出账务名称不为null账务信息
三、ORDER BY子句
用户可用ORDER BY子句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,默认值为升序。
eg1:查询所有账务信息,按照金额降序排列
eg2:查询吃饭支出的账务信息,且按金额升序排列
四、聚集函数
COUNT(*) | 统计元组个数 |
COUNT([DISTINCT|ALL]<列名>) | 统计一列中值得个数 |
SUM([DISTINCT|ALL]<列名>) | 计算一列值的总和(此列必须是数值型) |
AVG([DISTINCT|ALL]<列名>) | 计算一列值的平均值(此列必须是数值型) |
MAX([DISTINCT|ALL]<列名>) | 求一列值中的最大值 |
MIN([DISTINCT|ALL]<列名>) | 求一列值中的最小值 |
***:
(1)若指定DINSTINCT,则计算时取消指定列中的重复值。若不指定DISTINCT或指定ALL(ALL为默认值),则表示不取消重复值。
(2)当聚集函数遇到空值时,除COUNT(*)外,都跳过空值而只处理非空值。
(3)聚集函数只能用于SELECT子句和GROUP BY中的HAVING子句。
1、COUNT(*)
eg:查询账务总记录条数
2、COUNT([DISTINCT|ALL]<列名>)
eg:查询不同的账务名称条数
3、SUM([DISTINCT|ALL]<列名>)
eg:查询账务支出的总金额
4、AVG([DISTINCT|ALL]<列名>)
eg:查询账务平均收入
5、MAX([DISTINCT|ALL]<列名>)
eg:查询收入最高的账务金额信息
6、MIN([DISTINCT|ALL]<列名>)
eg:查询支出最低的账务金额信息
五、GROUP BY子句
eg:
注:在使用group by时报错Expression #1 of SELECT list is not in GROUP BY clause and ...
解决方法:https://blog.csdn.net/weixin_43076448/article/details/106993404
六、WHERE子句与HAVING短语的区别
作用对象不同:WHERE子句作用于基本表或视图,HAVING短语作用于组,需与GROUP BY搭配。
七、SQL查询语句的执行顺序
select语句完整语法:
1) select 目标表的列名或列表达式序列
2) from 基本表名和(或)视图序列
3) [where 行条件表达式]
4) [group by 列名序列]
[having 组条件表达式]
5) [order by 列名[asc | desc]]
写法顺序:select--from--where--group by--having--order by
执行顺序:from--where--group by--having--select--order by
就是select要放后面,如果有order by,则order by放最后,因为order by 是对结果进行排序