电脑技术网——专业手机电脑知识平台,关注科技、手机、电脑、智能硬件
MySQLMSSQLAccessOracle

MySQL(二)--事务与视图

2020-10-29 17:30:04 出处:[ 菜菜电脑网 ] 人气:次阅读
  • 一、事务
    • 1、递交
    • 2、回滚
    • 3、ACID特性
  • 二、视图
    • 1、创始人视图
    • 2、写入视图
    • 3、更新视图
    • 4、可用视图
  • 三、子检索
    • 1、 运用于子核对
    • 2、 标量子搜索
    • 3、 关联子搜索

一、事务

在 RDBMS 中,事务是对表中数据顺利进行更新的单位。有趣来讲,事务就是必须在同一个处理单元中指派的一系列更新执行的交集。

事务开始语句START TRANSACTION;      DML语句①;      DML语句②;      DML语句③;         .         .         .事务落幕语句(COMMIT或者ROLLBACK);

1、建议书

COMMIT 是草拟事务包括的全部更新管控的过后指令,大约文件处理方式中的布满复原。一旦提出,就无法以后到事务开始前的状态了。

2、回滚

ROLLBACK 是终止事务还包括的全部更新解决问题的落幕指令,总和文件管控中的抛弃存留。一旦回滚,数据库就可能会趋于稳定到事务开始之前的状态。

3、ACID特性

DBMS 的事务都遵循四种特性,将这四种特性的首字母联结痛快专指为 ACID 特性。

  • 原子性(Atomicity) 原子性是称之为在事务落幕时,其中所都有的更新妥善处理要么全部监督,要么实际上不指派。
  • 一致性(Consistency) 一致性常指的是事务中相关联的执行要充分利用数据库原定设置的约束,如主键约束或者 NOT NULL 约束等。例如,设置了 NOT NULL 约束的至多是不用更新为 NULL 的,设法填充无视主键约束的记录就则会差错,无法督导。对事务来说,这些不合法的 SQL 时会被回滚。
  • 封闭性(Isolation) 受控性指的是前提多种不同事务之间互不妨碍的特性。该特性保障了事务之间不必互相嵌套。此外,在某个事务中进行时的改回,在该事务落幕之前,对其他事务而言是不可见的。因此,即使某个事务向表中移除了记录,在从未审批之前,其他事务也是看见最初填充的记录的。
  • 持久性(Durability) 持久性称之为的是在事务(不论是提出还是回滚)中止后,DBMS 只能应有该时间点的数据状态都会被保有的特性。即使由于系统故障避免数据出错,数据库也一定能通过某种手段顺利进行回复。

二、视图

视图和表的本质多种不同在于“到底复原了实际的数据”。

表中存储的是实际数据,而视图中存放的就是指表中放进数据所用到的SELECT语句。

我们某种程度将经常用作的SELECT语句制做视图。

1、成立视图

--格式:CREATE VIEW 视图名称(<视图Pardosa1>, <视图入选为2>, ……) AS <SELECT语句>CREATE VIEW v1 (product_name, name_cnt)AS SELECT product_name, count(*)FROM    表名/视图名GROUP BY product_name

肯定:

  • 可能会在视图的基础上始创视图。对多数 DBMS 来说,多看重图会减小 SQL 的性能。
  • 定义视图时没法采用 ORDER BY子句

2、撤下视图

--格式:DROP VIEW 视图名称DROP VIEW v1

3、更新视图

-- 格式:ALTER VIEW 视图名称 AS <SELECT语句>-- 格式:INSERT INTO 视图名称 VALUES(...)

警惕:

  • 视图和同上必需同时开展更新,因此通过汇总(裂解融合连表)给予的视图无法进行时更新INSERT。

做到,对视图的更新归根结底是对视图所对应的此表透过更新。

4、运用于视图

用于视图时,将其当成备注透过加载即可,由于视图是ID列于,所以无法适用其对真实列于完成创始人、更新和删减转换,仅能要用键入用。

select * from v1

三、子查找

1、 适用子键入

子查找就是一次性视图(SELECT语句)。与视图有所不同,子搜索在SELECT语句拒绝执行再行之后就才会消失。

-- 根据商品种类人口统计商品数量的视图CREATE VIEW ProductSum (product_type, cnt_product)ASSELECT product_type, COUNT(*)  FROM Product GROUP BY product_type;  -- 断定始创好的视图SELECT product_type, cnt_product  FROM ProductSum;  --子搜索SELECT product_type, cnt_product  FROM (SELECT product_type, COUNT(*)           FROM Product    GROUP BY product_type)AS ProductSum;

2、 标量子核对

标量子浏览则有一个特殊性的上限,那就是必须而且仅仅前往 1 行 1 列于的结果,也就是留在表中某一行的某一列的值。

SELECT product_id, product_name, sale_price  FROM Product WHERE sale_price > (SELECT AVG(sale_price)                       FROM Product);

3、 关联子查阅

在细分的组内展开比较时,并不需要用于关联子键入。

--子核对中去除的 WHERE 子句的条件--该条件的意思是,在同一商品种类中对各商品的销售单价和平均值单价进行时比较。SELECT product_id, product_name, sale_price  FROM Product AS P1 WHERE sale_price > (SELECT AVG(sale_price)                          FROM Product AS P2                          WHERE P1.product_type = P2.product_type                         GROUP BY product_type);

关于我们 - 广告合作 - 联系我们 - 免责声明 - 网站地图 - 投诉建议 - 在线投稿

©CopyRight 2008-2020 caicaipc.com Inc All Rights Reserved.
菜菜电脑网 版权所有 联系QQ:173533152