数据库函数

一、数据库函数的概念

函数能对查询结果进行一定的操作,包括系统函数、字符串函数、日期时间函数、标量函数、聚合函数等。
这里的函数均是使用mysql函数,与sql server函数可能不一样。
函数返回的结果集需要查询才能显示。

select user();

二、系统函数

系统函数是对mysql服务器和数据库对象进行操作,返回服务器配置和数据库对象数值等信息。

函数名称函数功能
user( )返回用户名
database( )返回当前会话的数据库名称
version( )返回数据库的版本号
charset(str)返回字符串str的字符集

三、日期和时间函数

函数名称函数功能
dayofweek(date)返回日期date的星期索引,(0=星期一,1=星期二, ……6= 星期天)
dayofmonth(date)返回date的月份中的日期,范围1到12
dayofyear(date)返回date在一年中的日数,在1到366范围内
month(date)返回date的月份,范围1到12
dayname(date)返回date的星期名字。
monthname(date)返回date的月份名字。
quarter(date)返回date一年中的季度,范围1到4。
week(date,first)返回date的周数。first参数是指一周的第一天是星期几。
year(date)返回date的年份
hour(time)返回time的小时
minute(time)返回time的分钟
second(time)返回time的秒数
current_date()以‘YYYY-MM-DD’或YYYYMMDD格式返回今天日期值
current_time()以‘HH:MM:SS’或HHMMSS格式返回当前时间值
now()以‘YYYY-MM-DD HH:MM:SS’或YYYYMMDDHHMMSS格式返回当前的日期和时间
  • (date) 的格式:‘2020-02-11’

四、数学函数

函数名称函数功能
abs(x)返回x的绝对值
mod(x,y)返回x被y除的余数
rand()返回0 到 1 内的随机值
round(x)返回x的四舍五入的一个整数
ceil(x)返回大于 x 的最小整数值 ,上取整
floor(x)返回小于 x 的最大整数值,下取整
truncate(x,y)返回数字 x 截断为 y 位小数的结果,只保留整数
format(x,n)将数字x进行格式化,将x保留到小数点后n位

五、字符串函数

函数名称函数功能
concat(str1,str2,…)返回一个str1,str2,…连接起来的字符串
lengrh(str)返回字符串str的长度
locate(substr,str)返回子串substr在字符串str第一个出现的位置
left(str,x)返回字符串str的最左面x个字符
right(str,x)返回字符串str的最右面x个字符
substring(str,x,y)从字符串str的起始位置x开始(包括x)返回一个y长度的字符串
trim(str)去掉字符串行尾和行头的空格
Ltrim(str)去掉字符串 str 左侧的空格
Rtrim(str)去掉字符串 str 行尾的空格
replace(str,a,b)返回字符串str,其字符串a的所有出现由字符串b代替
repeat(str,count)返回由重复count次的字符串str组成的一个字符串
reverse(str)返回颠倒字符顺序的字符串str
insert(str,x,y,instr)将字符串 str 从第 x 位置开始(包括x),y 个字符长的子串替换为字符串 instr
lower(str)将字符串 str 中所有字符变为小写
upper(str)将字符串 str 中所有字符变为大写
Lpad(str,n,pad)用字符串 pad 对 str 最左边进行填充,直到长度为 n 个字符长度
Rpad(str,n,pad用字符串 pad 对 str 最右边进行填充,直到长度为 n 个字符长度
  • locate():如果substr不是在str里面,返回0
  • repeat():如果count <= 0,返回一个空字符串。如果str或count是NULL,返回NULL。

六、控制流程函数

函数名称函数功能
if(value, Tstr,Fstr)如果 value 是真,返回Tstr;否则返回Fstr
case when [value1] then [result1] else [result0] end如果 value1 是真,返回 result1,否则返回 result0
case [expr] when [value1] then [result1] when [value2] then [result2] else [result0] end如果 expr 等于 value1,返回 result1,如果 expr 等于 value2,返回 result2,否则返回 default
ifnull(value1,value2)如果 value1 不为空返回 value1,否则返回 value2
strcmp(str1,str2)如果str1>str2返回1,str1=str2反回0,str1<str2返回-1
  • strcmp():当str为字符串时,比较的是字符数量。当str为数字类型时,比较的是数字大小。

七、加密函数

函数名称函数功能
password(str)返回字符串 str 的加密版本
md5(str)返回字符串 str 的 MD5 值
encode(str,pwd_str)使用字符串pswd_str来加密字符串str
decode(crypt,pwd_str)使用字符串pswd_str来为crypt_str解密。
  • 数据库用户中的密码必须使用password函数加密。
  • encode()/decode:加密的结果是一个二进制数,必须使用BLOB类型的字段来保存

八、聚合函数

函数名称函数功能
sum(column)将column列的值求和,只能对数字类型使用
avg(column)将column列的值求平均值,只能对数字类型使用
max(column)将column列的值求最大值,只能对数字类型使用
min(column)将column列的值求最小值,只能对数字类型使用
count(column)统计表中column中有多少条记录,括号里为(*)时为统计表中所有记录
group by创建多个字段的汇总值,但是必须和聚合函数同时使用
  • count()不能和distinct一起使用来消除重复值
  • group by 聚合函数值能求出单个字段的汇总值,如果对相应字段或表达式使用group by,能够把表中的记录分组分类,并对组中的数据汇总
  • group by 不能对数据类型为text、image、bit的字段使用
SELECT Ssex,count(*) as 人数 FROM student.student group by Ssex;

在这里插入图片描述

九、其他函数

函数名称函数功能
benchmark(count,expt)将表达式expr重复执行count次,然后返回执行时间,用来判断MySQL处理表达式的速度
convert(str using charset)将字符串str的字符集变成charset所写的类型
bin(x)返回x的二进制编码
oct(x)返回x的八进制编码
hex(x)返回x的十六进制编码

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值