MySQL中函数的使用

  • 基本概念
  • 字符串函数
    • char_length()
    • length()
    • concat()
    • concat_ws()
    • insert()
    • upper()
    • lower()
    • left()
    • right()
    • lpad()
    • rpad()
    • ltrim()
    • rtrim()
    • trim()
    • trim(from)
    • repeat()
    • space()
    • replace()
    • strcmp()
    • substring()
    • mid()
    • locate()
    • position(in)
    • instr()
    • reverse()
    • elt()
    • export_set()
    • field()
    • find_in_set()
    • make_set()
    • substring_index()
    • load_file()
  • 条件函数
    • if(expr,v1,v2)
    • ifnull(v1,v2)
    • case
  • 数学函数
    • abs()
    • ceil()
    • floor()
    • rand()
    • sign()
    • pi()
    • truncate()
    • round()
    • pow()
    • sqrt()
    • exp()
    • mod()
    • log()
    • log10()
    • radians()
    • degrees()
    • sin()
    • asin()
    • cos()
    • acos()
    • tan()
    • atan()
    • cot()
  • 日期时间函数
    • curdate()
    • curtime()
    • now()
    • unix_timestamp()
    • from_unixtime()
    • utc_date()
    • utc_time()
    • month()
    • monthname()
    • dayname()
    • dayofweek()
    • weekday()
    • week()
    • dayofyear()
    • dayofmonth()
    • quarter()
    • hour()
    • minute()
    • second()
    • extract()
    • time_to_sec()
    • sec_to_time()
    • to_days()
    • from_days()
    • datediff()
    • adddate()
    • date_add()
    • subdate()
    • addtime()
    • subtime()
    • date_format()
    • time_format()
    • get_format()
  • 系统信息函数
    • version()
    • connection_id()
    • database()
    • user()
    • charset()
    • collation()
    • last_insert_id()
  • 加密函数
    • password()
    • md5
  • 扩展函数
    • 格式化函数-fomat(x,n)
    • 不同进制的数字之间进行转换的函数
    • IP地址与数字相互转换函数
    • 加锁函数和解锁函数
    • 重复执行指定操作的函数
    • 修改指定的字符集函数
    • 转换数据类型函数

基本概念

  • MySQL数据库中包含以下七类函数:

    • 字符串函数
    • 条件函数
    • 数学函数
    • 日期时间函数
    • 系统信息函数
    • 加密函数
    • 扩展函数

字符串函数

  • 字符串函数用于处理MySQL中的字符串数据

char_length()

  • 返回字符串中字符的个数
select char_length('Chova')
5

length()

  • 返回字符串的长度
select length('我是Chova')
-- 中文字符长度为2,英文字符长度为1 --
9

concat()

  • 将多个字符串合并为一个字符串
select concat('Chova','Vea')
ChovaVea

concat_ws()

  • 将多个字符串合并为一个字符串,并以指定的字符串连接
select concat_ws('-','Chova','Vea')
Chova-Vea

insert()

  • 将字符串的指定位置开始的指定长度的位置替换为给定的字符串
select insert('chova',1,1,'C')
Chova

upper()

  • 将字符串中的所有字符变为大写
select upper('Chova')
CHOVA

lower()

  • 将字符串中的所有字符变为小写字母
select lower('Chova')
chova

left()

  • 获取字符串前面的指定个数的字符
select left('Chova',1)
C

right()

  • 获取字符串后面的指定个数的字符
select right('Chova',2)
va

lpad()

  • 使得字符串达到指定的长度在字符串前面填充进指定的字符串
select lpad('Vea',8,'Chova')
ChovaVea

rpad()

  • 使得字符串达到指定的长度在字符串的后面填充进指定的字符串
select rpad('Chova',8,'Vea')
ChovaVea

ltrim()

  • 去掉字符串前面的空格

rtrim()

  • 去掉字符串后面的空格

trim()

  • 去掉字符串前面和后面的空格

