《SQL 基础教程》第四章:数据更新
数据更新包括了表存在的情况下数据的添加,数据的删除和数据的更新,主要是下面三个语句:
- INSERT 语句
- DELETE 语句
- UPDATE 语句
在本章的最后,讲了关于「事务」的相关知识,用于对作出的更改进行决定——是否上交或者舍弃改动.
INSERT 语句
基本语法
INSERT INTO <tablename> (column1, column2, column3, ....)
VALUES (value1, value2, value3, ...);
术语:
- 清单:在 SQL 中,“ () ”称为「清单」,其中包含列名的叫做「列清单」
- VALUE 子句
- 值清单: VALUE 子句后为值清单
注意:
- 可以省略列清单
- 添加 NULL 值的时候,在值清单中加入 NULL
DEFAULT 关键字
在创建表格的时候,可以使用 DEFAULT 约束,例如:
CREATE TABLE ProductIns
(sale_price INTEGER DEFAULT 0,
...);
在 VALUE 子句的清单中可指定 DEFAULT 关键字,例如:
INSERT INTO ProductIns VALUES ('0007', ‘擦菜板’,‘厨房用具’, DEFAULT, 790, '2009-04-28');
INSERT...SELECT — 从其他表中复制数据
格式
(举例为从 Product 复制数据到 ProductCopy 表中)
INSERT INTO ProductCopy
SELECT product_id, product_name. ...
FROM Product;
其中的 SELECT 语句
包含 SELECT 语句的 INSERT 语句, SELECT 语句中可以添加 WHERE 子句和 GROUP BY 子句.
DELETE 语句
定义:
DELETE 语句用于删除表中的记录(行).
清空整张表
有三种方法清空整张表,其中 TRUNCATE 速度最快:
- DELETE FROM ;
- TRUNCATE ;
- DROP ;
指定条件的 DELETE 语句
DELETE .... WHERE
注意:
由于DELETE 只能删除记录,因此不能使用 GROUP BY 等子句.
UPDATE 语句
格式
UPDATE <tablename>
SET <columnname> = <expression>;
其中更新的值都记录在 SET 子句中.
指定条件的 UPDATE 语句
UPDATE...WHERE...
多列更新
定义:当对于满足同一条件的数据进行多条更新的时候,可以使用多列更新的方法:
有两种方式可以进行多列更新.
方法1:将列分隔排列
UPDATE Product
SET sale_price = sale_price * 10,
purchase_price = purchase_price / 2
WHERE product_type = '厨房用具‘.
方法2:将列清单化
UPDATE Product
SET (sale_price ,purchase_price) = (sale_price * 10,
purchase_price = purchase_price / 2)
WHERE product_type = '厨房用具‘.
事务
定义:
需要在统一处理单元中执行的一系列变更处理的集合叫做事务.
使用指令创建事务的语法
- 开始事务:BEGIN TRANSACTION;
- 提交处理:COMMIT
取消处理: ROLLBACK
不使用指令时创建事务的模式
DBMS 有两种模式:
- 自动提交模式:每条 SQL 语句就是一个事务
- 直到用户执行 COMMIT 或者 ROLLBACK 为一个事务
ACID 特性
DBMS 都遵循 ACID 特性.它们分别是:
- Atomicity 原子性
- Consistency 一致性
- Isolation 隔离性
- Durability 持久性
《SQL 基础教程》第四章:数据更新的更多相关文章
- 《SQL 基础教程》第二章:查询基础
这一章的结构如下: SELECT 语句基础 算术运算符和比较运算符 逻辑运算符 SELECT 语句可用于查询数据,并且可以设定条件来查询具有特定值的记录.条件的设定就需要算数运算符.比较运算符和逻辑运 ...
- 《SQL 基础教程》—第一章:数据库与 SQL
导言 这一章的内容如下: 数据库简介 SQL 概要 表的创建 表的删除与更新 数据库简介 定义: Database, 是大量数据的集合Database Management System,是用于管理数 ...
- 《SQL基础教程》+ 《SQL进阶教程》 学习笔记
写在前面:本文主要注重 SQL 的理论.主流覆盖的功能范围及其基本语法/用法.至于详细的 SQL 语法/用法,因为每家 DBMS 都有些许不同,我会在以后专门介绍某款DBMS(例如 PostgreSQ ...
- [SQL基础教程] 4-4 事务
[SQL基础教程] 4 数据更新 4-4 事务 事务 需要在同一处理单元中执行的一系列更新处理的集合 创建事务 事务开始语句; DML语句1; DML语句2; . . . 事务结束语句; 事务开始语句 ...
- [SQL基础教程] 4-3 数据的更新(UPDATE)
[SQL基础教程] C4 数据更新 4-3 数据的更新(UPDATE) UPDATE UPDATE <表名> SET <列名> = <表达式>; UPDATE &l ...
- [SQL基础教程] 4-2 数据删除(DELETE)
[SQL基础教程] C4 数据更新 4-2 数据删除(DELETE) DROP TABLE / DELETE DROP TABLE - 完全删除表 DELETE - 仅删除数据,保留表容器 DELET ...
- [SQL基础教程] 4-1 数据的插入(INSERT)
[SQL基础教程] C4 数据更新 4-1 数据的插入(INSERT) INSERT INSERT INTO <表名>(列1,列2...) VALUES(值1,值2...); 清单 用() ...
- 推荐《SQL基础教程(第2版)》中文PDF+源代码+习题答案
我认为<SQL基础教程(第2版)>非常适合数据库学习的初学者.论述的角度是读者的角度,会换位思考到读者在看到这一段时候会发出怎样的疑问,非常难得:原始数据的例题只有一道,但是可以反复从不同 ...
- Objective-C 基础教程第三章,面向对象编程基础知
目录 Objective-C 基础教程第三章,面向对象编程基础知 0x00 前言 0x01 间接(indirection) 0x02 面向对象编程中使用间接 面向过程编程 面向对象编程 0x03 OC ...
- [Learn Android Studio 汉化教程]第四章 : Refactoring Code
[Learn Android Studio 汉化教程]第四章 : Refactoring Code 第四章 Refactoring Code 重构代码 在Android Studio中开发,解决 ...
随机推荐
- [No0000196]一文读懂Java 11的ZGC为何如此高效
导读:GC是大部分现代语言内置的特性,Java 11 新加入的ZGC号称可以达到10ms 以下的 GC 停顿,本文作者对这一新功能进行了深入解析.同时还对还对这一新功能带来的其他可能性做了展望.ZGC ...
- gcc update in centos to 6.3 by scl
CentOS 7虽然已经出了很多年了,但依然会有很多人选择安装CentOS 6,CentOS 6有些依赖包和软件都比较老旧,如今天的主角gcc编译器,CentOS 6的gcc版本为4.4,CentOS ...
- [摘抄] SFM 和 Visual SLAM
来自知乎: SFM和vSLAM基本讨论的是同一问题,不过SFM是vision方向的叫法,而vSLAM是robotics方向的叫法. vSLAM所谓的mapping,vision方向叫structure ...
- [js]js原型链继承小结
这是之前总结的, 发现有很多的毛病,就是重点不突出,重新翻看的时候还是得耗费很长时间去理解这玩意. js中的继承 js中什么是类 1,类是函数数据类型 2.每个类有一个自带prototype属性 pr ...
- awk 同时指定多个分隔符
$ echo "id: xxx(6667)xxx"|awk -F "[()]" '{print $2}' $ 6667 $ echo "abc[def ...
- 在 .Net Core1.0 上使用Mysql 的EFcore
https://www.codeproject.com/Articles/1218348/Using-EF-Core-with-MySQL-in-DotNet-Core
- flask中单选、多选、下拉框的获取
1.单选: source = request.form.get('source') 2.多选: joy = request.form.getlist('joy') 或者 joy = re ...
- word之高级
1.更正拼写和语法错误. 2.取消自动编号. 3.添加删除水印. 4.段落设置首行缩进2个字符. 需要先选中需要设置的段落 5.文字覆盖. insert键切换插入与改写功能.修改word状态栏上的改写 ...
- 给eclipse设置自动补全的步骤
按照如下步骤:window—>preferences—>java—>editor—>content assist—>然后找到如下图所示的输入框,然后输入如下的字母:.qw ...
- Python sqlalchemy orm 常用操作
增add # 创建表1 # 注:高级封装 import sqlalchemy # 调用链接数据库 from sqlalchemy import create_engine # 调用基类Base fro ...