暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL基础篇 (三)​

李子捌 2021-06-28
243

MySQL函数

MySQL 有很多内置的函数,以下列出了部分函数的说明。



常用函数

数据函数

/* 取绝对值 */
SELECT ABS(-10);

/* 向上取整 */
SELECT CEILING(9.1);

/* 向下取整 */
SELECT FLOOR(9.9);

/* 返回一个0-1之间的随机数 0.7898709874505838 */
SELECT RAND();

/* 符号函数 正数返回1、负数返回-1、0返回0*/
SELECT SIGN(-1)


字符串函数

/* 返回字符串的长度 */
SELECT CHAR_LENGTH('成功绝不是偶然')

/* 字符串拼接 */
SELECT CONCAT('李','子','捌')

/* 字符串插入 注意第一个参数是开始替换的位置索引从1开始,不是0开始, 第二个参数是替换的长度*/
SELECT INSERT('我是李子捌我热爱三国',7,2,'非常热爱');

/* 转大写 */
SELECT UPPER('liziba');

/* 转小写 */
SELECT LOWER('LIZIBA');

/* 从左边截取 */
SELECT LEFT('李子捌热爱编程',3);

/* 从右边截取 */
SELECT RIGHT('李子捌热爱编程',4);

/* 替换指定字符串 */
SELECT REPLACE('李子捌说李子捌热爱编程','李子捌','借力好风');

/* 字符串截取 第一个参数为起始索引,第二个参数为字符串长度*/
SELECT SUBSTR('李子捌说李子捌热爱编程',5, 7);


日期和时间函数

/* 获取当前日期 2021-01-01*/
SELECT CURRENT_DATE();

/* 获取当前日期 2021-01-01*/
SELECT CURDATE();

/* 获取当前日期 + 时间 2021-01-01 13:04:48 */
SELECT NOW();


/* 获取当前日期 + 时间 2021-01-01 13:05:48*/
SELECT LOCALTIME();

/* 获取当前日期 + 时间 2021-01-01 13:05:53*/
SELECT SYSDATE();


/* 获取年、月、日、时、分、秒 */
SELECT YEAR(NOW())
SELECT MONTH(NOW())
SELECT DAY(NOW())
SELECT HOUR(NOW())
SELECT MINUTE(NOW())
SELECT SECOND(NOW())


系统信息函数

/* 获取版本号 8.0.15*/
SELECT VERSION();

/* 用户 root@localhost*/
SELECT USER();


MD5加密

-- 创建测试表
CREATE TABLE `md5` (
`id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`pwd` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

-- 插入测试数据(无md5加密)
INSERT INTO md5 (`name`, `pwd`) VALUES('liziba', '123456'),('xieli', '123456'),('newnow', '123456');

-- 插入测试数据(有md5加密)
INSERT INTO md5 (`name`, `pwd`) VALUES('liziba', MD5('123456')),('xieli', MD5('123456')),('newnow', MD5('123456'));

-- MySQL md5加密采用MD5()函数实现
MD5('STR');

-- 查询用户登录信息
SELECT * FROM `md5` WHERE `name` = 'liziba' AND `pwd` = MD5('123456');


总结

-- MySQL内置函数
-- 数值函数
abs(x)            -- 绝对值 abs(-10.9) = 10
format(x, d)    -- 格式化千分位数值 format(1234567.456, 2) = 1,234,567.46
ceil(x)            -- 向上取整 ceil(10.1) = 11
floor(x)        -- 向下取整 floor (10.1) = 10
round(x)        -- 四舍五入去整
mod(m, n)        -- m%n m mod n 求余 10%3=1
pi()            -- 获得圆周率
pow(m, n)        -- m^n
sqrt(x)            -- 算术平方根
rand()            -- 随机数
truncate(x, d)    -- 截取d位小数

-- 时间日期函数
now(), current_timestamp();     -- 当前日期时间
current_date();                    -- 当前日期
current_time();                    -- 当前时间
date('yyyy-mm-dd hh:ii:ss');    -- 获取日期部分
time('yyyy-mm-dd hh:ii:ss');    -- 获取时间部分
date_format('yyyy-mm-dd hh:ii:ss', '%d %y %a %d %m %b %j');    -- 格式化时间
unix_timestamp();                -- 获得unix时间戳
from_unixtime();                -- 从时间戳获得时间

-- 字符串函数
length(string)            -- string长度,字节
char_length(string)        -- string的字符个数
substring(str, position [,length])        -- 从str的position开始,取length个字符
replace(str ,search_str ,replace_str)    -- 在str中用replace_str替换search_str
instr(string ,substring)    -- 返回substring首次在string中出现的位置
concat(string [,...])    -- 连接字串
charset(str)            -- 返回字串字符集
lcase(string)            -- 转换成小写
left(string, length)    -- 从string2中的左边起取length个字符
load_file(file_name)    -- 从文件读取内容
locate(substring, string [,start_position])    -- 同instr,但可指定开始位置
lpad(string, length, pad)    -- 重复用pad加在string开头,直到字串长度为length
ltrim(string)            -- 去除前端空格
repeat(string, count)    -- 重复count次
rpad(string, length, pad)    --在str后用pad补充,直到长度为length
rtrim(string)            -- 去除后端空格
strcmp(string1 ,string2)    -- 逐字符比较两字串大小

-- 聚合函数
count()
sum();
max();
min();
avg();
group_concat()

-- 其他常用函数
md5();
default();


学习资料:

https://search.bilibili.com/allkeyword=%E7%8B%82%E7%A5%9E%E8%AF%B4JAVA

https://www.runoob.com/mysql


附:推荐MySQL相关入门课程,哔哩哔哩《狂神说JAVA》

文章转载自李子捌,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论