trim(from)

  • 去掉前面和后面的指定字符串从指定的字符串中
select trim('Vea' from 'ChovaVea')
Chova

repeat()

  • 将指定的字符串重复指定的次数
select repeat('Vea',3)
VeaVeaVea

space()

  • 获取指定个数的空格

replace()

  • 替换指定字符串中的指定字符串为指定的字符串
select replace('ChovaV','V','Vea')
ChovaVea

strcmp()

  • 比较两个字符串

substring()

  • 获取指定字符串中指定位置开始的指定长度的字符串

mid()

  • 获取指定字符串中指定位置开始的指定长度的字符串

locate()

  • 获取指定字符串在指定字符串中的位置
select locate('V','ChovaVea')
6

position(in)

  • 获取指定字符串在指定字符串中的位置
select position('V' in 'ChovaVea')
6

instr()

  • 获取指定字符串中的指定字符串开始的位置
select instr('Chova','v')
4

reverse()

  • 获取指定字符串的反转字符串
select reverse('aev')
vea

elt()

  • 获取指定位置的字符串
select elt(2,'Chova','Vea')
Vea

export_set()

  • export_set(bits, on, off, bits, on, off, separator, number of bits, number of bits): 返回一个指定处理方式的字符串

    • bits: 将第一个参数的值转换为二进制的值.然后从右向左检查每个位上的值是1还是0
    • on: 如果检查位数是1, 则返回这里on指定的字符串
    • off: 如果检查位数是0, 则返回这里off指定的字符串
    • separator: 指定返回的字符串的分隔符
    • number of bits: 检查位数的长度.即第一个参数转换为二进制的长度,超过位数在前面用0补全
select export_set(5,'Y','N',','6)
-- 5的二进制: 101 --
-- 检查的位数为6, 二进制数表示为: 000101--
'Y','N','Y','N','N','N'

field()

  • 返回指定的字符串在后面的字符串中匹配的位置
select field('Vea','Chova','Vea')
2

find_in_set()

  • find_in_set(’’,’’): 返回指定字符串在指定字符串中匹配的位置

make_set()

  • MAKE_SET(bits,str1,str2,…): 返回一个指定处理方式获取的字符串

    • bits: 将第一个参数的值转换为二进制,可能包含逻辑运算.然后从右向左检查每个位上的值是1还是0
    • str: 每检查一个位后则顺延到下一的字符串
select make_set(1|4,'Chova','Vea')
Chova

substring_index()

  • substring_index(‘s’,‘x’,count): 返回从指定字符串中按照指定分隔符分隔的指定位置分隔的字符串

    • count大于0, 返回指定位置分隔符左边的字符串
    • count小于0, 返回指定位置分隔符右边的字符串
select substring_index('Chova-Vea','-', 1)
Chova

load_file()

  • 读入文件并以字符串的形式返回文件内容

    • 文件必须在服务器上
    • 必须指定到文件的完整路径名
    • 人员必须拥有文件file权限
    • 文件必须所有内容都是可读取的并且小于max_allowed_packet
  • 如果文件不存在或者由于上述原因无法读出则返回null

条件函数

  • 条件函数用于MySQL中的条件判断

if(expr,v1,v2)

  • 如果expr条件成立,返回结果v1
  • 如果expr条件不成立,返回结果v2
select if(1>0,'Y','N')
Y

ifnull(v1,v2)

  • 如果v1的值不为null, 则返回v1
  • 如果v1的值为null, 则返回v2
select ifnull(null,'Chova')
Chova

case

  • case表示函数的开始 ,end表示函数的结束

    • 如果e1成立,则返回v1
    • 如果e2成立,则返回v2
    • 如果全部都不成立,则返回v
  • 当有一个成立之后,后面的语句就不再执行
case when e1 then v1when e2 then v2...else v
end
  • case表示函数的开始 ,end表示函数的结束

    • 如果表达式的值等于e1, 则返回v1
    • 如果表达式的值等于e2, 则返回v2
  • 当有一个成立之后,后面的语句就不再执行
