概述
目录
1.普通查询:
注意:order by 后面如果没有添加 asc/desc,默认为asc升序
2.待条件查询、模糊查询:
3.聚合函数、处理字符、数据函数:
A.聚合函数(5个)
B:常用字符处理函数
C:数值处理函数
4.分组查询(group by)
5.having子句
一、select语句:
1.普通查询:
a、查找全部Values
select * from 表名
b、查找部分列值
select 列1,列2,列3…… from 表名
c、别名
c1.列名+空格+别名
c2.列名 as 别名
d、排序:分为升序asc、降序desc
select 列1 as 别名1,列2 as 别名2…
from 表名
order by 列1/别名1 asc
注意:order by 后面如果没有添加 asc/desc,默认为asc升序
双排序:第一个列相同,按照第二个排序;中间逗号隔开
select 列1 as 别名1,列2 as 别名2…from 表名
order by 列1/别名1 asc,列2/别名2 asc
2.待条件查询、模糊查询:
a、select 列1 as 别名1,列2 as 别名2 ……from 表名 as 别名
where 筛选条件
between and
is(判断是否为空;is null;is not null)
b、in:一个列后面跟多个值;
格式: 列名 in(列值1,列值2,列值3……)
Not in(列值1,列值2,列值3……) 查询同一个列的
不在多个值里面的;
c、关系运算符:>,<,<=,>=,<>,!=,==;
d、模糊查询:select 列1 as 别名1,列2 as 别名2……
from 表名 as 别名
where 列名 like %k_
%:多个任意字符;
_:一个任意字符;
e、逻辑关系符:
and or not
3.聚合函数、处理字符、数据函数:
A.聚合函数(5个)
a1:count(*/列名)
解释:“*”统计查询表中数据的总条数
“列名”统计查询的列名的数据为Not Null的总条数
a2:sum(列名):
解释:计算该列中值的总和
eg:select sum(sal)from emp;
a3:avg(列名):计算列值的平均值
Eg:select avg(sal) from emp;
a4:max(列名):求最大值
eg:select max(sal) from emp;
a5:min(列名):求最小值
eg:select min(sal) from emp;
B:常用字符处理函数
b1:distinct:去除重复的列值
用法:
select distinct(列1),distinct(列2),列3…
from 表名
注意:这是Oracle公司专有的;
b2:nvl(列名,默认值):
用法:使数据类型的列都能进行算术运算;
1)若:列名中的列值不为空,
则:nvl(列名,默认值)为正常的列值;
2)若:列名中的列值为Null,
则:nvl(列名,默认值)为默认的数据值;
注意:任何为数据用“+”与null连接,返回的值都为Null;
b3:length(列名/字符串):统计当前列值/字符串中字符的个数
b4:upper(列名/字符串):当前列中的列值或者字符串中的字符小写修改为大写;
b5:lower(列名/字符串):将当前列值/字符串中的大小修改为小写;
b6:substr(列名/字符串,数据1,数据2):
解释:列名/字符串:表示从列值/字符串中截取
数据1:从哪个字符开始截取(从1开始数,往后截取);
如果为负数,则表示倒数的位置的字符开始,
往后截取
数据2:表示截取的个数;
b7:trim(列名/字符串):删除列值/字符串中,两端的空格;
Eg:select trim(‘ hello world ’)from dual ;只删除两端的空格,中间的不删除;
b8:串联字符串的方式:
`b8:1、||:数据库中连接字符串的
`b8:2、concat(字符串1,字符串2):同样也是连接字符串
C:数值处理函数
c1:abs(列名/数值):求出绝对值
c2:sqrt(数值):求数据的平方根
c3:power(底数,指数):求乘方
c4:mod(数据1,数据2):求余数/取模
c5:sign(数值):判断数值的正负性;
Select sign(-100)from dual -- 结果:-1
Select sign(0)from dual -- 结果:0
如果数值是正数,返回值是1,;如果数值是负数;返回值是-1;如果数值是0,返回值是0;
c6:round(数值1,数值2):表示四舍五入;
解释:数值1表示:要参与四舍五入的数值;
数值2表示:
1)如果是正数,表示要保留几位小数
2)如果是0,表示仅留整数
3)如果是负数,表示要对小数点之前的几位进行四舍五入
c7:trunc(数值1,数值2):截取数值
解释:1)数据1:要参与截取的数据
2)数据2:
a、如果是整数,表示截取后,保留几位小数
b、如果是0,表示舍弃所有小数
c、如果是负数,表示从小数点前几位开始舍弃
c8:ceil(数值);表示向上取整
eg:ceil(1.99999999)-------结果:2
c9:floor(数值):表示向下取整;
eg :floor(1.999999999)----结果:1
4.分组查询(group by)
一、分组:根据某一个列将表中的数据分成几组,然后对每一组的数据使用聚合函数(分组函数)。
1、 格式:
Select 列名/聚合函数 from 表名
Where 条件
Group by 列名
Order by 列名/别名/聚合函数 asc/desc
2、 执行的顺序:首先执行where条件,对表中所有的数据进行过滤
然后执行group by 根据某一个列进行分组(对分组以后的每一组数据使用聚合函数)
最后order by 对查询返回的结果进行排序。
5.having子句
1) 格式:
Select 列名/聚合函数
From 表名
Where 条件:对整张表的数据进行过滤
Group by 列名 :分组
having 子句:对分组以后的数据再次进行过滤
order by 列名/聚合函数/别名 asc /desc
2) 执行的顺序:首先where条件,对表中所有的数据进行过滤,然后group by ,根据某一个列对余下的数据进行分组,
之后执行having子句对分组后的数据再次进行过滤,而且经常跟聚合函数结合使用,
最后使用order by 进行排序。【为WHERE过滤指定的是行而不是分组。事实 上,WHERE没有分组的概念;;;。HAVING非常类似于WHERE。事实上,目前为止所 学过的所有类型的WHERE子句都可以用HAVING来替代。唯一的差别是 WHERE过滤行,而HAVING过滤分组】
最后
以上就是苗条大白为你收集整理的MySQL:DQL(数据查询)语句(一):基本查询、模糊查询、聚合函数、having子句的全部内容,希望文章能够帮你解决MySQL:DQL(数据查询)语句(一):基本查询、模糊查询、聚合函数、having子句所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复