mysql视图能触发器吗_MySQL(视图、触发器、函数)

day61

视图

f9d92abf3dbbd6e694118f9a4d812856.png

视图:给某个查询语句设置别名,日后方便使用

- 创建

create view 视图名称 as  SQLs语句

PS: 视图是虚拟的不存在insert

- 修改

alter view 视图名称 as  SQL语句

- 删除

drop view 视图名称;

触发器

当对某张表做:增删改操作时,可以使用触发器自定义关联行为

create trigger 触发器名称 before insert on tb1 for each row

begin

.......

end

每在插入一行前,先执行begin~end中内容。

查询时用不到触发器

#遇到;不能完整执行需要将中止符修改--delimiter//--create trigger t1 before INSERT on student for each row--BEGIN--INSERT INTO teacher(tname) values('触发器'); #表示写完了-- --END//--delimiter;--

insert into student(gender, class_id, sname) values("女",1,'触发');#插入两行则触发两次

执行触发器后,触发器一直存在。

触发器运行过之后,一直存在,不需要时,需要删除。

drop trigger t1;

插入学生的数据同样插入老师的表中 NEW

#插入学生的数据再插入老师的表中--delimiter//--create trigger t1 before INSERT on student for each row--BEGIN--INSERT INTO teacher(tname) values(NEW.sname); #表示写完了-- --END//--delimiter;

insert into student(gender, class_id, sname) values("女",1,'啦啦');#插入两行则触发两次

先执行触发器,结束后注释(触发器已存在),再执行insert语句,数据插入student和teacher表中。

696b4243b5563381827f809aa59ea0a5.png

0f763253645d4bd96590e9bd4a14d140.png

NEW,表示新数据,insert,   update(既有新数据,更新为的数据)

OLD,表示老数据,delete,   update(又有老数据,被更新数据)

函数

内置函数

selectCURDATE();#执行函数select CHAR_LENGTH('vdsv');#计算字符长度select CONCAT('ccd','csc','FF');#拼接

执行结果:

f1f1a5d2352d98d32cf91c4c6ce98739.png

d8b84192fb16c3398c39468e8e99963d.png

7805cb7bfa718c5715a8409c777792e9.png

等等函数。

执行函数 select CURDATE();

blog

id       title            ctime

1        asdf        2019-11

2        asdf        2019-11

3        asdf        2019-10

4        asdf        2019-10

select ctime,count(1) from blog group ctime

select DATE_FORMAT(ctime, "%Y-%m"),count(1) from blog group DATE_FORMAT(ctime, "%Y-%m")

2019-11   2

2019-10   2

以上按月份进行分组,比如cnblogs中按月份分组的文章。

自定义函数:

delimiter \\create functionf1(

i1int,

i2int)returns int

BEGIN

declare num int;set num = i1 +i2;return(num);END\\

delimiter ;

SELECT f1(1,100);          #函数有返回值。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值