SQL基础教程读书笔记-2
4 数据更新
4.1数据的插入
1.清单{①列清单 ②值清单
列清单和值清单的数量必须保持一致。
原则上,执行一次INSERT语句会插入一行数据
对表进行全列INSERT时,可以省略表名后的列清单
2.插入默认值(默认值)
①显式插入:
INSERT INTO ProductIns
(product_id,product_name,product_type,sale_price,purchase_price,regist_date)
VALUES
('0007','擦菜板','厨房用具',DEFAULT,790,'2009-04-28');
②隐式插入:
INSERT INTO ProductIns
(product_id,product_name,product_type,sale_price,regist_date)
VALUES
('0007','擦菜板','厨房用具',790,'2009-04-28');
3.从其他表复制数据
INSERT...SELECT语句
INSERT INTO ProductCopy
(prodcut_id,product_name,product_type,sale_price,purchase_price,regist_date)
SELECT prodcut_id,product_name,product_type,sale_price,purchase_price,regist_date
FROM Product;
INSERT语句的SELECT语句中,可以使用WHERE或者GROUP子句等任何SQL语法(但使用ORDER BY子句并不会产生任何效果)。
4.2 数据的删除
DELETE语句的删除对象并不是表或者列,而是记录(行)
4.3 数据的更新
1.使用NULL进行更新
使用UPDATE语句可以将值清空为NULL(但只限于未设置NOT NULL约束的列)。
2.多列更新
①
UPDATE Product
SET sale_price = sale_price * 10,
purshase_price = purchase_price / 2
WHERE product_type = '厨房用具';
②
UPDATE Product
SET (sale_price,purshase_price) =
(sale_price * 10,purchase_price / 2)
WHERE product_type = '厨房用具';
方法①在所有DBMS中都可以使用,方法②在某些DBMS中是无法使用的。
4.4 事务
1.什么是事务?
事务就是需要在同一个处理单元中执行的一系列更新处理①INSERT ②DELETE ③UPDATE的集合。
2.事务的语法
事务开始语句;
DML语句①;
DML语句②;
DML语句③;
事务结束语句(COMMIT或ROLLBACK)
事务开始:在标准SQL中并没有定义事务的开始语句。
- SQL SERVER ;PostgreSQL
BEGIN TRANSACTION;
- MySQL
START TRANSACTION;
- Oracle DB2
无
事务结束:
COMMIT;
ROLLBACK;
3.事务处理何时开始
几乎所有的数据库产品的事务都无需开始指令。这是因为大部分情况下,事务在数据库连接建立时已经悄悄开始了,并不需要用户再明确发出开始指令。
那应该如何区分各个事务?
① 每条SQL语句就是一个事务(自动提交模式)
② 直到用户执行COMMIT或者ROLLBACK为止算作下一个事务。
4.ACID特性:
原子性(Atomicity):是指在事务结束时,其中所包含的更新处理要么全部执行,要么全部不执行的特性。
一致性(Consistency):指的是事务中包含的处理,要满足数据库提前设置的约束。
隔离性(Isolation):不同事务之间互不干扰的特性。在某个事务进行的更改,在该事务结束之前,对其他事务而言是不可见的。
持久性(Durability):耐久性,指的是事务(不论提交还是回滚)一旦结束,DBMS会保证该点的数据状态得以保存的特性。
SQL基础教程读书笔记-2的更多相关文章
- SQL基础教程读书笔记-1
查询基础 2.2 算数运算符和比较运算符 2.2.1算数运算符 + - * / 需要注意NULL 5 + NULL 10 - NULL 1 * NULL 4 / NULL NULL / 9 NULL ...
- SQL基础教程读书笔记-3
5 复杂查询 5.1 视图 1.表和视图的区别表:保存的是实际的数据视图:保存的是SELECT语句.从视图读取数据时,视图会在内部执行该SELECT语句并创建出一张临时表. 2.视图的优点① 无需保存 ...
- SQL Server2012 T-SQL基础教程--读书笔记(1-4章)
SQL Server2012 T-SQL基础教程--读书笔记(1-4章) SqlServer T-SQL 示例数据库:点我 Chapter 01 T-SQL 查询和编程背景 1.3 创建表和定义数据的 ...
- SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)
SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...
- SQL Server2012 T-SQL基础教程--读书笔记(5-7章)
SQL Server2012 T-SQL基础教程--读书笔记(5-7章) SqlServer T-SQL 示例数据库:点我 Chapter 05 表表达式 5.1 派生表 5.1.1 分配列别名 5. ...
- 【索引】Objective-C基础教程-读书笔记
第1章 启程 http://www.cnblogs.com/duxiuxing/p/5492219.html 第2章 对C的扩展 第3章 面向对象编程的基础知识 第4章 继承 第5章 复合 第6章 ...
- 《Python基础教程读书笔记》
第1章 快速构造:基础知识 1.2交互式构造器 不强制分号,一行就是一行.可以加上分号 1.4数字和表达式 加.减.乘.除.整除.求余.指数.取反(-例如-2**2,**的优先级比-大) from _ ...
- 【Objective-C基础教程-读书笔记】第1章 启程
在第1章里面,作者主要以一种站在世界中心呼唤爱的姿态,给读者们打打鸡血洗洗脑,鼓励大家,投入时间学习Objective-C,值得啊! 首先,Objective-C既能用来开发OS X平台上的APP,又 ...
- Objective-C基础教程读书笔记(6)
第6章 源文件组织 到目前为止,我们讨论过的所有项目都是把源代码统统放入main.m文件中.类的main()函数,@interface和@implementation部分都被塞入同一个文件里.这种结构 ...
随机推荐
- 一条咸鱼的梦--python
毕业到现在已经有一年多了,或者说已经工作了一年多,这样以一个社会人的说法比较贴切吧.工作的这段时间里,我曾经有无数次的在问我该干什么,我想干什么,这好像一个深奥的哲学问题,好像并不是只有我一个毕业生思 ...
- 文本宽度的测量--measureText
HTML5中的canvas提供了文字宽度的测量方法: ctx.measureText(string).width var c=document.getElementById("myCanva ...
- 数组删除操作 splice
原理通过设置 函数的 length 属性 var a = [1, 2, 3, 4]; a.length = 3 ; 结果 : a = [1,2,3]
- Java多线程其他
1.interrupt()方法 interrupt方法不会真正中断线程,它只会清楚线程的wait,sleep,join的受阻状态,时线程重新获得CPU的执行权. 此时如果再次调用线程的wait,sle ...
- main之前初始化流程
main之前初始化流程 本文分别介绍Keil调用的ARMCC以及ARM-NONE-EABI-GCC两个编译器在main之前的操作: Keil MDK启动文件 总结一下MDK的启动流程: 1.系统初始化 ...
- 【OpenCV】通过ROI区域以及掩码实现图像叠加
在图像处理领域,我们常常需要设置感兴趣区域(ROI,region of interest),来专注或者简化我们的工作过程 .也就是从图像中选择的一个图像区域,这个区域是我们图像分析所关注的重点.我们圈 ...
- 使用Docker跑MySQL 作为Django的存储后端
Docker的好处不科普了,用过的都说好. 不想污染自己开发机器上的文件环境,本萌新使用Docker运行Mysql,Redis来作为Django的存储后端和缓存. 在第一次安装过程中,我遇到了一些问题 ...
- Bash 常用快捷键(转)
在mtysql client中按HOME键和END键失效,查了也没有找到原因 使用Bash常用的快捷方式即可. http://blog.csdn.net/mingzhou/article/detail ...
- ECMAScript6词法
ES6简介 ECMAScript 6.0(简称 ES6)是 JavaScript 语言的下一代标准,它于2015 年 6 月正式发布.ECMAScript 和 JavaScript 的关系是,前者是后 ...
- sort学习 - LeetCode #406 Queue Reconstruction by Height
用python实现多级排序,可以像C语言那样写个my_cmp,然后在sort的时候赋给参数cmp即可 但实际上,python处理cmp 是很慢的,因为每次比较都会调用my_cmp:而使用key和rev ...