读书笔记 SQL 事务理解】的更多相关文章

事务的ACID属性 Atomicity 原子性 每个事务作为原子单元工作(即不可以再拆分),也就是说所有数据库变动事务,要么成功要么不成功. SQL Server把每个DML或者 DDL命令都当做一个事务.不允许任何命令只是部分成功. 比如一个UPDATE语句更新500行,除非500行全部更新,否则有任何情况阻止该命令更新.SQL Server会终止该命令更新,并且回滚事务. Consistency 一致性 每个事务,不论成功或失败,数据库中定义的约束状态必须一致,否则会回滚. 比方说一个事务企…
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用SQL语句 简化复杂的SQL操作 使用表的一部分而不是整个表 保护数据:可以赋予访问表的特定部分的权限 可返回与底层表不同格式和表示的数据 如果应用大量或复杂的视图,极可能影响性能,应该先进行测试再应用视图. 18.1.2 视图的规则和限制 视图名必须唯一,与其他的视图和表不同 视图数目没有限制 可…
最近在看深入了解java虚拟机第一版(周志明著),特此写读书笔记,整理其中重要的东西和自己的理解. ”java与c++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出去” 这堵墙所说就是虚拟机,书中也提到了为什么要学习虚拟机: 对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不在需要为每一个new的操作去写配对的delete/free代码而且不容易出现内存泄漏和内存溢出的问题,但是由于内存控制的权力全在交给了虚拟机,所以一旦出现内存泄漏和溢出方面…
目录 概述 第一章: 走进Java 第二章: Java内存区域与内存溢出异常 第三章: 垃圾收集器与内存分配策略 第四章: 虚拟机性能监控与故障处理 第五章: 调优案例分析与实战 第六章: 类文件结构 第七章: 虚拟机类加载机制 第八章: 虚拟机字节码执行引擎 第九章: 类加载及执行子系统的案例 第十章: 早起(编译期)优化 第十一章: 晚期(运行期)优化 第十二章: Java内存模型与线程 第十三章: 线程安全与锁优化 概述 本文是笔记的目录. 书籍中是基于Java1.7的. 去网上找这本书,…
Chapter 9 Transactions and Concurrency SQL Server默认会把每个单独的语句作为一个事务,也就是会自动在每个语句最后提交事务(可以设置IMPLICIT_TRANSACTIONS来改变此默认行为). 事务的四个属性: 原子性 Atomicity.遇到错误时,SQL Server通常会自动回滚事务(除了一些不太严重的错误比如主键冲突.尝试获取锁超时).(可以通过 @@TRANCOUNT 判断当前是否处于一个事务当中) 一致性 Consistency.指同时…
01 - 如何获取SQL命令帮助信息 官方手册 help 或 help command MariaDB [(none)]> help General information about MariaDB can be found at http://mariadb.org List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (\?) Synonym for…
8.1 函数 每个DBMS都有特定的函数.事实上,只有少数的几个函数被所有主要DBMS同时支持. 实现同一功能的函数,在不同的DBMS中的名称和语法极有可能不同,也就是说SQL函数不可移植的. 可移植(portable),所编写的代码可以在多个系统上运行. 根据实际需要谨慎使用函数,并确保做好代码注释,便于以后的理解和维护. 8.2 使用函数 大多数SQL支持以下类型的函数: 8.2.1 文本处理函数 例如:将文本转换为大写的UPPER()函数 MariaDB [sqlbzbh]> SELECT…
10.1 数据分组 使用分组可以将数据分为多个逻辑组,对每个组进行聚集计算. 10.2 创建分组 使用SELECT语句的GROUP BY子句建立分组. GROUP BY子句必须出现在WHERE之后,ORDER BY子句之前. GROUP BY子句可以包含任意数目的列,可以对分组进行嵌套. 如果GUOUP BY子句中嵌套了分组,数据将在最后指定的分组上进行汇总. GUOUP BY子句中的列必须是实际有效的检索列或表达式,不能使用别名. 除聚集计算语句外,SELECT语句中的每一列都必须在GROUP…
13.1 使用表别名 SQL可以对列名.计算字段和表名起别名. 缩短SQL语句 允许在一条SELECT语句中多次使用相同的表. 注意:表别名只在查询执行中使用,不返回到客户端. MariaDB [sqlbzbh]> SELECT cust_name,cust_contact -> FROM Customers AS C, Orders AS O, OrderItems AS OI -> WHERE C.cust_id = O.cust_id -> AND OI.order_num…
不同的DBMS对存储过程的实现不同,差异巨大,这里不涉及具体的DBMS,仅仅说明存储过程的简单含义. 19.1 存储过程 简单来说,存储过程就是为以后使用而保存的一条或多条SQL语句. 可以将存储过程视为批处理文件,但作用不仅限于批处理. 19.2 为什么要使用存储过程 简单.安全.高性能. 通过封装,简化复杂的操作 数据一致性:使用同一存储过程 简化变动管理:只需修改储存过程的代码 提高性能:储存过程通常以编译过的形式存储,易于调用 不同的DBMS对存储过程的定义不同,比较难以移植. 编写存储…