#before/after + insert/delete/update,查询则不会触动触发器#NEW代指新数据,用于insert;OLD代指老数据,用于delete;NEW/OLD都可用于UPDATEdelimiter// #改变规则,令//表示结束createtrigger t1 before inserton student for each rowBEGINinsertinto teacher(tname)values(NEW.sname);insertinto teacher(tname)values(NEW.sname);insertinto 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 \\
createfunction f1(
i1 int,#强制规定类型,传入两个int类型的参数
i2 int)returnint#返回值的类型是intBEGINdeclare num intdefault0;#默认值为0set num =i1+i2;return(num);END \\
delimiter;#运行一次后,函数设定完毕。之后每次需要时调用即可
使用函数:select f1(1,100);
注:函数中不能写select*from tb1,而后续的存储过程可以。
注:强类型语言计较类型,如C语言,SQL语言;而弱类型语言忽视类型,如Python