mysql 笔记1

事物

有单独单元的一个或多个sql语句组成,在这个单元中,每个sql语句相互依赖,要么全部执行,要么全部回滚。

ACID

  1. 原子性 不可在分割
  2. 一致性 必须使一个一致性状态变换到另外一个一致性状态
  3. 隔离性 一个事物的执行 不受其他事物干扰
  4. 持久性 事物一旦提交 永久性改变

隐式事物

没有明确开启和结束的标记

显式事物

具有明显的开启和结束的标记

步骤

set autocommit =0
start transaction
语句1
语句2
commit

rollback

事物隔离级别

READ UNCOMMITTED 读未提交的数据
READ COMMITED 读已提交的数据
REPEATABLE READ 可重复读
SERIALIZABLE 串行化

错误
  1. 脏读
  2. 不可重复读
  3. 幻读

设置节点 保存点 savepoint

set autocommit=0;
start transaction
delete from account where id=25;
savepoint a;
delete form account where id=28;
roolback to a;
语句
 show engines
 show varibles like 'autocommit’
 set session  transaction isolation level read uncommitted 设置当前连接
 set  global isolation level read uncommitted 全局
 set name gbk
 select @@tx_isolation 查看当前隔离级别
 show variables like '%char%'

存储引擎

  1. innodb 支持事物
  2. myisam
  3. memory

视图

虚拟表 和普通表 通过表动态生成的数据 只保存了sql逻辑 不保存查询结果

create view v1 
as
select stuname,majorname
form stuinfo s
inner join major m on s.majorid=m.id


select * v1from v1 where stuname like 'zhang%'

存储过程

一组预先编译好的sql语句集合

创建

create procedure name(var)
begin
    过程体
end
参数列表包含三部分
参数模式 参数名 参数类型

参数模式
in
out
inout

调用

  1. 空参

create procedure myp1()
begin
insert into admin(username,password)
values (‘john’,1)
end

    call myo1()
    DELIMITER $
  
2. in 
```sql
create procedure myp2(in beautyName varchar(20))
begin 
    select bo.* 
    from boys bo
    right join beauty b on bo.id =b.boyfriend_id
    where b.name=beautyName
End ;
  1. out
create  procedure myp5(in beautyName varchar(30) ,out  boyName varchar(30))
begin 
    select bo.boyName into boyName
    from boys bo
    inner join beauty b on bo.id=b.boyfriend_id
    where b.name=beautyName;
End
set @bName
call myp5('小熊',@bName)
``

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值