MySQL的事务和视图

MySQL 事物,mysql事物

1.概念

一条恐怕多条sql语句的聚众!
 事务:便是一群操作的集纳,他们同甘共苦。要么都实践成功,要么都进行停业
二.事情的表征  ACID
  A:原子性  完整的,不可分割的

  原子性 (Atomicity):在业务中的操作,要么都进行,要么都不进行!

  C: 壹致性  事务实施达成后,数据的状态是一律的()

  一致性(Consistency):事务必须确定保证数据库从二个1致性的场馆成为另2个一致性的情景!

  I: ISOLation 隔开性  四个业务实行互不影响

  隔绝性(Isolation):每一个业务之间互不困扰!哪怕是出现实施也不打扰!

  D: 永远性  事务试行完后,对数码的震慑是世代的。

  长久性(Durability):事务一旦被改动,那么对数据库中数量的影响是长久性的!

叁.工作操作的入眼字
  自动提交业务开关set autocommit=壹
  开端事务 start transaction /begin
  提交业务 commit
  回滚事务 rollback
  set autocommit=1
四.事务+++存款和储蓄进程 转账的例证
 
DELIMITER $$
CREATE PROCEDURE usp_transfer()
    BEGIN 
    ##张冠李戴总的数量暗中认可是0
    DECLARE t_error INTEGER DEFAULT 0; 
    ## continue 继续  hanlder 执行   并且对 t_error重新赋值为一
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; 
    SET autocommit=0;
        START TRANSACTION; 
        UPDATE bank SET balance=balance-100 WHERE cid=1;   
        UPDATE bank SET balance =balance+100 WHERE cid=2;
        IF t_error > 0 THEN 
            ROLLBACK; 
        ELSE 
            COMMIT; 
        END IF; 
     SET autocommit=1;
    END$$ 
DELIMITER ; 
 
CALL test_sp800()

 

概念八个囤积进度的最简便易行的语法是
delimiter $$
create procedure usp_stulist()
begin
  select * from student
end$$
delimiter;

 

          模拟 银行转化!                          

—   成立数据库
CREATE DATABASE  myBank;
—  切换钦定的数据库
USE myBank;
—  创建表
CREATE  TABLE  IF NOT  EXISTS bank(
customerName  VARCHAR(10) NOT NULL  COMMENT ‘用户名’,
currentMoney  DE竞瑞L(10,2) NOT NULL  COMMENT ‘账户余额’
);
— 插入数据
INSERT INTO bank  VALUES(‘小黑’,50000),(‘小白’,500000);

—  小黑  给小白  转账10000
—   修改两条数据
—    01.小黑-10000
—    02.小白+10000

UPDATE bank SET currentMoney=currentMoney-10000
 WHERE customerName=’小黑’;
 —  故意写错字段名称  让0贰  报错
UPDATE bank SET currentMoneysss=currentMoney+10000
 WHERE customerName=’小白’;
 

—  开启事务   START TRANSACTION 只怕 BEGIN
—  0一.0二  为3个事务
BEGIN
 UPDATE bank SET currentMoney=currentMoney-10000
 WHERE customerName=’小黑’;
 UPDATE bank SET currentMoneysss=currentMoney+10000
 WHERE customerName=’小白’;
—  事务回滚  ROLLBACK
—  提交业务 COMMIT

UPDATE bank SET currentMoney=500000
 WHERE customerName=’小黑’;
—  注明mysql是暗中认可提交业务的!

SET  autocommit=0(关闭工作自动提交) | 一(开启事务自动提交)

— 关闭职业自动提交
SET  autocommit=0;

BEGIN;   —  开启事务
 UPDATE bank SET currentMoney=currentMoney-10000
 WHERE customerName=’小黑’;
 UPDATE bank SET currentMoney=currentMoney+10000
 WHERE customerName=’小白’;
COMMIT;  —  手动提交业务
  UPDATE  bank SET currentMoney=10000;
ROLLBACK;   — 事务回滚

SET  autocommit=1;  — 复苏活动提交

 

事物,mysql事物 1.定义
一条大概多条sql语句的汇集!
事务:正是一批操作的聚焦,他们呴湿濡沫。要么都实行成功,要么都执行退步…

MySQL的事体和视图,MySQL事务视图

                事务

1.概念

一条大概多条sql语句的群集!
 事务:正是一群操作的群集,他们同舟共济。要么都实施成功,要么都实行倒闭
2.事情的特点  ACID
  A:原子性  完整的,不可分割的

  原子性 (Atomicity):在职业中的操作,要么都推行,要么都不实施!

  C: 一致性  事务施行完成后,数据的气象是同壹的()

  一致性(Consistency):事务必须确认保障数据库从叁个一致性的情景成为另一个壹致性的场地!

  I: ISOLation 隔开分离性  五个职业实行互不影响

  隔绝性(Isolation):种种职业之间互不搅扰!哪怕是出现实行也不滋扰!

  D: 长久性  事务施行完后,对数码的震慑是恒久的。

  长久性(Durability):事务1旦被更换,那么对数据库中数据的影响是长久性的!

