Mysql中的函数

聚合函数

SUM()
COUNT()
AVG()

常用函数

ROUND(1.123, 2) -> 1.12 四舍五入,保留两位
TRUNCATE(1.123, 2) -> 1.12  截断,从小数点后两位处 
CEILING(1.1) -> 1 有小数位,则去掉小数位+1
FLOOR(1.9) -> 1 有小数位,则去掉小数位取整
ABS(-1) -> 1 返回绝对值
RAND() 返回 [0,1) 区间的随机浮点数

正则表达式

REGEXP()
^y 表示以y开头
$y 表示以y结尾
[abc]y 表示y的前面必须要有a或b或c
[a-z]y 表示y的前面可以有a到z之间的任意一个字母

字符串函数

LENGTH('hello') -> 5 返回字符串的长度
UPPER('sky') -> SKY 对所有字母都换为大写
LOWER('SKy') -> sky 对所有字母都换成小写
LTRIM('   sky') -> sky 会删除前面的空格并返回
RTRIM('sky   ') -> sky 会删除后面的空格并返回
TRIM('   sky   ') -> sky 会删除前面和后面的空格并返回
LEFT('abcdefg', 3) -> abc 会返回从左到右指定个数的字符串
RIGHT('abcdefg', 3) -> efg 会返回从右到左指定个数的字符串
SUBSTRING('abcdefg', 2) -> bcdefg 会从左到右,从指定位置起,返回一直到最右方的字符串
SUBSTRING('abcdefg', 2, 3) bcd ->  会从左到右返回指定位置起,指定范围的的字符串
LOCATE('a', 'abcdefg') -> 1 会查找对应的值,不区分大小写,并返回其位置,没有则返回0
REPLACE( 'abcdefg', 'abc', 'zzz') -> zzzdefg 会替换对应值的字符串
CONCAT('abc', 'def') -> abcdef 拼接字符串
IFNULL(customer_id, 'Not id') 如果customer_id的值为null,那么会用Not id代替、
COALESCE(null, 0, 1) -> 0 返回参数中第一个非空表达式
IF(a>b, 'Y', 'N') 如果成立,则返回Y,不成立则返回N,类似于三目表达式
CASE
	WHEN a>b THEN 'A'
	WHEN b>c THEN 'B'
	WHEN c>d THEN 'C'
	ELSE 'D'	从上到下,哪个表达式成立,就返回对应的值

处理日期函数

NOW()  -> 2020-7-11 18:24:13 返回当前电脑的日期和时间
CURDATE() -> 2020-7-11 返回日期
CURTIME() -> 18:24:13 返回当前时间
YEAR(NOW()) -> 2020 返回年份,需要有参数如now()或者curdate()或对应日期格式,才能返回年份
MONTH(NOW()) -> 7 返回月份 ,需要有参数如now()或者curdate()或对应日期格式,才能返回月份
DAY(NOW()) -> 11 返回几号 ,需要有参数如now()或者curdate()或对应日期格式,才能返回几号
HOUR(NOW()) -> 18 返回几点 ,需要有参数如now()或者curdate()或对应日期时间,才能返回几点
MINUTE(NOW()) -> 24 返回分钟 ,需要有参数如now()或者curdate()或对应日期时间,才能返回分钟
SECOND(NOW()) -> 13 返回几号 ,需要有参数如now()或者curdate()或对应日期时间,才能返回秒钟
DAYNAME(NOW()) -> Saturday 返回星期几
MOTHNAME(NOW()) -> July 返回月份
EXTRACT(YEAR FROM NOW()) -> 2020 返回年,YEAR可以替换为MONTHDAY...
DATE_FORMAT(NOW(), '%Y %m %d') -> 2020 07 11 对日期进行格式化。
TIME_FORMAT(NOW, '%H:%i:%s') -> 18:24:13 对时间进行格式化
DATE_ADD(NOW(), INTERVAL 1 DAY) -> 2020-7-12 18:24:13 对日期时间加一天
DATE_SUB(NOW(), INTERVAL 1 DAY) -> 2020-7-10 18:24:13 对日期时间减一天
DATEDIFF('2020-02-02', '2020-01-01') -> 32 返回时间天数的间隔,只返回天数,对时间无效
TIME_TO_SEC('09:00') -> 32400 返回从零点起的秒数

创建视图

CREATE VIEW my_create_view as SELECT * FROM mytable;
//表示创建一个视图,该视图存储在数据库中的视图中。
其本质视图就是封装了查询语句到一个虚拟表中,我们可以直接拿这个表用。简化了我们每次查询的步骤

DROP VIEW my_view; 删除视图
CREATE OR REPLEACE VIEW my_view as .... 删除并重建视图

如果在创建视图时,没有DISTINCT、聚合函数、GROUP BY或者UNION等关键字,那么这个视图是一个可更新视图,我们可以用它来修改数据。

   DELETE from my_view where id = 1; //删除视图中id为1的数据

存储过程

创建存储过程

DELIMITER $$
CREATE PROCEDURE get_clients()
BEGIN
 SELECT * FROM clients;
END$$
DELIMITER;

使用

call get_clients()

删除

DROP PROCEDURE IF EXISTS get_clients

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值