💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
| 事务(Transaction) | SQL编程 | | --- | --- | ``` 使用场合 T-SQL编程只能出现在trigger、procedure里面 定义事务的流程 1、定义变量 2、变量的赋值 3、运算 4、if语句(判断) 5、循环 输出语句 select '社会主义好' as msg; select 30 as age,'张三' as name; select current_timestamp as time; 定义变量 declare(声明) 变量名 数据类型; declare 变量名 数据类型 default 值; 注意:定义变量代码必须出现在begin,end空间的最顶部 DELIMTER // DROP PROCEDURE IF EXISTS procedure_name// CREATE PROCEDURE procedure_name() BEGIN #定义变量 DECLARE age int; DECLARE username varchar(30) default '张三'; #显示 END// DELIMTER ; 变量的赋值 declare 变量名 数据类型 default 值; set 变量名 = 值; set 变量名 = (select 语句); select 字段 into 变量 from 表名 where 条件; DELIMTER // DROP PROCEDURE IF EXISTS procedure_name// CREATE PROCEDURE procedure_name() BEGIN #定义变量 DECLARE age int; DECLARE username varchar(30) default '张三'; #变量赋值 set address = '北京'; set age = 30; #显示 select age,address; #显示 END// DELIMTER ; 运算符 算术运算符:+ - * / % 比较运算符:< <= > >= = != <> 逻辑运算符:and or not(逻辑非) 赋值运算符: = delimiter // drop procedure if exists hello// create procedure hello() begin declare a int default 5; declare b int default 2; declare result int; #运算 set result = a%b; #输出 select result; end// delimiter ; 判断 if 条件 then sql语句; sql语句; elseif 条件 then sql语句; sql语句; else sql语句; sql语句; end if; delimiter // drop procedure if exists hello// create procedure hello(age int) begin if age<18 then select '未成年' as msg; elseif age=18 then select '刚成年' as msg; else select '已成年' as msg; end if; end// delimiter ; 循环:了解 while 条件 do sql 语句; end while; repeat sql语句; until 条件 end repeat; 别名:loop sql语句; end loop; delimiter // drop procedure if exists hello// create procedure hello(age int) begin declare i int default 0; haha:loop selelct i; set i=i+1; end// delimiter ; T-SQL编程的知识点 1、定义变更量 2、赋值 3、运算 4、判断 存储过程的参数 输入参数:外—>里 输出参数:里->外 delimiter // drop procedure if exists hello// create procedure hello(in a int,in b int,out c int) begin sql语句; sql语句; sql语句; 给输出参数赋值 end// delimiter ; call hello(10,20,@名); select @名; ``` | 事务(Transaction)介绍 | 保持数据的完整性 | | --- | --- | ``` 事务的特征 原子性,一致性,隔离性,持久性(事务最终状态是持久的) 事务的最终状态 commit; 成功 rollback; 失败 结束事务的方法 commit; 提交 rollback; 回滚(撤销) 开启一个事务 start transaction; 结束一个事务 1、提交事务(事务成功) commit; 2、回滚事务(事务失败) rollback; 设置回滚点 savepoint 名; 回到指定的回滚点 rollback to 名;(注意:并没有结束事务) start transaction; delete from userinfo; savepoint hello; delete from bbsinfo; rollback to hello; rollback; commit; 显式提交事务 隐式提交事务 ```