MySQL数据库学习笔记(3)

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值