MySQL·内置函数

目录

函数

日期函数

案例1:创建一张表,记录生日

案例2:创建一个留言表

案例3:请查询在2分钟内发布的帖子

字符串函数

[案例1: 获取emp表的ename列的字符集](#案例1: 获取emp表的ename列的字符集)

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

案例3:求学生表中学生姓名占用的字节数

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

案例5:截取EMP表中ename字段的第二个到第三个字符

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

数学函数

补充:向上取整与向下取整的理解

其他函数


函数

日期函数

通常日期就是指的年月日,时间就是指的时分秒,下面是使用案例

now() 和 current_timestamp()的使用是一样的

date()可以用来提前时间的左半部分

里面也可以跟函数

date_add() 同理里面也可以跟着函数

有增加自然就有减去 date_sub()

计算两个年份之间相差多少天数,datediff() ,这个就是前者与后者相减,所以可以为负数

案例1:创建一张表,记录生日

首先创建一张表来进行测试

插入两条数据

使用函数进行插入

使用current_time()也可以插入,不过会警告,因为用错了

当然你去使用current_timestamp()时间戳也行,就像编程那边的隐式类型转换,不过实际使用是不建议这样去插入的

案例2:创建一个留言表

同理我们创建一张表进行测试

插入数据

查看数据,只需要看日期的话,可以使用函数

案例3:请查询在2分钟内发布的帖子

使用上一个案例的表做演示

字符串函数

charset:查看字符集

concat:字符拼接函数

instr:查看目标字符在原字符串中的位置,下标从1开始,没找到就返回0

ucase和lcase:转化大小写

left:提前字符,后者跟着提前长度

当然也有right函数

length:显示字符串的长度

ltrim与rtrim:去除左边\右边的空格

通常用在用户进行输入的时候会不小心输入空格,程序员就可以用这个进行去除

案例1: 获取emp表的ename列的字符集

使用上一篇文章使用的表结构进行演示,使用场景:排查错误乱码,通乱码一般是由于编码格式的不同所造成的,所以排除编码错误通常可以解决此类问题

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

找到之前文章中所用的一张表结构

利用concat进行拼接

案例3:求学生表中学生姓名占用的字节数

这里也可以看出来一个中文占3个字节,注意不要和字符数搞错了

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

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

(与字符集编码有关)

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

还是使用这张员工表

我们把查询结果进行了替换,当然这里指的是查询结果,实际上,原表是没有进行修改的

案例5:截取EMP表中ename字段的第二个到第三个字符

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

第一步:截取左右俩个部分

第二步:将其首字母小写化

第三步:拼接

数学函数

abs:绝对值

bin:转为二进制显示

hex:转为十六进制显示

conv:从一个进制转为另一个进制

format:格式化显示

mod:取模

rand:随机数(0~1浮点数随机)

当然你可以嵌套其他的函数来随机到你想要的数据

ceiling与floor:向上向下取整

补充:向上取整与向下取整的理解

ceiling:向上取整(即向数值变大的方向取整)

这个在银行中就是使用的向上取整

floor:向下取整(即使数值变小的取整)

其他函数

user() 查询当前用户

不过因为还没有配置登入机,没有用户,目前是使用免密码登入的,后序再对这方面进行介绍

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

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

就是对数据进行摘要,数据库中保存密码之类的敏感数据是不能直接进行插入保存的,通常需要对其进行加密操作,这里的md5,虽然不是加密,但是也算是第一个防止数据泄露的防范措施了

创建一张表

一般来说都是像第二种插入的方式

我们查询当然也要进行md5摘要操作

password()函数,MySQL数据库使用该函数对用户加密

通常我们在数据库进行加密操作是用这个函数来进行的,同理它加密出来的也是等长的

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

这个很像C++中 a==b? a : b,三目运算符的作用

相关推荐
做梦敲代码39 分钟前
达梦数据库-读写分离集群部署
数据库·达梦数据库
苹果醋31 小时前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx
小蜗牛慢慢爬行1 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
hanbarger1 小时前
nosql,Redis,minio,elasticsearch
数据库·redis·nosql
微服务 spring cloud2 小时前
配置PostgreSQL用于集成测试的步骤
数据库·postgresql·集成测试
先睡2 小时前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
弗罗里达老大爷2 小时前
Redis
数据库·redis·缓存
仰望大佬0072 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
学不透java不改名3 小时前
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
数据库