MySQL内置函数

MySQL内置函数

🌟🌟hello,各位读者大大们你们好呀🌟🌟

🚀🚀系列专栏:【MySQL的学习】

📝📝本篇内容:日期函数;字符串函数;数学函数;其他函数

⬆⬆⬆⬆上一篇:MySQL的数据类型

💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.日期函数

函数名称 描述
current_date() 当前日期
current_time() 当前时间
current_timestamp() 当前时间戳
date(datetime) 返回datetime参数的日期部分,已经转成可读的日期字符串
date_add(date, interval d_value_type) 在date中添加日期或时间,interval后的数值单位可以是:year、minute、second、day
date_sub(date, interval d_value_type) 在date中减去日期或时间,interval后的数值单位可以是:year、minute、second、day
datediff(date1, date2) 两个日期的差,单位是天
now() 当前日期时间



接下来看两个案例

创建一张表,记录生日

可以看到我们插入now()函数,它的值其实是日期时间,但是我们的date类型是不包含时间的,但是我们也可以插入成功。其实函数在获取时,日期和时间是一起获取的,只不过返回时会进行省略。包括我们插入单纯的时间time()也是可以的,但是这样的设计其实并不好,应该直接报错。


创建一个留言表



查询在2分钟内发布的帖子

也可以使用反过来写

2.字符串函数

函数名称 描述 简单示例
charset(str) 返回字符串字符集 charset('测试') → utf8
concat(string2 [, ...]) 连接字符串 concat('a','b') → 'ab'
instr(string, substring) 返回substring在string中出现的位置,没有返回0 instr('abc','b') → 2
ucase(string2) 转换成大写 ucase('abc') → 'ABC'
lcase(string2) 转换成小写 lcase('ABC') → 'abc'
left(string2, length) 从string2中的左边起取length个字符 left('abc',2) → 'ab'
length(str) string的长度 length('abc') → 3
replace(str, search_str, replace_str) 在str中用replace_str替换search_str replace('a1b','1','2') → 'a2b'
strcmp(string1, string2) 逐字符比较两字符串大小(相等返回0,前者大返回1,后者大返回-1) strcmp('a','b') → -1
substring(str, position [, length]) 从str的position开始,取length个字符(position从1开始) substring('abcd',2,2) → 'bc'
ltrim/rtrim/trim(string) 去除前空格/后空格/前后空格 trim(' abc ') → 'abc'

instr()函数返回的substring出现的位置是从1开始的





前面虽然演示了使用方法,但是没有一些案例,接下来看一些案例

获取emp表的ename列的字符集


要求显示exam_result表中的信息,显示格式:"XXX的语文是XXX分,数学XXX分,英语XXX分

求学生表中学生姓名占用的字节数

注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;

如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数

(与字符集编码有关)

utf8中,汉字占3字节,ASCII码占1个字节,它是一个可变长编码

将EMP表中所有名字中有S的替换成'上海

一般select调用函数不会修改表中内容,除非用什么update

截取EMP表中ename字段的第二个到第三个字符

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

观察trim函数

trim在实际开发中还是很有用的,当进行业务处理会收到很多网络数据,要进行去报头什么的,可能会残留空格,因此可以用到它。或者在用户输入的时候,也可以会出现不应该的空格,我们使用这个函数来去除空格。不过这个函数只能去除左右空格,对中间的空格无效。

3.数学函数

函数名称 描述
abs(number) 绝对值函数
bin(decimal_number) 十进制转换二进制
hex(decimalNumber) 转换成十六进制
conv(number, from_base, to_base) 进制转换
ceiling(number) 向上去整
floor(number) 向下去整
format(number, decimal_places) 格式化,保留小数位数
rand() 返回随机浮点数,范围 [0.0, 1.0)
mod(number, denominator) 取模,求余

来看几个使用例子

其中-10显示的补码,虚拟机是64位机器,所以说是64位




还有两个函数是ceiling和floor,它们都是对于小数的处理,我们来看张图,来了解一下什么是向上取整,向下取整和向0取整



还有一种就是四舍五入,这个就不多说了

4.其他函数

user() 查询当前用户

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串

这个应用可以理解为我们对于用户的密码进行加密,我们看个例子

可能在大家的MySQL上使用,可能无法通过↑↓按键来翻阅上一次的SQL语句,因为这是MySQL识别到了passward,对其进行的数据保护

database()显示当前正在使用的数据库

password()函数,MySQL数据库使用该函数对用户加密,一般都是使用这个,而不是md5。不过在最新的版本中已经弃用,我这边就演示不了了

bash 复制代码
select password('root');
+-------------------------------------------+
| password('root') |
+-------------------------------------------+
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------------------------------------------+

ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

🌸🌸MySQL内置函数大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

相关推荐
ID_云泽2 小时前
MySQL 备份工具分享(三):定时全量备份
数据库·mysql·数据备份
Digitally2 小时前
如何在安卓设备上将照片移动到SD卡
android
IT_陈寒2 小时前
JavaScript开发者必知的5个高效调试技巧,比console.log强10倍!
前端·人工智能·后端
m0_743297422 小时前
将Python Web应用部署到服务器(Docker + Nginx)
jvm·数据库·python
小邓睡不饱耶2 小时前
实战教程:Python爬取北京新发地农产品价格数据并存储到MySQL
开发语言·python·mysql
小箌2 小时前
springboot_02
java·spring boot·后端
可夫小子2 小时前
OpenClaw进阶-Macmini远程访问设置
数据库
超级大福宝2 小时前
集群中服务器的个数为什么最好是奇数个
服务器·分布式·后端
moxiaoran57532 小时前
MySQL分库分表的实现(二)--水平分表
数据库·mysql