3.作业操作的珍视字
  自动提交业务开关set autocommit=0
  起先专门的职业 start transaction /begin
  提交业务 commit
  回滚事务 rollback
  set autocommit=1
四.事务+++存款和储蓄进程 转账的事例
 
DELIMITER $$
CREATE PROCEDURE usp_transfer()
    BEGIN 
    ##谬误总的数量默许是0
    DECLARE t_error INTEGER DEFAULT 0; 
    ## continue 继续  hanlder 执行   并且对 t_error重新赋值为①
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; 
    SET autocommit=0;
        START TRANSACTION; 
        UPDATE bank SET balance=balance-100 WHERE cid=1;   
        UPDATE bank SET balance =balance+100 WHERE cid=2;
        IF t_error > 0 THEN 
            ROLLBACK; 
        ELSE 
            COMMIT; 
        END IF; 
     SET autocommit=1;
    END$$ 
DELIMITER ; 
 
CALL test_sp800()

 

概念叁个累积进程的最简便的语法是
delimiter $$
create procedure usp_stulist()
begin
  select * from student
end$$
delimiter;

 

          模拟 银行转化!                          

—   成立数据库
CREATE DATABASE  myBank;
—  切换内定的数据库
USE myBank;
—  创建表
CREATE  TABLE  IF NOT  EXISTS bank(
customerName  VARCHAR(10) NOT NULL  COMMENT ‘用户名’,
currentMoney  DECrossL(10,二) NOT NULL  COMMENT ‘账户余额’
);
— 插入数据
INSERT INTO bank  VALUES(‘小黑’,50000),(‘小白’,500000);

—  小黑  给小白  转账10000
—   修改两条数据
—    01.小黑-10000
—    02.小白+10000

UPDATE bank SET currentMoney=currentMoney-10000
 WHERE customerName=’小黑’;
 —  故意写错字段名称  让0二  报错
UPDATE bank SET currentMoneysss=currentMoney+10000
 WHERE customerName=’小白’;
 

—  开启事务   START TRANSACTION 也许 BEGIN
—  0一.02  为2个事情
BEGIN
 UPDATE bank SET currentMoney=currentMoney-10000
 WHERE customerName=’小黑’;
 UPDATE bank SET currentMoneysss=currentMoney+10000
 WHERE customerName=’小白’;
—  事务回滚  ROLLBACK
—  提交业务 COMMIT

UPDATE bank SET currentMoney=500000
 WHERE customerName=’小黑’;
—  注解mysql是默许提交业务的!

SET  autocommit=0(关闭工作自动提交) | 一(开启事务自动提交)

— 关闭专门的工作自动提交
SET  autocommit=0;

BEGIN;   —  开启事务
 UPDATE bank SET currentMoney=currentMoney-10000
 WHERE customerName=’小黑’;
 UPDATE bank SET currentMoney=currentMoney+10000
 WHERE customerName=’小白’;
COMMIT;  —  手动提交业务
  UPDATE  bank SET currentMoney=10000;
ROLLBACK;   — 事务回滚

SET  autocommit=①;  — 复苏活动提交

1.概念

一条大概多条sql语句的汇聚!
 事务:便是一群操作的成团,他们同舟共济。要么都奉行成功,要么都奉行倒闭
二.专门的学问的特征  ACID
  A:原子性  完整的,不可分割的

  原子性 (Atomicity):在事情中的操作,要么都推行,要么都不实践!

  C: 1致性  事务实践实现后,数据的情事是同样的()

  壹致性(Consistency):事务必须保险数据库从三个1致性的气象产生另八个1致性的景色!

  I: ISOLation 隔开分离性  两个业务推行互不影响

  隔开分离性(Isolation):各类业务之间互不干扰!哪怕是出现实践也不苦恼!

  D: 长久性  事务执行完后,对数码的震慑是永远的。

  长久性(Durability):事务1旦被改成,那么对数据库中数量的熏陶是永远性的!

3.业务操作的根本字
  自动提交业务按钮set autocommit=一
  起初作业 start transaction /begin
  提交业务 commit
  回滚事务 rollback
  set autocommit=1
肆.事务+++存款和储蓄进度 转账的例证
 
DELIMITER $$
CREATE PROCEDURE usp_transfer()
    BEGIN 
    ##荒唐总的数量私下认可是0
    DECLARE t_error INTEGER DEFAULT 0; 
    ## continue 继续  hanlder 执行   并且对 t_error重新赋值为1
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; 
    SET autocommit=0;
        START TRANSACTION; 
        UPDATE bank SET balance=balance-100 WHERE cid=1;   
        UPDATE bank SET balance =balance+100 WHERE cid=2;
        IF t_error > 0 THEN 
            ROLLBACK; 
        ELSE 
            COMMIT; 
        END IF; 
     SET autocommit=1;
    END$$ 
DELIMITER ; 
 
CALL test_sp800()

 

概念二个囤积进程的最简便易行的语法是
delimiter $$
create procedure usp_stulist()
begin
  select * from student
end$$
delimiter;

 

          模拟 银行转账!                          

—   创制数据库
CREATE DATABASE  myBank;
—  切换钦赐的数据库
USE myBank;
—  创建表
CREATE  TABLE  IF NOT  EXISTS bank(
customerName  VARCHAR(10) NOT NULL  COMMENT ‘用户名’,
currentMoney  DEGREIZL(拾,2) NOT NULL  COMMENT ‘账户余额’
);
— 插入数据
INSERT INTO bank  VALUES(‘小黑’,50000),(‘小白’,500000);

—  小黑  给小白  转账10000
—   修改两条数据
—    01.小黑-10000
—    02.小白+10000

UPDATE bank SET currentMoney=currentMoney-10000
 WHERE customerName=’小黑’;
 —  故意写错字段名称  让02  报错
UPDATE bank SET currentMoneysss=currentMoney+10000
 WHERE customerName=’小白’;
 

—  开启事务   START TRANSACTION 或许 BEGIN
—  0一.0二  为八个事务
BEGIN
 UPDATE bank SET currentMoney=currentMoney-10000
 WHERE customerName=’小黑’;
 UPDATE bank SET currentMoneysss=currentMoney+10000
 WHERE customerName=’小白’;
—  事务回滚  ROLLBACK
—  提交业务 COMMIT

UPDATE bank SET currentMoney=500000
 WHERE customerName=’小黑’;
—  申明mysql是暗中认可提交业务的!

SET  autocommit=0(关闭工作自动提交) | 1(开启事务自动提交)

— 关闭工作自动提交
SET  autocommit=0;

BEGIN;   —  开启事务
 UPDATE bank SET currentMoney=currentMoney-10000
 WHERE customerName=’小黑’;
 UPDATE bank SET currentMoney=currentMoney+10000
 WHERE customerName=’小白’;
COMMIT;  —  手动提交业务
  UPDATE  bank SET currentMoney=10000;
ROLLBACK;   — 事务回滚

SET  autocommit=壹;  — 恢复活动提交

            视图

一.视图: 正是一张虚拟表,本质上囤积的是一对SQL的相会

—  视图 是一张虚拟的表
   0一.表示一张表的一些数据或许是多张表的回顾数据!
   0贰.协会和多少都是创制在对真表的询问基础之上的!
   0三.视图中存放的多少实际上便是对真实表的引用!
     对视图中的数据进行加多,更新删除都会影响到真实的表!
   04.三个实在的表能够创制N个视图!
   0五.假诺视图关联了多表,不容许增 删!单表能够增删改
   0陆.视图一般都以使用查询!

2.定义视图的语法:
create view VW_stulist(VW_视图的效应)
as
sql语句
 小Tip:当多表中有同名列的时候,在视图这一个虚拟表中,只好有1列。手工业钦点该列是哪个表的

三.视图的使用 和搜索基本表一样,间接通过select
select * from VW_stulist

四.剔除视图
drop view 视图名
drop table
drop database
drop index
drop constraint
百川归海:drop  删除是构造   delete 删除数据

 

五.查看全数库全数视图

 5.一.切换成系统数据库
  use information_schema

 5.2.select * from views \G;

 陆.查看当前库的享有视图
   show tables status where comment=’view’

 七.视图注意事项
一)视图能够查询多表数据
2)视图能够嵌套
3)update,insert,delete不能够封装成视图内容,通过图形化分界面能够操作数据(操作视图数据,影响的是基本表)。
四)删除视图数据的时候,有一定的范围,数据结果来自多表的时候,无法去除

 

—  创设3个视图  只收获 学生姓名 编号 以及考试成绩
CREATE  VIEW view_student_result
AS
SELECT s.studentNo 学生编号,studentName 学生姓名,
studentResult 考试成绩
FROM  student s,result r
WHERE s.`studentNo`=r.`studentNo`
—  查询视图中的内容
SELECT * FROM view_student_result
— 查询mysql数据库中全部的视图
SELECT * FROM information_schema.views;
—  删除视图
DROP  VIEW view_student_result;

—  创设八个表的视图  学生姓名,地址,手提式有线电话机号
CREATE VIEW  view_student
AS
SELECT  studentName 学生姓名,address 地址,phone 手提式有线电话机号
FROM  student

— 查询视图

SELECT  * FROM view_student 

 

事务 一.定义
一条大概多条sql语句的集聚!
事务:就是一群操作的集中,他们同甘共苦。要么都实践成功,…

网站地图xml地图