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. Problem E

    题意:看电视,计算出最多看多少个电视,已给出电视起始终止时间: 解体思路:思路这个题拿到手没多想,上课的例题,就照葫芦画瓢写了一个: 感悟:虽然刚开始学贪心,第一遍代码就AC了有点小小的成就感: 代码 ...

  2. Phalanx

    Phalanx Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Stat ...

  3. PHP小技巧

    1.js获取服务器年月日 var date= '<?php echo date("Y-m-d",time())?>';//获取服务器年月

  4. 学习RocketMQ (一) 安装并且启动MQ

    1.使用RocketMQ 的 软件要求 64bit OS, Linux/Unix/Mac is recommended;64bit JDK 1.8+;Maven 3.2.xGit 1)安装Linux ...

  5. Linux常用命令100个用法

    平时用linux时,我有一个习惯就是把遇到的,比较有用,并且容易忘的命令,放到一个文本文件中,没事的时候可以拿出来看看,这样可以加深映像,时间长了这些命令的用法基本上都能掌握了.以下是100个用法,有 ...

  6. SQL server中事务的四个属性特征(ACID)

    事务的概念.类型和四个特征(ACID). 1.事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Se ...

  7. C# 可空引用类型

    可空引用类型是C#8.0计划新增的一个功能,不过已经发布了预览版本,今天我们来体验一下可空引用类型. 安装 您必须下载Visual Studio 2017 15.5预览版(目前最新发布版本是15.4) ...

  8. 激光相机数据融合(3)--KITTI数据集

    KITTI数据集提供了双目图像,激光数据,和imu/gps位置信息,其中还包括了大量的算法.下载地址为:http://www.cvlibs.net/datasets/kitti/raw_data.ph ...

  9. java中“==”号的运用

    对于值类型,“==”号会判断其是否相等 对于引用类型,“==”对于引用类型则会判断引用(内存地址)是否相同,“==”运算只是调用了对象的equal()方法 public static void mai ...

  10. http2.4简单配置

    前言: 上一篇博文说到了http的发展以及http完整请求响应的工作流程. 一.开篇: 从最简单的静态服务器开始. 之前说过,http是应用层协议,必定会在用户空间体现出具体的应用程序.常见的http ...