3、数据库操作语句:MySql函数

文章详细介绍了MySQL中的各种函数,包括数学函数如单行函数、三角函数、角度与弧度转换、指数和对数;字符串和时间日期函数,如日期格式化和解析;流程控制函数如IF和CASE;以及加密解密和信息函数。特别提到了如ATAN2、MD5、SHA、INET_ATON等特定函数的使用和示例。
摘要由CSDN通过智能技术生成

1、数学函数

 

 

1)单行函数可以嵌套

例如:select truncate(round(123.456,2),0) from dual;//结果:123

2)三角函数

 

举例:

ATAN2(M,N)函数返回两个参数的反正切值。 ATAN(X)函数相比,ATAN2(M,N)需要两个参数,例如有两个点point(x1,y1)point(x2,y2),使用ATAN(X)函数计算反正切值为ATAN((y2-y1)/(x2-x1)),使用ATAN2(M,N)计算反正切值则为ATAN2(y2-y1,x2-x1)。由使用方式可以看出,当x2-x1等于0时,ATAN(X)函数会报错,而ATAN2(M,N)函数则仍然可以计算。

2、角度与弧度互换函数

 

3、指数和对数

 

4、进制之间的转换

 

例如:select bin(10),hex(10),oct(10),conv(10,2,8) from dual;//结果:1010,a,12,2

5、字符串函数

 

 

注意:MySQL中,字符串的位置是从1开始的。

6、时间日期函数

 7、日期与时间戳的转换

 8、获取月份、星期、星期数、天数等函数

 9、日期的操作函数

 EXTRACT(type FROM date)函数中type的取值与含义:

 10、时间和秒钟的转换

 11、计算日期和时间的函数

1)第一组

 上述函数中type的取值:

 2)第二组

 

12、日期的格式化与解析

 

上述非GET_FORMAT函数中fmt参数常用的格式符:

格式符   说明                                                         格式符    说明

格式化

举例:select date_format(curtime(),%Y-%M-D’) from dual;

//curtime()获取当前时间年月日,以%Y-%M-%D的格式返回

解析:格式化的逆过程

举例:select str_to_date('2021-October-25th 11:37:30 Monday 1','%Y-%M-%D %h:%i:%s %W %w') from dual;

//结果:2021-10-25 113730

GET_FORMAT函数中date_type和format_type参数取值如下:

              日期类型                               格式化类型                              返回的格式字符串

               DATE                                       USA                                       %m.%d.%Y

 

Select get_format(date'usa') from dual;//结果:%m.%d.%Y

13、流程控制函数

 1)If(value,value1,value2)

Select if(1>0,'正确','错误') from dual//结果:正确

例如:Select last_name,salary,if(salary>=6000,'高工资','低工资') details from employees;

2)Case when….then….when….then….else…end类似Java中的if…else if…lese

例如:Select last_name,salary,case when salary>=15000 then '白骨精' when salary>=10000 then '潜力股' else salary end “details” from employees;

3)Case expr when…then…when…then…else…end类似于Javaswitch…case

例如:select last_name,department_id,salary,case department_id when 10 then salary*1.1 when 20 then salary*1.2 when 30 then salary*1.3 end “details” from employees where department_id in(10,20,30);

14、加密与解密函数

 1)Password(str)在MySQL8.0中不可用。加密结果不可逆

Select password('mysql') from dual;

2)MD5不可逆加密

Select MD5('mysql') from dual;

3)Sha(str)MD5(str)加密更安全,且是不可逆加密

Select sha('mysql') from dual;

4)Encode (value,password_seed)decode(value,password_seed)MySQL8.0中不可用, Encode (value,password_seed)加密结果可逆; decode(value,password_seed)解密encode加密的密码。

例如:select encode('atguigu','mysql'),decode(encode('atguigu','mysql'),'mysql') from dual;

15、MySQL信息函数

 Select version(),connection_id(),database() from dual;

16、其他函数

 Select format(123.123,2),conv(16,10,2) from dual;//结果:123.12,10000

1)inet_aton()ip地址类似于加密处理,inet_ntoa()IP地址类似于解密

select inet_aton('192.168.1.100') ,inet_ntoa(3232235876)from dual;//结果:3232235876

转换的规则:以“192.168.1.100”为例,计算方式为192乘以2563次方,加上168乘以2562次方,加上1乘以256,再加上

100

2)benchmark(n,expr)用于测试表达式的执行效率

select benchmark(10000,md5('mysql')) from dual;

3)convert(value using char_code)实现字符集的转换

select charset('atguigu'),convert('atguigu' using 'utf8mb4') from dual;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值