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的更多相关文章

  1. SQL基础教程读书笔记-1

    查询基础 2.2 算数运算符和比较运算符 2.2.1算数运算符 + - * / 需要注意NULL 5 + NULL 10 - NULL 1 * NULL 4 / NULL NULL / 9 NULL ...

  2. SQL基础教程读书笔记-3

    5 复杂查询 5.1 视图 1.表和视图的区别表:保存的是实际的数据视图:保存的是SELECT语句.从视图读取数据时,视图会在内部执行该SELECT语句并创建出一张临时表. 2.视图的优点① 无需保存 ...

  3. SQL Server2012 T-SQL基础教程--读书笔记(1-4章)

    SQL Server2012 T-SQL基础教程--读书笔记(1-4章) SqlServer T-SQL 示例数据库:点我 Chapter 01 T-SQL 查询和编程背景 1.3 创建表和定义数据的 ...

  4. SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)

    SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...

  5. SQL Server2012 T-SQL基础教程--读书笔记(5-7章)

    SQL Server2012 T-SQL基础教程--读书笔记(5-7章) SqlServer T-SQL 示例数据库:点我 Chapter 05 表表达式 5.1 派生表 5.1.1 分配列别名 5. ...

  6. 【索引】Objective-C基础教程-读书笔记

    第1章 启程 http://www.cnblogs.com/duxiuxing/p/5492219.html 第2章 对C的扩展 第3章  面向对象编程的基础知识 第4章 继承 第5章 复合 第6章 ...

  7. 《Python基础教程读书笔记》

    第1章 快速构造:基础知识 1.2交互式构造器 不强制分号,一行就是一行.可以加上分号 1.4数字和表达式 加.减.乘.除.整除.求余.指数.取反(-例如-2**2,**的优先级比-大) from _ ...

  8. 【Objective-C基础教程-读书笔记】第1章 启程

    在第1章里面,作者主要以一种站在世界中心呼唤爱的姿态,给读者们打打鸡血洗洗脑,鼓励大家,投入时间学习Objective-C,值得啊! 首先,Objective-C既能用来开发OS X平台上的APP,又 ...

  9. Objective-C基础教程读书笔记(6)

    第6章 源文件组织 到目前为止,我们讨论过的所有项目都是把源代码统统放入main.m文件中.类的main()函数,@interface和@implementation部分都被塞入同一个文件里.这种结构 ...

随机推荐

  1. 面试题----寻找比一个N位数大的“下”一个数

    题目描述 写出一个算法,实现如下功能: 给定一个N位数字组成的数,找出比这个数大的由相同数字组成的下一个数 例如:如果数字为 25468, 则结果为25486 如果数字为 21765, 则结果为 25 ...

  2. java多线程开发容易犯的错误

    昨天在社区上看到有人讨论多线程使用,多线程遇到一些问题以及一些使用技巧记录一下.为什么要使用多线程, 不能是为了用而用,和设计模式一样用的合理,会让程序更易于理解,用的不合理反而会让程序变得更难理解. ...

  3. 利用HTML5新特性改变浏览器地址后不刷新页面

    原文:http://www.cnblogs.com/xuchengzone/archive/2013/04/18/html5-history-pushstate.html   作为一个程序员,上Git ...

  4. Formatting the event object

    尽量将IE与DOM函数事件对象不同的性质或方法转成DOM标准   EventUtil.formatEvent = function (oEvent) {    if (isIE && ...

  5. Problem C: 线性表的基本操作

    Description 线性表是一类重要的且基础的数据结构.请定义MyList类,来模拟针对线性表的插入.删除等操作: 1. 数据成员int *elements:线性表元素. 2. 数据成员int l ...

  6. 到底vuex是什么?

    Vuex 什么是Vuex? 官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 个人理 ...

  7. MS-SQL 错误: The offset specified in a OFFSET clause may not be negative

    Example 1 : (Fetch clause must be greater than zero) USE AdventureWorks2012 GO SELECT * FROM [HumanR ...

  8. [转载] 详述三种现代JVM语言--Groovy,Scala和Clojure

    转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的 ...

  9. 自定义统一api返回json格式(app后台框架搭建三)

    在统一json自定义格式的方式有多种:1,直接重写@reposeBody的实现,2,自定义一个注解,自己去解析对象成为json字符串进行返回 第一种方式,我就不推荐,想弄得的话,可以自己去研究一下源码 ...

  10. ButterKnife的使用以及不能自动生成代码问题的解决

    ButterKnife的使用以及不能自动生成代码问题的解决 转载请注明出处:http://www.cnblogs.com/zhengjunfei/p/5910497.html 最近换了个工作刚入职,又 ...