mysql 学习笔记 day06

来源:互联网 发布:java web视频点播系统 编辑:程序博客网 时间:2024/06/07 09:12
/*视图操作create | alter view_name as select column_name from table_name;*/---------------------------事物操作-------------------------------------/*原子性一致性隔离性持久性*/create table `class`(id int primary key auto_increment,cz_money decimal(10, 2) comment '班费' );insert into `class` values(null, 1250);create table student(id int primary key auto_increment,stu_money decimal(10, 2) comment '学生拥有的钱');insert into student values(null, 5000);-- 班费update student set stu_money=stu_money-30 where id =1;update `class` set cz_money = cz_money +30 where id =1;-- 将一组sql语句整体运行,运行失败回滚程序show variables like 'autocommit';set autocommit=0;-- 利用commit提交事务-- --------------------------------------触发器----------------------------------- 监听数据库的操作:-- 创建触发器:create trigger 名字 事件 执行代码;create trigger jiaobanfei after update on studentfor each row update class set cz_money = cz_money+90;-- 事件insertupdatedelete-- 事件的时机和事件在一起形成笛卡尔乘积-- before insertupdatedeletebefore insert |update |delete -- after insertupdatedeleteafter insert |update |delete -- 执行代码-- sql 脚本代码update student set stu_money = stu_money+80 where id = 1;/*注意:触发器不能同名;目前mysql只支持一类事件只有一个触发器6种触发器show create trigger trigger_name;(old.stu_money - new.stu_money)当事件是insert不能用old或是delete不能用newold 触发该触发器的表 on 之后的表 事件发生之前new 触发该触发器的表 on 之后的表 事件发生之后*/update student set stu_money=stu_money-50 where id =1;drop trigger jiaobanfei;create trigger jiaobanfei after update on studentfor each row update `class` set cz_money=(old.stu_money - new.stu_money);-- 如果一个触发程序有多个sql组成:-- 应该:--1、用begin end 作为标识语句块--2、语句块内用“;”作为定界符delimiter $$ -- 修改语句结束符create trigger ruxue after insert on student for each rowbeginupdate class set stu_count = stu_count+1;update class set cz_money = cz_money+20;end$$delimiter ; -- 再改回来/*mysql 编程set 变量名=变量值set @who='刘瑞斌';通过select可以获得当前变量值select @who;定义一个变量selectinfoselect  列   into 变量列表select 10,15,20 into @a,@b,@c;select @a,@b,@c;select -----into @var 只能返回一行= 应该是赋值,但在sql中是判断,写成:=set @i := '流';select @who:='流';自定义函数delimiter $$create function sayHello() returns varchar(20)begin return 'hello world';end$$delimiter ;调用select sayHello();多分枝:if 条件 thenelseif 条件2 thenend*/

0 0
原创粉丝点击