• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Stars_Yu
博客园    首页    新随笔    联系   管理    订阅  订阅

MySql触发器/视图/存储过程

时间相关

-- 当天
SELECT CURDATE();

-- 本周 
-- 开始时间
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY);
-- 结束时间
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 6 DAY);

-- 本月
-- 开始
SELECT STR_TO_DATE(CONCAT(DATE_FORMAT(CURDATE(),'%Y-%m-'),'01'), '%Y-%m-%d');
-- 结束
SELECT  LAST_DAY(CURDATE());

存储过程

1、创建存储过程
CREATE PROCEDURE 存储过程名称(in/out/inout 参数名 参数类型(长度))
BEGIN
     SQL语句;
END;
 
说明:
in:该类型参数作为输入,也就是需要调用时传入值
out:该类型参数作为输出,也就是该参数可以作为返回值
inout:既可以作为输入参数,也可以作为输出参数
参数类型长度:不指定长度时mysql会默认一个长度,如int会默认int(11),为什么是11,因为int的有符号类型的最大长度就是-2147483648,是11位的。

2、查看存储过程
SELECT * FROM information_schema.routines WHERE routine_schema = 'xxx'; --查看指定数据库的存储过程及状态信息
SHOW CREATE PROCEDURE 存储过程名字 ; --查看某个存储过程的定义sql语句


3、删除
DROP PROCEDURE [if exists] 存储过程名字;

触发器

-- 触发器 一个执行语句
CREATE TRIGGER 触发器名称 BEFORE/AFTER 触发事件 ON 表名 FOR EACH ROW 执行语句

--触发器 多条执行语句

CREATE TRIGGER 触发器名称 BEFORE/AFTER 触发事件 ON 表名 FOR EACH ROW BEGIN 执行语句 END

视图

-- 创建试图
CREATE VIEW 视图名 AS SQL语句;

-- 删除试图
DROP VIEW 视图名;

-- 更改试图数据
UPDATE 视图名 SET 更改的数据 WHERE 更改条件;
例: UPDATE student SET Name='Stars' WHERE Name='Star';

-- 更改视图结构
ALTER VIEW 视图名 AS SELECT SQL语句

-- 查看视图
SHOW CREATE TABLE|VIEW  视图名;
SHOW 视图名;
DESCRIBE/DESC 视图名;

posted @ 2022-08-10 14:02  Stars_Yu  阅读(54)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3