case exprwhen e1 then v1when e2 then v2...else v
end

数学函数

  • 数学函数主要用来处理MySQL中的数值处理,包括整数和浮点数等

abs()

  • 获取数值的绝对值
select abs(-6)
6

ceil()

  • 获取数值的向上取整
select ceil(5.6)
6

floor()

  • 获取数值的向下取证
select floor(6.6)
6

rand()

  • 获取一个01之间的随机数
  • rand(x): 获取一个01之间的随机数,同一个模块下 ,x值相同时获取到的随机数相同
select rand()
0.93099315644334
select rand(6)select rand(6)
0.7137596899542470.713759689954247

sign()

  • 获取数值的符号

    • 如果数值是负数,则返回**-1**
    • 如果数值是0, 则返回0
    • 如果数值是正数,则返回1
select sign(6)
1

pi()

  • 获取一个圆周率的值
select pi()
3.141593

truncate()

  • 获取指定数值保留小数点后面的指定位数.直接获取,不进行四舍五入操作
select truncate(3.141593,2)
3.14

round()

  • 获取数值的整数.按照四舍五入进行获取
select round(6.36)
6
  • round(x,n): 获取指定数值保留小数点后面的指定位数.按照四舍五入进行获取
select round(6.686, 2)
6.69

pow()

  • 获取指定数值的指定幂次方的值
select pow(2,3)
8

sqrt()

  • 获取指定数值的平方根
select sqrt(36)
6

exp()

  • 获取e值的指定幂次方的值
select exp(3)
20.085536923188

mod()

  • 获取指定的两个数相除后的余数
select mod(6,5)
1

log()

  • 获取指定数值的自然对数,即以e为底
select log(20.085536923188)
3

log10()

  • 获取指定数值以10为底的对数
select log10(100)
2

radians()

  • 获取指定角度的弧度
select radians(180)
3.1415926535898

degrees()

  • 获取指定弧度的角度
select degrees(3.1415926535898)
180

sin()

  • 获取指定弧度的正弦值
select sin(radians(30))
0.5

asin()

  • 获取指定弧度的反正弦值

cos()

  • 获取指定弧度的余弦值

acos()

  • 获取指定弧度的反余弦值

tan()

  • 获取指定弧度的正切值

atan()

  • 获取指定弧度的反正切值

cot()

  • 获取指定弧度的余切值

日期时间函数

  • 日期时间函数主要用于处理MySQL中的日期时间

curdate()

  • 获取当前的日期
select curdate()
2021-04-02

curtime()

  • 获取当前的时间
select curtime()
16:16:16

now()

  • 获取当前的日期和时间
select now()
2021-04-02 16:16:16

unix_timestamp()

  • 获取当前时间的时间戳格式
select unix_timestamp()
1617351376
  • unix_timestamp(d): 获取指定日期时间的时间戳格式
select unix_timestamp('2021-04-02 16:16:16')
1617351376

from_unixtime()

  • 获取指定时间戳的日期时间格式
select from_unixtime(1617351376)
2021-04-02 16:16:16

utc_date()

  • 获取UTC日期
select utc_date()
2021-04-02

utc_time()

  • 获取UTC时间
select utc_time()
08:16:16

month()

  • 获取指定日期时间所属的月份,值在112之间
select month('2021-04-02 16:16:16')
4

monthname()

  • 获取指定日期时间所属的月份名称
select monthname('2021-04-02 16:16:16')
April

dayname()

  • 获取指定日期时间所属的星期的名称
select dayname('2021-04-02 16:16:16')
Friday

dayofweek()

  • 获取指定日期时间是一周中的第几天 .17表示星期日到星期六
select dayofweek('2021-04-02 16:16:16')
6

weekday()

  • 获取指定日期时间是一周中的第几天 .06表示星期一到星期日
select weekday('2021-04-02 16:16:16')
4

