目录
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 数据库名.视图名;
事务必须具备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 表示提交事务,即提交事务的所有操作。具体地说,就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中,事务正常结束。
提交事务也有对应的三种方式:
提交事务,意味着将事务开始以来所执行的所有数据修改成为数据库的永久部分,因此也标志着一个事务的结束。一旦执行了该命令,将不能回滚事务。只有在所有修改都准备好提交给数据库时,才执行这一操作。