MySQL学习随记---存储函数
来源:互联网 发布:2017淘宝开店认证手机 编辑:程序博客网 时间:2024/06/05 03:25
概念
自定义函数
他跟js中的函数几乎一样: 需要先定义, 然后调用(使用). 只是规定这个函数必须要返回数据----要有返回值
(1)定义语法
create function 函数名(参数) returns 返回值类型
begin
//代码
end
特别注意第三点!!!!!
(2)调用
跟系统函数调用一样: 任何需要数据的位置, 都可以调用该函数
案例一: 返回两个数的和
CREATE FUNCTION he (num1 INT, num2 INT) RETURNS INTBEGINRETURN num1 + num2;END;
案例二: 返回1到n的和
CREATE FUNCTION nhe (n INT) RETURNS INTBEGINDECLARE i INT DEFAULT 1;DECLARE sum INT DEFAULT 0;WHILE i<=n DOSET sum=sum+i;SET i=i+1;END WHILE;RETURN sum;END;
注意: 创建的函数是隶属于数据库的, 只能在创建函数的数据库中使用
系统函数
(1)数字类
SELECT RAND(); // 返回0到1之间的随机数
SELECT * FROM pcuser ORDER BY RAND() LIMIT 2; // 随机取出2条记录
SELECT FLOOR(3.9); // 地板数
SELECT CEIL(4.1); // 天花板数
SELECT ROUND(3.5); // 四舍五入
SELECT * FROM pcuser ORDER BY RAND() LIMIT 2; // 随机取出2条记录
SELECT FLOOR(3.9); // 地板数
SELECT CEIL(4.1); // 天花板数
SELECT ROUND(3.5); // 四舍五入
(2)大小写转换
SELECT UCASE('I am a boy!'); // 转成大写SELECT LCASE('I am a boy!'); // 转成小写
(3)截取字符串
SELECT LEFT('abcde',3); //从左边截取
SELECT RIGHT ('abcde', 3); //从右边截取
SELECT SUBSTRING('abcde', 2, 3); //从第二个位置开始, 截取3个, 注意: 起始位置从1开始
SELECT CONCAT(10,'hh'); //字符串相连
SELECT CONCAT(id,'-',username) FROM pcuser;
SELECT COALESCE(str1,str2); //如果str1为null, 就显示str2
SELECT LENGTH('哈哈'); //输出6 数据库采用utf-8编码 显示字节个数
SELECT CHAR_LENGTH('哈哈'); // 输出2 显示字符个数
SELECT TRIM(' 哈哈'); //去掉字符串两边的空格
SELECT REPLACE ('abc', 'bc', 'pache'); //将abc 中的bc 替换成pache
(4)时间类
SELECT UNIX_TIMESTAMP(); // 当前时间戳 结果:1501729122SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()); // 将时间戳转成日期默认格式 结果: 2017-08-03 10:59:12
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y-%m-%d'); // 指定格式 结果: 2017-08-03
SELECT FROM_UNIXTIME(0); --1970-01-01 08:00:00
SELECT CURDATE(); //返回今天的时间日期; 格式 2017-08-03
SELECT NOW(); //取当前时间 格式 2017-08-03 10:57:27
SELECT YEAR(NOW()); 年
SELECT MONTH(NOW()); 月
SELECT DAY(NOW()); 日
SELECT HOUR(NOW()); 时
SELECT MINUTE(NOW()); 分
SELECT SECOND(NOW()); 秒
SELECT DATEDIFF(NOW(),'2017-07-03'); 两个日期相距多少天 前-后 31
DATE_SUB(date,INTERVAL expr unit); // 取出指定间隔的日期 -
DATE_ADD(date,INTERVAL expr unit);// 取出指定间隔的日期 +
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY); //取出昨天的日期
SELECT DATE_ADD(CURDATE(), INTERVAL -1 DAY);
案例一: 一个电影网站, 求出今天添加的电影; 在添加电影时候, 有一个添加的时间戳
//curdate() 求出今天的日期
//把添加的时间戳, 转换成日期
select title from archives where curdate() = FROM_UNIXTIME(timestamp,'%Y-%m-%d');
案例二: 一个电影网站, 求出昨天添加的电影; 在添加电影时候, 有一个添加的时间戳
把添加的时间戳, 转换成日期, 和昨天的日期比较
select title from archives where DATE_ADD(CURDATE(), INTERVAL -1 DAY) = FROM_UNIXTIME(timestamp,'%Y-%m-%d');
阅读全文
0 0
- MySQL学习随记---存储函数
- MySQL学习随记---存储过程
- mysql存储过程随记
- MySQL学习随记---触发器
- mysql存储过程学习笔记--常用函数
- mysql学习-触发器,存储过程(函数…
- MySQL的函数存储优化配置学习
- MySQL 学习<九> 存储过程和函数
- MySQL随记
- mysql 随记
- MySQL学习笔记九:存储过程,存储函数,触发器
- MySQL学习笔记 4:自定义函数和MySQL存储过程
- 学习随记
- 学习随记
- 学习随记
- 学习随记
- 学习随记
- 学习随记
- 基于NDK编译Android平台的FFmpeg动态库
- 缓存穿透与缓存雪崩
- 接口与抽象类的区别
- android中自定义一个图形,单点移动缩小的效果
- jQuery 将本地时间转换成 UTC 时间,计算时差,将UTC时间转换成 本地 时间
- MySQL学习随记---存储函数
- C语言 搜索字符串中的逗号有感(关于数据中的ASCII码)
- Android 复制和粘贴功能
- hdu5690(快速幂||减半)All X
- [Leetcode] 333. Largest BST Subtree 解题报告
- ORA-12518
- 【已解决】C#获取CPU温度支持Win10(OpenHardwareMonitor)
- 屏幕分辨率
- 欢迎使用CSDN-markdown编辑器