--加密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() | 密码算法 |
语法