数据库:SQL中的函数

目录

一、单行函数

1.特点:返回结果是1条记录

2.分类:数学函数、字符串函数、日期函数

二、聚合函数(重点)

三、分组函数(重点)

1.语法格式

2.示例代码

四、加密函数


一、单行函数

1.特点:返回结果是1条记录

2.分类:数学函数、字符串函数、日期函数

2.1 数学函数

select PI();#圆周率
select CEIL(12.3);#向上取整,结果13
select CEIL(-12.3);#结果-12
select FLOOR(12.3);#向下取整,结果12
select ROUND(12.3);#按四舍五入取整数,结果是12
select ROUND(12.54,1);#1表示从小数点开始向右第一位开始四舍五入,结果是12.5
select ROUND(12.54,-1);#-1表示从小数点开始向左第一位开始四舍五入,结果是10
select abs(-10);#去绝对值
select RAND();#随机数
select POW(2,3);#幂运算
select SQRT(25);#开方

2.2 字符串函数

select lower(str) from emp;#表达式作为参数
select LOWER(ename) from emp;#字段作为参数
select lower('THIS IS');#值作为参数
select upper('this is');#值作为参数
select CONCAT(str1,str2,...);#连接字符串
select CONCAT('e-',ename) from emp;#连接字符串
select substr('abcdef',1,3);#取字串,从第1个位置开始,取3个,结果abc
select replace('abcdef','cd','aa');#替换把第2个参数值替换成第3个参数值
select trim('   aa   ');#去除前后空格
select length('abc');#取字符串的长度
select length(ename) from emp;
select LPAD(‘abc’,10,'*');#左填充:第2个参数表示指定长度,第3个参数表示填充内容
select RPAD(‘abc’,10,'*');#右填充

2.3 日期函数

select NOW();#当前时间
select SYSDATE();#系统日期
select current_timestamp();#当前时间戳
select current_time();#当前时间
select current_date();#当前日期
select year('1998-09-10');#取年份
select year(new());#取当前年份
#日期计算
select date_add(new(),interval 2 day);#两天以后的日期时间
select date_add(new(),interval 2 month);#两个月以后的日期时间
select last_day('2018-02-04');#计算参数日期的月份的最后一天的日期

二、聚合函数(重点)

1.常用的聚合函数

count():统计数目

sum():求和

max():求最大值

min():求最小值

avg():求平均值

2.示例代码

select count(*) from emp;#统计记录数
select count(1) from emp;#统计记录数
select count(comm) from emp;#统计非空字段的数目
select sum(sal) from emp;#求和
select max(sal) from emp;#求最大值
select min(sal) from emp;#求最小值
select avg(sal) from emp;#求平均值

三、分组函数(重点)

1.语法格式

group by 分组条件 [having 检索条件];

说明:

  • 经常和聚合函数一起使用
  • having 表示在分组之后实现检索
  • 在使用分组时,select 后面可以跟聚合函数,分组字段,但其他字段不能写。

  • 注意:有多少个分组就返回多少条记录。

2.示例代码

#每个部门平均工资,每个部门返回一个平局值
#select deptno,avg(sal),ename from emp group by deptno;#select后面不能跟ename字段
select deptno,avg(sal) from emp group by deptno;

#注意:条件的执行顺序是从左往后执行
#where必须放在group by之前使用
#where中不能使用聚合函数
#求平均工资大于2000的部门编号和平均工资
select deptno, avg(sal) nsal from emp group by deptno having nsal > 2000;

四、加密函数

#java中的加密可逆的有:base64.encode() Base64.decode();不可逆的有:MD5
select MD5('root');
select SHA('root');
#数据库用户密码就是用这个加密的
select PASSWORD('root');
#用处:
#1.在以后开发系统中,涉及到用户密码均需加密
#2.登录验证时,使用相同的加密函数计算后即可进行对比验证

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值