欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL数据库学习笔记(3)

程序员文章站 2024-03-21 23:18:34
...

MySQL中的函数

MySQL中的函数包括:字符函数、数值运算符与函数、比较运算符与函数、日期时间函数、信息函数、聚合函数、加密函数等。

1、字符函数

MySQL数据库学习笔记(3)

//比如说,需要将姓和名一起输出时
 SELECT CONCAT(frist_name,last_name) AS fullname FROM test;

 SELECT FORMAT(12345.678,1);//12,345.7
 SELECT LEFT('mysql',2);//my

MySQL数据库学习笔记(3)
前导空格是指第一个字符之前的空格,后续空格是指最后一个字符之后的空格。
注意:mysql中的字符串编号从1开始。

 SELECT SUBSTRING('mysql',1,2);//my,第一个数子代表从第几位开始截取,第二个数据代表截几位。其实位置可以是负值。

SELECT * FROM tdb_goods WHERE goods_name LIKE '%笔记本%';//%代表任意个字符,_ 代表任意一个字符。

2、数值运算符与函数

MySQL数据库学习笔记(3)

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、比较运算符和函数

MySQL数据库学习笔记(3)

SELECT * FROM test WHERE first_name IS NULL;

4、日期时间函数

MySQL数据库学习笔记(3)

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、信息函数

MySQL数据库学习笔记(3)

6、聚合函数

聚合函数的典型特点是只有一个返回值。
MySQL数据库学习笔记(3)

7、加密函数

MySQL数据库学习笔记(3)
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
相关标签: mysql