mysql 存储过程 视图 自定义函数_MySQL触发器、存储过程、自定义函数、视图 常用SQL...

1.建立一个userinfo表新增记录时的触发器 将新增日志加入到userinfolog

2.建立一个向userinfo表新增记录的存储过程

3.根据userinfo表的出生日期字段 我们将建立一个简单算得年龄的自定义函数

4.创建一个userinfo的视图 调用年龄函数

create table userinfo(

useridint,

username varchar(10),

userbirthday date

);

create table userinfolog(

logtime datetime,

loginfo varchar(100)

);

delimiter//

-- 创建触发器:

create trigger ToUserinfoLog

before insert

on userinfo

foreach row

insertintouserinfolog values(now(),concat(new.userid,'-',new.username));//

-- 创建存储过程

create procedure insert_userinfo(user_id int,username varchar(10),userbirthday date)

begin

insertintouserinfo values(user_id,username,userbirthday);

end//

call insert_userinfo(1,'weizi',current_date);//

call insert_userinfo(2,'mini','1998-03-12');//

call insert_userinfo(3,'echo','1981-01-25');//

call insert_userinfo(4,'apple','1990-11-25');//

call insert_userinfo(4,'vivi','1962-01-27');//

-- 创建自定义函数

create function GetUserAge(birthday date)

returns integer

begin

returnyear(now())-year(birthday);

end//

-- 创建视图

create view ViewUserInfo

as

select*,GetUserAge(userbirthday)asagefromuserinfo;//

触发器语法

CREATE TRIGGER 

{ BEFORE | AFTER }

{ INSERT | UPDATE | DELETE }

ON 

FOR EACH ROW

查询数据库中的存储过程和函数

select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE';

show procedure status;

select `name` from mysql.proc where db = 'your_db_name' and `type` = 'FUNCTION';

show function status;

查看存储过程或函数的创建代码

show create procedure pro_name;

show create function fun_name;

类似的,可以用show create database db_name;、show create table tab_name;、show create view view_name;查看数据库,表,视图等创建代码。

查看视图和表

SELECT * from information_schema.VIEWS;

SELECT * from information_schema.TABLES;

select * from information_schema.tables where table_schema='yourDatabaseName' and table_type='view';

show table status where comment='view';

在mysql中,view和table是一样的,使用show tables就可以看到新建的视图了。

查看触发器

语法:SHOW TRIGGERS [FROM db_name] [LIKE expr]

实例:SHOW TRIGGERS\G

创建代码 show create trigger trigger_name;

调用存储过程和函数

call pro_name();

select fun_name();

删除存储过程、函数、触发器

drop procedure pro_name;

drop function fun_name;

drop trigger t_trigger;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值