week()

  • 获取指定日期时间是当年的第几个星期.值在053之间
select week('2021-04-02 16:16:16')
13

dayofyear()

  • 获取指定日期时间是当年的第几天
select dayofyear('2021-04-02 16:16:16')
92

dayofmonth()

  • 获取指定日期时间是当月的第几天
select dayofmonth('2021-04-02 16:16:16')
2

quarter()

  • 获取指定日期时间是当年的第几个季度
select quarter('2021-04-02 16:16:16')
2

hour()

  • 获取指定日期或时间中的小时值
select hour('16:16:16')
16

minute()

  • 获取指定日期或时间中的分钟值
select minute('16:16:16')
16

second()

  • 获取指定日期或之间中的秒钟值
select second('16:16:16')
16

extract()

  • extract(type from d): 获取指定类型在指定日期时间中的值

    • type的值:

      • microsecond
      • second
      • minute
      • hour
      • day
      • week
      • month
      • quarter
      • year
      • second_microsecond
      • minute_microsecond
      • minute_second
      • hour_microsecond
      • hour_second
      • hour_minute
      • day_microsecond
      • day_second
      • day_minute
      • day_hour
      • year_month

time_to_sec()

  • 获取指定时间的秒值
select time_to_sec('16:16:16')
58576

sec_to_time()

  • 获取指定的秒值转换的时间的值
select sec_to_time(58576)
16:16:16

to_days()

  • 获取距离00000101日的天数
select to_days('2021-04-02 16:16:16')
738247

from_days()

  • 获取距离00000101日后指定天数的日期
select from_days(738247)
2021-04-02

datediff()

  • 获取指定的两个日期之间相隔的天数. 前面的日期减去后面日期的天数
select datediff('2021-05-02', '2021-04-02')
30

adddate()

  • 获取指定日期时间之后指定天数的日期时间
select adddate('2021-04-02', 30)
2021-05-02
  • adddate(d, interval expr type): 获取指定日期时间之后指定时间后的日期时间

    • type的值:

      • microsecond
      • second
      • minute
      • hour
      • day
      • week
      • month
      • quarter
      • year
      • second_microsecond
      • minute_microsecond
      • minute_second
      • hour_microsecond
      • hour_second
      • hour_minute
      • day_microsecond
      • day_second
      • day_minute
      • day_hour
      • year_month

date_add()

  • date_add(d, interval expr type): 获取指定日期时间之后指定时间的日期时间

    • type的值:

      • microsecond
      • second
      • minute
      • hour
      • day
      • week
      • month
      • quarter
      • year
      • second_microsecond
      • minute_microsecond
      • minute_second
      • hour_microsecond
      • hour_second
      • hour_minute
      • day_microsecond
      • day_second
      • day_minute
      • day_hour
      • year_month

subdate()

  • 获取指定日期时间之前指定天数的时间
select subdate('2021-05-02',30)
2021-04-02
  • subdate(d, interval expr type): 获取指定日期时间之前指定时间的日期时间

    • type的值:

      • microsecond
      • second
      • minute
      • hour
      • day
      • week
      • month
      • quarter
      • year
      • second_microsecond
      • minute_microsecond
      • minute_second
      • hour_microsecond
      • hour_second
      • hour_minute
      • day_microsecond
      • day_second
      • day_minute
      • day_hour
      • year_month

addtime()

  • 获取指定日期时间之后指定秒数的日期时间
select addtime('2021-04-02 16:16:16',20)
2021-04-02 16:16:36

subtime()

  • 获取指定日期时间之前指定秒数的日期时间
select subtime('2021-04-02 16:16:16',10)
2021-04-02 16:16:06

date_format()

  • 获取指定日期时间的指定格式输出的日期时间
select date_format('2021-04-02 16:16:16','%Y-%m-%d %r')
2021-04-02 04:16:16 PM

time_format()

  • 获取指定时间的指定格式输出的时间
