MySQL数据库学习笔记(3)
程序员文章站
2024-03-21 23:18:34
...
MySQL中的函数
MySQL中的函数包括:字符函数、数值运算符与函数、比较运算符与函数、日期时间函数、信息函数、聚合函数、加密函数等。
1、字符函数
//比如说,需要将姓和名一起输出时
SELECT CONCAT(frist_name,last_name) AS fullname FROM test;
SELECT FORMAT(12345.678,1);//12,345.7
SELECT LEFT('mysql',2);//my
前导空格是指第一个字符之前的空格,后续空格是指最后一个字符之后的空格。
注意:mysql中的字符串编号从1开始。
SELECT SUBSTRING('mysql',1,2);//my,第一个数子代表从第几位开始截取,第二个数据代表截几位。其实位置可以是负值。
SELECT * FROM tdb_goods WHERE goods_name LIKE '%笔记本%';//%代表任意个字符,_ 代表任意一个字符。
2、数值运算符与函数
SELECT 3/4;// 0.7500
SELECT 3 DIV 4;//0
SELECT 5%3;//2
SELECT 5 MOD 3;//2
SELECT POWER(3,3)//27
SELECT TRUNCATE(123.456,2);//123.45
3、比较运算符和函数
SELECT * FROM test WHERE first_name IS NULL;
4、日期时间函数
mysql> SELECT NOW(); //2018-02-28 10:37:55
mysql> SELECT CURTIME(); //10:38:03
mysql> SELECT CURDATE(); //2018-02-28
SELECT DATE_ADD('2014-3-2',INTERVAL 365 DAY); //2015-03-02
SELECT DATEDIFF('2014-3-2','2015-03-02'); //-365
SELECT DATE_FORMAT('2014-3-12','%M/%D/%Y'); // 'March/12th/2014'
5、信息函数
6、聚合函数
聚合函数的典型特点是只有一个返回值。
7、加密函数
MD5()和PASSWORD()的区别在哪呢?如果当前存储的密码信息是为了Web页面做准备,则建议用MD5()。而PASSWORD()则多用于修改MySQL客户端用户的密码。
SELECT MD5('admin');
+----------------------------------+
| 21232f297a57a5a743894a0e4a801fc3 |
+----------------------------------+
SET PASSWORD = PASSWORD('123456');//将mysql的登录密码修改为123456。
8、自定义函数
用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同。
CREATE FUNCTION function_name
RETURNS
{STRING|INTEGER|REAL|DECIMAL}
routine_body
routine_body指函数体。关于函数体:
(1)函数体由合法的SQL语句构成;
(2)函数体可以是简单的select或insert语句;
(3)函数体如果为复合结构则使用begin。。end语句;
(4)复合结构可以包含声明,循环,控制结构。
//创建一个将当前日期格式化的函数
CREATE FUNCTION f2() RETURNS VARCHAR(30)
RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日');
//对函数进行调用
SELECT f2();
+----------------+
| f2() |
+----------------+
| 2018年02月28日 |
+----------------+
//创建带参数的函数
CREATE FUNCTION f3(num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED)
RETURNS FLOAT(10,2) UNSIGNED
RETURN (num1+num2)/2;
SELECT f3(8,9);
+---------+
| f3(8,9) |
+---------+
| 8.50 |
+---------+
可以通过DELIMITER 语句修改mysql命令的结束符。
创建复合函数如下:
CREATE FUNCTION ADDUSER(username VARCHAR(20))
RETURNS INT UNSIGNED
BEGIN
INSERT test(username) VALUES (username);
RETURN LAST_INSERT_ID()
END
上一篇: OpenCV--图像边界填充
下一篇: WordCount升级版(?)