目录

聚合函数

分组查询

内置函数

日期函数

字符串函数

数学函数


聚合函数

COUNT:返回查询到的数据的数量

SUM:返回查询到的数据的总和(数字)

AVG:返回数据的平均值

MAX:返回查询到的数据的最大值

MIN:返回查询到的数据的最小值

count

sum

max,avg

分组查询

准备三个表:

部门表(部门编号(deptno)。部门名称(dname)。部门所在地点(loc))

员工表(雇员编号(empno)。雇员姓名(ename)。雇员职位(job)。雇员领导编(mgr)。雇佣时间(hiredate)。工资月薪(sal)。奖金(comm)。部门编号(deptno)。

工资等级表 等级(grade)。此等级最低工资(losal)。此等级最高工资(hisal)。

如下:

显示每个部门的平均工资和最高工资

使用group by子句中指明按照部门号进行分组,在select语句中使用avg函数和max函数,分别查询每个部门的平均工资和最高工资

补充:SQL语句会先将表中的数据按照部门号进行分组,然后各自在组内做聚合查询得到每个组的平均工资和最高工资。

显示每个部门的每种岗位的平均工资和最低工资

HAVING 条件

显示平均工资低于2000的部门和它的平均工资

上条SQL顺序:from emp,group by,select,having

查询数据时,SQL中各语句的执行顺序如下:

  1. 根据where子句筛选出符合条件的记录。
  2. 根据group by子句对数据进行分组。
  3. 将分组后的数据依次执行select语句。
  4. 根据having子句对分组后的数据进行进一步筛选。
  5. 根据order by子句对数据进行排序。
  6. 根据limit子句筛选若干条记录进行显示。

内置函数

日期函数

current_date():获取当前日期

current_time():获取当前时间

current_timestamp():获取当前时间戳

now():获取当前日期时间

date(datetime):获取datetime参数的日期部分

date_add(date, interval d_value_type):在date中添加日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second

date_sub(date, interval d_value_type)在date中减去日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second

datediff(date1, date2)获取两个日期的差,单位是天

对部分进行举例:

字符串函数

charset(str):获取字符串使用的字符集

concat(str1, str2 [, …]):获取连接后的字符串

instr(str, substr):获取substr在str中首次出现的位置,没有出现返回0

ucase(str),lcase(str):大小写转换

left(str, length):从字符串的左边开始,向后截取length个字符

length(str):获取字符串占用的字节数

replace(str, search_str, replace_str):将字符串中的search_str替换成replace_st

strcmp(str1, str2):逐字符比较两个字符串的大小

substring(str, position ,[length]):从字符串的position开始,向后截取length个字符

ltrim(str)、rtrim(str)、trim(str):去除字符串的前空格、后空格、前后空格

对部分进行举例:

charset:

concat:

length

substring

replace

以首字母小写的方式显示员工表中所有员工的姓名

数学函数

abs(number):取绝对值

rand():生成随机数

ceiling(number):向上取整

floor(number):向下取整

bin(decimal_number):十进制转换成二进制

conv(number, from_base, to_base):from_base进制转换成to_base进制

format(number, n):格式化,保留n位小数(四舍五入)

mod(number, denominator):求余

例如: