数据库 - [ 视图 事务 ]

 

目录

视图

事务(Transaction)


Oracle对象教程:视图(View)创建使用,视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。只需要简单的SELECT…FROM即可。

视图

具有以下优点:

  •     可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。
  •     可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。
  •     限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定的安全性。
  •     从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。

语法结构:创建视图

CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name

AS

SELECT查询

[WITH READ ONLY CONSTRAINT]

语法解析:

    OR REPLACE:如果视图已经存在,则替换旧视图。

    FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。

    NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。

    WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

修改视图

CREATE OR REPLACE VIEW 视图名

AS

SELECT */字段名 FROM 表名;

执行修改后的视图语句:desc  视图名;

查看视图:show  tables     show  full  tables

查看创建该视图的详细语句:show  create  view  视图名;

删除视图:drop  view  数据库名.视图名;

事务(Transaction

事务必须具备4个原则,即所谓的ACID的特性

1、原子性(Atomicity)

2、一致性(Consistency)

3、隔离性(Isolation)

4、持续性/永久性(Durability)

事务提交与回滚

(回滚:类似于虚拟机的快照)

1、开始事务

格式为:start  transaction  | begin  work

2、提交事务

 

什么是事务

可以把一系列要执行的操作称为事务,而事务管理就是管理这些操作要么完全执行,要么完全不执行。

经典的事务举例:A要给B转钱,首先A的钱减少了,但是突然的数据库断电了,导致无法给B加钱,然后由于丢失数据,B不承认收到A的钱;在这里事务就是确保加钱和减钱两个都完全执行或完全不执行,如果加钱失败,那么不会发生减钱。

事务的开启与提交

在 MySQL 命令行的默认下,事务采用自动提交(autocommit=1)模式。意味着,当你执行一个修改sql语句,MySQL 会立刻更新存储到磁盘中。也就是会立马执行commit操作。

因此开启一个手动事务必须使用begin,start transaction或者set autocommit=0:

commit 表示提交事务,即提交事务的所有操作。具体地说,就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中,事务正常结束。

提交事务也有对应的三种方式:

提交事务,意味着将事务开始以来所执行的所有数据修改成为数据库的永久部分,因此也标志着一个事务的结束。一旦执行了该命令,将不能回滚事务。只有在所有修改都准备好提交给数据库时,才执行这一操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你可知这世上再难遇我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值