select time_format('06:16:16','%r')
06:16:16 AM

get_format()

  • get_format(type,s): 获取指定时间在指定国家地区的输出格式

    • type的值:

      • microsecond
      • second
      • minute
      • hour
      • day
      • week
      • month
      • quarter
      • year
      • second_microsecond
      • minute_microsecond
      • minute_second
      • hour_microsecond
      • hour_second
      • hour_minute
      • day_microsecond
      • day_second
      • day_minute
      • day_hour
      • year_month
select get_format(date, 'usa')
%m.%d.%Y

系统信息函数

  • 系统信息函数用来查询MySQL数据库相关的系统信息

version()

  • 获取数据库的版本号

connection_id()

  • 返回服务器的连接数

database()

  • database()
  • schema
    • 获取当前的数据库名称

user()

  • user()
  • system_user()
  • session_user()
  • current_user()
  • current_user
    • 获取数据库的当前用户

charset()

  • 获取指定字符串的字符集

collation()

  • 获取指定字符串的字符排列方式

last_insert_id()

  • 获取最新生成的AUTO_INCREMENT的值

加密函数

  • 加密函数用来对MySQL中的数据进行加密

password()

  • 获取指定字符串的加密后的值
select password('Chova')
*8C4103E52796CCF4A350218583E396B47CB15311

md5

  • md5(str): 可以对字符串进行散列,可以用于对一些不需要进行解密的数据进行加密
select md5('Chova')
8c94d8f085f29ee2785e796e60e13c07

扩展函数

格式化函数-fomat(x,n)

  • 获取指定数字的小数点后面的指定位数
select format(3.141592643,5)
3.14159

不同进制的数字之间进行转换的函数

  • ASCII(s): 返回字符串第一个字符的ASCII码值
  • BIN(x): 返回x的二进制编码
  • HEX(x): 返回x的十六进制编码
  • OCT(x): 返回x的八进制编码
  • CONV(x,f1,f2): 返回f1进制数变为f2进制数

IP地址与数字相互转换函数

  • inet_aton(ip): 获取指定IP字符串的数值表示
select inet_aton('192.168.0.1')
3232235521
  • inet_ntoa(n): 获取指定数值的IP字符串表示
select inet_ntoa(3232235521)
192.168.0.1

加锁函数和解锁函数

  • get_lock(name,time): 定义一个名称为name, 持续时间长度为time的锁

    • 如果锁定成功,则返回1
    • 如果尝试超时,则返回0
    • 如果发生错误,则返回null
select get_lock('mysql',10)
1
  • release_lock(name): 释放函数名为name的锁

    • 如果释放成功,则返回1
    • 如果尝试超时,则返回0
    • 如果发生错误,则返回null
select release_lock('mysql')
1
  • is_free_lock(name): 判断是否已经使用过名称为name的锁

    • 如果已经使用过,则返回1
    • 如果未使用过,则返回0
select is_free_lock('mysql')
0

重复执行指定操作的函数

  • benchmark(count,expr): 将指定的表达式expr操作重复执行count次,然后返回执行时间. 可以用来判断MySQL处理表达式的速度
select benchmark(10000,now())
0

修改指定的字符集函数

  • convert(s using charset): 将指定字符串s的字符集变为charset字符
select charset(convert('Chova' using utf-8))
utf-8

转换数据类型函数

  • cast(x as type)
  • convert(x as type)
    • 转换数据类型只对以下数据类型生效:

      • binary
      • char
      • date
      • datetime
      • time
      • signed integer
      • unsigned integer
select cast('565' as unsigned integer) + 1
566
-- MySQL可以默认将字符串类型转换为数字类型 --
select '565'+1
566
select convert(now(),date)
2021-04-02

