时间相关
-- 当天
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 视图名;