MySQL函数和过程(三)

--加密32位字符
select md5('123456')

--获取字符串的长度(一个中文三个长度)
select LENGTH('呵呵')

--获取字符串字符个数
select CHAR_LENGTH('呵呵')

--删除前导空格
SELECT CHAR_LENGTH(ltrim(' mysql'))

--删除前导空格
SELECT LTRIM(' mysql')

--删除后续空格
select rtrim('mysql ')

--同时删除前后端空格
SELECT TRIM(' mysql ')

--删除后导某些字符
SELECT TRIM(TRAILING'@@'from '@@mysql@@')

--删除前导某些字符
SELECT TRIM(LEADING'@@'from '@@mysql@@')

--字符串截取(从1开始)
SELECT SUBSTRING('mysql database' ,3,3)

--字符串替换('单引号别忘了')
SELECT REPLACE('mysql database','a', 'A')

--字符串反转
SELECT REVERSE('mysql')

--返回n个前导空格构成的字符串
SELECT LENGTH(SPACE(4))

--字符串拼接
SELECT CONCAT('msql',SPACE(2),'database')

--使用制定的字符连接字符串
SELECT CONCAT_WS(' ','mysql','database')

--数字格式化
SELECT FORMAT(31415.926,2)

--字母转大写
SELECT UPPER('java')

--字母转小写
SELECT LOWER('JAVA')

--获取左边字符
SELECT LEFT('java',2)

--获取右侧字符
SELECT RIGHT('java',2)

--比较字符串(相等为0,前者大与后者为1,后者大与前者为-1)
SELECT STRCMP('A','B')

--取绝对值
SELECT ABS(-3);

--进一取整
SELECT CEIL(3.14)

--舍一取整
SELECT FLOOR(3.14)

--求商
SELECT 5 DIV 2

--求模
SELECT MOD(5,2)

--幂运算
SELECT POW(5,5)

--四舍五入
SELECT ROUND(3.14)

--取圆周率
SELECT PI()

--截断数字
SELECT TRUNCATE(PI(),2)

--返回0~1之间的随机数
SELECT RAND()

--获取当前时间
SELECT NOW()

--获取当前日期
SELECT CURRENT_DATE()

--获取当前时间
SELECT CURRENT_TIME()

--返回日期date加上间隔时间int的结果
SELECT DATE_ADD(NOW(),INTERVAL 2 DAY)

--返回日期date减去间隔时间int的结果
SELECT DATE_SUB(NOW(),INTERVAL 2 DAY)

--求日期之差('单引号别忘了')
SELECT DATEDIFF('2019-07-31','2019-07-29')

--日期格式化
SELECT DATE_FORMAT(NOW(),'%Y%m%d %H%i%s')

-- 查看当前库所有自定义函数
SELECT * FROM MYSQL.PROC WHERE 1 = 1 AND DB = 'test' AND TYPE = 'FUNCTION';

-- 查看当前库某个自定义函数的定义
SHOW CREATE FUNCTION GET_STUDENT_NAME;

-- 删除某自定义函数
DROP FUNCTION GET_STUDENT_NAME;

-- 创建自定义函数
DELIMITER ;;
CREATE FUNCTION GET_STUDENT_NAME(vsno CHAR(6))
RETURNS VARCHAR(20)
BEGIN
DECLARE rname VARCHAR(20) DEFAULT '';
SELECT SNAME INTO rname FROM T_STUDENT WHERE SNO = vsno;
RETURN rname;
END
;;
DELIMITER ;

-- 使用自定义函数
SELECT GET_STUDENT_NAME('S20165');

-- 查看当前库有所有自定义过程
SELECT * FROM MYSQL.PROC WHERE 1 = 1 AND DB = 'test' AND TYPE = 'PROCEDURE';

-- 查看当前库某个自定义过程的定义
SHOW CREATE PROCEDURE PROC_GET_STUDENT_NAME;

-- 删除存储过程
DROP PROCEDURE PROC_GET_STUDENT_NAME;

-- 创建存储过程
DELIMITER ;;
CREATE PROCEDURE PROC_GET_STUDENT_NAME(IN vsno CHAR(6), OUT rname VARCHAR(20))
BEGIN
SELECT SNAME INTO rname FROM T_STUDENT WHERE SNO = vsno;
END
;;
DELIMITER ;

-- 调用存储过程
call PROC_GET_STUDENT_NAME('S20165', @rname) ;
SELECT @rname;

--数据库关联
SELECT * FROM a a
INNER JOIN b b
ON a.id=b.id
WHERE a.id=1

 

--在数据库创建账号密码表
CREATE TABLE sys_user (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
PASSCODE CHAR(32) NOT NULL,
status TINYINT UNSIGNED NOT NULL DEFAULT '1'
);

 

                  

函数名

描述

LENGTH(str)

获取字符串长度

CHAR_LENGTH(str)

获取字符串的字符个数

LTRIM(str)

删除前导空格

RTRIM(str)

删除后续空格

TRIM([{both | leading | trailing} [remstr] from] str)

删除前导和后续空格

SUBSTRING(str, pos[, len])

字符串截取

REPLACE(str, from_str, to_str)

字符串替换

REVERSE(str)

字符串反转顺序

SPACE(n)

返回由n个空格构成的字符穿

                   

                 

函数名

描述

CONCAT(column | str)

字符连接

CONCAT_WS(separator, str1, st2, …)

使用指定的分隔符进行字符连接

FORMAT(X, D[, locale])

数字格式化

LOWER(column | str)

转化成小写字母

UPPER(column | str)

转化为大写字符

LEFT(str, len)

获取左侧字符

RIGHT(str, len)

获取右侧字符

STRCMP(str1, str2)

两个字符串相同返回0,前者大于后者返回1,前者小于后者返回-1

                 

函数名

描述

ABS(x)

取绝对值

CEIL(x)

进一取整

DIV

整数除法

FLOOR(x)

舍一取整

MOD(x, y)

取余数(模)

POWER(x, y)

幂运算

ROUND(x, y)

四舍五入

TRUNCATE(x, y)

截断数字

PI()

取圆周率π的值

RAND()

返回0到1之间的伪随机数

                     

名称

描述

[NOT] BETWEEN…AND…

[不]在范围内

[NOT] IN()

[不]在列出的范围内

IS [NOT] NULL

[不]为空

                     

函数名

描述

NOW()

当前日期和时间

CURDATE()或CURRENT_DATE()

当前日期

CURTIME()或CURRENT_TIME()

当期时间

DATE_ADD(date, INTERVAL int keyword)

返回日期date加上间隔时间int的结果

DATE_SUB(date, INTERVAL int keyword)

返回日期date加上间隔时间int的结果

DATEDIFF(date1, date2)

日期差值

DATE_FORMAT(date, fmt)

日期格式化

      

                 

函数名

描述

CONNECTION_ID()

连接ID

DATEBASE()

当前数据库

LAST_INSERT_ID()

最后插入记录的ID号

USER()

当前用户

VERSION()

版本信息

                     

函数名

描述

AVG()

平均值

COUNT()

计数

MAX()

最大值

MIN()

最小值

SUM()

求和

                     

函数名

描述

MD5()

数据摘要算法

PASSWORD()

密码算法

 

语法

 

猜你喜欢

转载自www.cnblogs.com/zxx7777777/p/11265643.html