主要包括以下内容 1. 字符函数 2. 数值运算符与函数 3. 比较运算符与函数 4. 日期时间函数 5. 信息函数 6. 聚合函数 7. 加密函数
字符函数
函数名称 描述 函数名称 描述 CONCAT() 字符连接 LENGTH() 获取字符串长度 CONCAT_WS() 使用指定的分隔符进行字符连接 LTRIM() 去除字符串前面空字符 FORMAT() 将数字格式化 RTRIM() 去除字符串后面的空格 LOWER() 小写 TRIM() 去除前面或后面的空格或者删除特定字符串 UPPER() 大写 SUBSTRING() 截取子字符串 LEFT() 从左边开始截取 [NOT] LIKE 模糊查询 RIGHT() 从右边开始截取 REPLACE() 替换插件
CREATE TABLE str_test (
first_name VARCHAR (20 ),
last_name VARCHAR (20 )
);
INSERT INTO str_test VALUES ('A' ,'B' ),('C' ,'D' ),('tom%' ,'123' ),(NULL ,'11' );
# 链接字符串
SELECT CONCAT(first_name,last_name) as full_name FROM str_test;
# 通过符号链接字符串
SELECT CONCAT_WS('-' ,first_name,last_name) as full_name FROM str_test;
# 格式化数字
SELECT FORMAT(12560.56 ,2 );
# 字符串大小写的转化
SELECT LOWER('MySql' );
SELECT UPPER('MySql' );
#截取字符串
SELECT LEFT ('Mysql' ,2 );
SELECT RIGHT ('Mysql' ,3 );
# 获取字符串长度
SELECT LENGTH('MySql' );
SELECT LENGTH('My Sql' );
# 去除空格
SELECT LENGTH(LTRIM(' Mysql ' ));
SELECT LENGTH(RTRIM(' Mysql ' ));
SELECT LENGTH(TRIM(' Mysql ' ));
# 删除特定字符串
SELECT TRIM(LEADING '?' FROM '???My??Sql???' );
SELECT TRIM(BOTH '?' FROM '???My??Sql???' );
SELECT TRIM(TRAILING '?' FROM '???My??Sql???' );
# 替换字符
SELECT REPLACE ('???My??Sql???' ,'?' ,'' );
#截取字符串 从第几个开始,截取多少个。默认是从1开始
SELECT SUBSTRING('MySql' ,1 ,3 );
SELECT 'Mysql' LIKE 'M%' ;
SELECT * FROM str_test WHERE first_name LIKE '%o%' ;
# 不把中间那个%作为通配符。%代表任意字符,_代表任意一个字符
SELECT * FROM str_test WHERE first_name LIKE '%1%%' ESCAPE '1' ;
数值运算符和函数
函数名称 描述 函数名称 描述 CEIL() 向上取整 FLOOR() 向下取整 DIV() 整数除法 MOD() 取余数,取模运算 POWER() 幂运算 ROUND() 四舍五入 TRUNCATE() 数字截取
# 向上取整
SELECT CEIL(3.01 );
# 向下取整
SELECT FLOOR(3.99 );
# 整数除法
SELECT 3 DIV 4 ;
# 取余数
SELECT 3 MOD 4 ;
# 幂运算
SELECT POWER(3 ,2 );
# 四舍五入
SELECT ROUND(125.678 ,2 );
# 数字截取,
SELECT TRUNCATE (125.678 ,-1 );
MySql比较运算符和函数
名称 描述 [NOT] BETWEEN…AND .. [不]再范围之内 [NOT] IN() [不]在列出的范围之内 IS [NOT] NULL [不]为空
SELECT 20 BETWEEN 1 AND 20 ;
SELECT 25 BETWEEN 1 AND 20 ;
SELECT 10 IN (5 ,10 ,15 ,20 );
SELECT 13 IN (5 ,10 ,15 ,20 );
SELECT * FROM str_test where first_name is NULL ;
MySql日期函数
名称 描述 NOW() 当前日期和时间 CURDATE() 当前日期 CURTIME() 当前时间 DATE_ADD() 日期增加 DATEDIFF() 日期差值计算 DATE_FORMAT() 日期格式化
# 获取当前日期、时间
SELECT NOW();
SELECT CURDATE();
SELECT CURTIME();
# 操作时间
SELECT DATE_ADD('2015-3-4' ,INTERVAL 365 DAY );
SELECT DATE_ADD('2015-3-4' ,INTERVAL -365 DAY );
SELECT DATE_ADD('2015-3-4' ,INTERVAL 3 WEEK);
SELECT DATE_ADD('2015-3-4' ,INTERVAL 3 DAY );
# 计算时间差
SELECT DATEDIFF('2013-3-12' ,'2014-3-12' );
# 格式化日期显示
SELECT DATE_FORMAT('2014-3-12' ,'/%m/%d/%Y' );
MySql信息
名称 描述 CONNECTION_ID() 连接ID DATABASE() 当前数据库 LAST_INSERT_ID() 最后插入记录的id USER() 当前用户 VERSION() 当前版本
# 连接ID
SELECT CONNECTION_ID();
# 当前数据库
SELECT DATABASE ();
# 当前用户
SELECT USER ();
# 当前版本
SELECT VERSION();
# 最后一次插入的主键的ID
ALTER TABLE str_test ADD id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT;
SELECT * FROM str_test;
INSERT str_test(first_name,last_name) VALUES ('AA' ,'BB' );
SELECT LAST_INSERT_ID();
# 会返回插入第一条数据对应的ID
INSERT str_test(first_name,last_name) VALUES ('CC' ,'DD' ),('EE' ,'FF' );
SELECT LAST_INSERT_ID();
聚合函数
名称 描述 AVG() 平均值 COUNT() 计数 MAX() 最大值 MIN() 最小值 SUM() 求和
SELECT ROUND(AVG (goods_price),2 ) FROM tdb_goods;
SELECT COUNT (1 ) FROM tdb_goods;
SELECT MAX (goods_price) FROM tdb_goods;
SELECT MIN (goods_price) FROM tdb_goods;
SELECT SUM (goods_price) FROM tdb_goods;
加密函数
名称 描述 MD5() 对应的MD5值 PASSWORD() 设置mysql用户密码
# 获取12345 的MD5值
SELECT MD5(12345 );
# 设置当前用户的密码
SET password=PASSWORD('123123' )