当前位置:Gxlcms > 数据库问题 > mysql 事件 触发器 过程

mysql 事件 触发器 过程

时间:2021-07-01 10:21:17 帮助过:14人阅读

select sname 姓名,sscore 成绩,case when sscore is null then ‘补考‘when sscore>=90 then ‘优秀‘when sscore>=80 then ‘良好‘when sscore>=60 then ‘及格‘when sscore<60 then ‘补考‘end from student;


if语句在mysql中的使用select sname,sscore,if(sscore is null,‘补考‘,if(sscore>=90,‘优秀‘,if(sscore>=80,‘良好‘,if(sscore>=60,‘及格‘,‘不及格‘))))等级from student;

inet_aton把ip转为数字,inet_ntoa 把数字转换为ipselect inet_aton (‘192.168.1.2‘);select inet_ntoa(3232235778);
uuid();36位全球唯一字符串视图create view vv as显示学生学号姓名 成绩 等级 代课老师姓名(如果无老师显示无老师)定义存储过程 编译执行速度快比较安全定义存储过程delimiter//create definer=`root`@`localhost`  procedure my3(in a char(6),b varchar(6))begin insert into t4 values(a,b);end//delimiter;




定义插入数据的存储过程,过程名为myi,有2个输入参数delimiter//create procedure myi(in a char(6),b varchar(6))begin insert into t4 values(a,b); end//delimiter;call myi(‘aa‘,‘上海‘);

用过程只查询一个列并显示出来delimiter//create procedure myshow()begin select b 城市 from t4;end//delimiter;call myshow;

定义无参的存储过程delimiter//create procedure del()begin delete from t4;end//delimiter;调用存储过程call my3(‘aa‘,‘666‘);
删除存储过程drop procedure my3;
查询创建过程语句show create procedure del;  
查询当前数据库里面的所有的存储过程清除历史记录然后点击对应的库点击存储过程出来的一段话就是存储过程的名字列出显示yy数据库中的所有的存储过程名称 select `SPECIFIC_NAME` from `INFORMATION_SCHEMA`.`ROUTINES` where `ROUTINE_SCHEMA` = ‘yy‘ and ROUTINE_TYPE = ‘PROCEDURE‘; 
函数定义函数delimiter//create function pf(n int)returns intbegin return n*n; end// delimiter;调用函数select pf(8);删除函数drop function pf;
drop function if exists pf;查看建立pf函数时的代码show create function ff;
视图-- 显示学生学号 姓名 成绩 等级 代课老师名称 如果没有老师显示无老师-- 定义视图create view vvasselect sid,sname,sscore,case when sscore is null then ‘补考‘ when sscore >=90 then ‘优秀‘when sscore>=80 then ‘良好‘when sscore>=60 then ‘及格‘when sscore<60 then ‘不及格‘end 等级,ifnull(tname,‘没有老师‘)from student left join teacher on stid= tid;
-- 查询视图 相当查询一个数据表,视图只保存定义,不存数据select * from vv;
-- 删除视图drop view if exists vv;

触发器建立触发器delimiter //create trigger tt_isert after insert on ttt for each rowbegin    if new.sscore<60 then        insert into tttbak select * from ttt where ttt.sid = new.sid;    end if;end//delimiter ;建立修改数据的触发器
delimiter //create trigger ttt_update after update on ttt for each rowbegin    if old.sscore>=60 then if new.sscore<60 then    insert into tttbak select * from ttt where ttt.sid = new.sid; end if;    else if new.sscore<60 then    replace into tttbak select * from ttt where ttt.sid = new.sid; else    delete from tttbak where sid = new.sid; end if;    end if;    end//delimiter ;
删除触发器drop trigger tt_insert;

事件(自动的任务)-- 查看事件功能是否开启show variables like ‘event_scheduler‘;-- 开启事件机制set global event_scheduler =1;set global event_scheduler=on;-- 关闭事件set global event_scheduler=0;set global event_scheduler=off;建立表格create table aaa(t timestamp);
建立事件create event eaaa on schedule every 1 second do insert into aaa value(current_timestamp);删除定义的事件drop event eaaa;
-- 禁用某事件alter event eaaa disable;-- 开启某事件alter event eaaa enable;





来自为知笔记(Wiz)

mysql 事件 触发器 过程

标签:

人气教程排行