Java中的MySQL函数的使用相关推荐

  1. 第68节:Java中的MYSQL运用从小白到大牛

    第68节:Java中的MYSQL运用从小白到大牛 前言 学习java必备要求,学会运用!!! 常见关系化数据库 BootStrap是轻量级开发响应式页面的框架,全局css组件,js插件.栅格系统是将页 ...

  2. Java中的回调函数学习-深入浅出

    Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...

  3. java中的string函数_java中string.trim()函数的作用实例及源码

    trim()的作用:去掉字符串首尾的空格. public static void main(String arg[]){ String a=" hello world "; Str ...

  4. Java中的split函数

    Java中的 split  函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回: String str="1234@abc"; String[] a = s ...

  5. Java中获取当前函数名

    Java中获取当前函数名 博客分类: Java JavathreadJDKIDEA  有时候我们需要在程序中获取当前运行的函数名,如何简单的做到这点呢?我们可以用getStackTrace轻松搞定. ...

  6. java中主函数_(基础)java中的主函数

    Java中的主函数 1.由JVM调用:JVM通过类名直接调用主函数(静态方法) 2.主函数的形参是一个字符串数组: String[] args 3.运行主函数时,如果没有向其传递参数,JVM会自动创建 ...

  7. java中函数的调用,java中如何调用函数

    java动态调用函数,Java 中使用动态代码,java函数调用,java中如何调用函数 如何在 Java 中调用 C 函数 宗薇 [期刊名称]<网络新媒体技术> [年(卷),期]2000 ...

  8. java反转函数_在JAVA中,下列哪个函数可用于字符串的反转?

    在JAVA中,下列哪个函数可用于字符串的反转? 更多相关问题 很多危机是无法准确预测的,必须为危机做好准备,包括().通信计划以及重要关系的建立等. (A) 危 幼儿园科技小制作可分为模型类.动力类. ...

  9. java中string.trim()函数的作用

    java中string.trim()函数的作用 trim的中文含义是修剪,通过其字面意思,我们不难理解这个函数是对字符串进行一定程度的修改删除.那么,具体是如何实现的呢? public static ...

最新文章

  1. Android 依赖库发布(上传 Library 到 JCenter)gradle最高支持4.4
  2. python ssh模块有哪些_Python paramiko模块(实现ssh)
  3. LocalDateTime、OffsetDateTime、ZonedDateTime互转,这一篇绝对喂饱你
  4. mysql f参数_MySQL 数据类型
  5. 【Android 逆向】Android 逆向通用工具开发 ( PC 端工程分析 | 网络初始化操作 | PC 端工程核心业务逻辑 )
  6. Android监听ScrollView滑动到顶端和底部
  7. android+p+华为手机,给1.9亿用户32款老机型进行安卓P升级 华为值吗?
  8. canvas 绘制跟随鼠标移动的线条
  9. CSS3 :nth-child() ,nth-of-type(),nth-last-child() ,nth-last-of-type()
  10. 揭秘React同构应用
  11. 如何用一头死驴赚到998元
  12. 中柏平板电脑安linux,中柏平板电脑重装系统
  13. Win10 专业版激活!
  14. 三菱5uplc伺服电机指令_实例 | PLC触摸屏控制伺服电机程序设计
  15. 正运动技术 运动控制卡应用开发教程之C#
  16. BUUCTF REAL
  17. python用xlwings 隐藏Excel某行或某列
  18. Excise_Thread1
  19. Centos 修改镜像源为阿里云
  20. 元素定位163邮箱账号密码输入框问题,iframe嵌套

热门文章

  1. 【绘图必备】国际色卡
  2. Opencv交通标志识别
  3. 什么是App个性化?为什么App安装要做个性化?
  4. BigDecimal保留两位小数
  5. “后 Hadoop 时代”,大数据从业者如何应对新技术趋势带来的挑战?
  6. springboot+mybatis+mysql搭建后端接口案例
  7. linux系统ssd固态硬盘不识别,开机不能启动.
  8. 理性的北方大学与物质的南方高校十大对抗(转载)
  9. [转载]JDO之前世今生
  10. 给有序,无序列表项前的符号添加样式