[[数据库]] MySQL的视图、触发器、函数

Chapter4 MySQL的视图、触发器、函数


一、视图

#视图的作用:未某个查询语句设置别名,日后方便使用
#视图常用的场合:反复使用某个临时表时
#视图是虚拟的,是从物理表中读取的过程。视图本身不可修改,原表插入新数据后,视图中也有
	创建:create view 视图名称 as (SQL语句)
	修改:alter view 视图名称 as (SQL语句)
	删除:drop view 视图名称

二、触发器

#before/after + insert/delete/update,查询则不会触动触发器
#NEW代指新数据,用于insert;OLD代指老数据,用于delete;NEW/OLD都可用于UPDATE

delimiter // #改变规则,令//表示结束
create trigger t1 before insert on student for each row
BEGIN
	insert into teacher(tname) values(NEW.sname);
	insert into teacher(tname) values(NEW.sname);	
 	insert into teacher(tname) values(NEW.sname); 
 END //
 delimiter ; #改变规则,令;表示结束
#运行一次后,触发器就设定完毕。之后每次执行相关语句就会触动触发器。


三、函数

1.内置函数
	#内置函数常用的有时间函数,字符串长度计算,字符串拼接等
	#CURDATE()是某个内置时间函数,内置的时间函数有许多,获取的时间格式不同,有的是年月日时分秒,有的是年-月等等。执行内置函数方式如下
	select CURDATE();
	select DATE_FORMAT(ctime,"%Y-%m"),count(1) from blog group DATE_FORMAT(ctime,"%Y-%m) #统一格式,将原来的ctime 2019-10-10 11:19改为2019-10
	#%Y显示2019,%y显示19
	注:通过时间函数获取时间后,原表中的时间内容没有变,只是显示在内存中的方式改变了而已

2.自定义函数(有返回值)
	delimiter \\
		create function f1(
			i1 int,   #强制规定类型,传入两个int类型的参数
			i2 int)
		return int    #返回值的类型是int
		BEGIN
			declare num int default 0;   #默认值为0
			set num =i1+i2;
			return(num);
		END \\
	delimiter;	
	#运行一次后,函数设定完毕。之后每次需要时调用即可	
	使用函数:select f1(1,100);
	注:函数中不能写select * from tb1,而后续的存储过程可以。
	注:强类型语言计较类型,如C语言,SQL语言;而弱类型语言忽视类型,如Python

	

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值