SQL基础教程学习第六站:数据更新
仅用于记录学习,欢迎批评指正,共同交流,共同进步,大神勿喷
系列文章
SQL基础教程学习第一站:PostgreSQL下载安装以及如何创建并登录数据库;
SQL基础教程学习第二站:数据库基本知识;
SQL基础教程学习第三站:创建表;
SQL基础教程学习第四站:查询基础;
SQL基础教程学习第五站:聚合和排序;
SQL基础教程学习第六站:数据更新;
SQL基础教程学习第七站:复杂查询;
SQL基础教程学习第八站:函数、谓词、CASE表达式;
SQL基础教程学习第九站:集合运算;
SQL基础教程学习第十站:SQL高级处理;
SQL基础教程示例代码
SQL基础教程第四章
4-1 数据的插入(INTERT语句的使用方法)
CREATE TABLE ProductIns
(product_id CHAR(4) NOT NULL ,
product_name VARCHAR(100) NOT NULL ,
product_type VARCHAR(100) NOT NULL ,
sale_price INTEGER DEFAULT 0, --插入默认值,此处销售单价的默认值设定为0
purchase_price INTEGER ,
regist_date DATE ,
PRIMARY KEY (product_id));
INSERT into ProductIns (product_id,product_name,product_type,sale_price,purchase_price,
regist_date) VALUES (‘0001’,‘T恤衫’,‘衣服’,1000,500,‘2009-09-20’);
–列清单可以省略,在前面创建表时有演示
–插入NULL:约束条件设为非空时,不能插入
–删除列清单和值清单的purchase_price列
INSERT into ProductIns (product_id,product_name,product_type,sale_price,
regist_date) VALUES (‘0008’ , ‘圆珠笔’,‘办公用品’,100,‘2009-11-11’);
–插入默认值:
–法一:显式方法:插入DEFAULT关键字
INSERT INTO ProductIns VALUES (‘0007’ , ‘擦菜板’,‘厨房用具’,DEFAULT,790,‘2008-04-28’);
SELECT *
FROM ProductIns
WHERE product_id = ‘0007’
–法二:隐式方法:删除列清单和值清单的sale_price列
INSERT into ProductIns (product_id,product_name,product_type,purchase_price,
regist_date) VALUES (‘0007’ , ‘擦菜板’,‘厨房用具’,790,‘2008-04-28’);
–未使用默认值
INSERT INTO ProductIns VALUES (‘0005’ , ‘高压锅’,‘厨房用具’,6800,5000,‘2009-01-15’);
SELECT *
FROM ProductIns
WHERE product_id = ‘0005’
–从其他表中复制数据:表名改变,其他不变
CREATE TABLE ProductCopy
(product_id CHAR(4) NOT NULL ,
product_name VARCHAR(100) NOT NULL ,
product_type VARCHAR(100) NOT NULL ,
sale_price INTEGER ,
purchase_price INTEGER ,
regist_date DATE ,
PRIMARY KEY (product_id));
INSERT into ProductCopy (product_id,product_name,product_type,sale_price,purchase_price,regist_date)
SELECT product_id,product_name,product_type,sale_price,purchase_price,regist_date
FROM Product;
–查看结果
SELECT * FROM ProductCopy
–汇总表
CREATE TABLE ProductType
(product_type VARCHAR(100) NOT NULL ,
sum_sale_price INTEGER ,
sum_purchase_price INTEGER ,
PRIMARY KEY (product_type ));
INSERT into ProductType (product_type,sum_sale_price,sum_purchase_price)
SELECT product_type,SUM(sale_price),SUM(purchase_price)
FROM Product
GROUP BY product_type;
–查看结果
SELECT * FROM ProductType;
注意:INSERT语句中的SELECT语句中,可以使用WHERE子句或者GROUP BY子句等任何SQL语法,
但使用ORDER BY子句并不会产生任何效果.
4-2 数据的删除
–完全删除表: DROP TABLE <表名>;
–只留表的框架,完全删除表中的数据: DELETE FROM <表名>;
–指定删除对象:DELETE FROM <表名> WHERE <条件> ;
–注:DELETE语句中只能使用WHERE子句,GROUP BY子句和ORDER BY子句是抽取数据的,在删除数据时并不能起到作用
4-3 数据的更新
–UPDATE语句的基本语法
UPDATE Product
SET regist_date = ‘2009-10-10’;
SELECT *
FROM Product ;
–指定条件的UPDATE
UPDATE Product
SET sale_price = sale_price*10
WHERE product_type =‘厨房用具’;
SELECT *
FROM Product ;
–使用NULL进行更新
UPDATE Product
SET regist_date = NULL
WHERE product_id = ‘0008’;
SELECT *
FROM Product ;
–多列更新:一次更新一个条件可能会造成浪费
UPDATE Product
SET sale_price = sale_price*10,
purchase_price = purchase_price/2
WHERE product_type =‘厨房用具’;
SELECT *
FROM Product ;
4-4 事务
**事务:**对表中数据进行更新的单位,简单来讲就是需要在同一个处理单元中执行的一系列更新处理的集合
UPDATE Product
SET sale_price = sale_price - 1000
WHERE product_name = ‘运动T恤’;
UPDATE Product
SET sale_price = sale_price + 1000
WHERE product_name =‘T恤’;
SELECT *
FROM Product ;
–创建事务
事务开始语句:BEGIN TRANSACTION;
语句1、语句2…
事务结束语句:COMMIT:提交事务包含的全部更新处理的结束指令,相当于覆盖保存,
一旦提交,无法恢复事务开始之前状态(谨慎)
或ROLLBACK:取消事务包含全部更新处理的结束指令,相当于放弃保存,
一旦回滚,数据库就会恢复事务开始之前状态(无需谨慎)
–ACID特性
DBMS的事务具有四种特性:原子性、一致性、隔离性、持久性
原子性:在事务结束时,其中包含的更新处理要么全部执行,要么完全不执行
一致性:事务中包含的处理要满足数据库提前设置的约束条件
隔离性:保证不同事务之间互不干扰
持久性:事务结束时,DBMS能保证该时间点的数据状态会被保存的特性 。
SQL基础教程学习第六站:数据更新相关推荐
- SQL基础教程MICK版 ···第六章总结
SQL基础教程MICK版 ···第六章总结 函数 谓语 CASE语句 -- 有点像SWITCH语句 函数 函数的分类 算术函数 聚合函数 字符串函数 转换函数 日期函数 算术函数 ABS括号内数值 返 ...
- [读书笔记]《SQL基础教程》
<sql基础教程>这本书里面讲的内容大部分都是几个主流数据库(mysql.sql server.oracle)之间的共同点,知识点比较基础,适合sql入门学习.但对于已经系统学过数据的人来 ...
- SQL数据库教程-学习笔记2
SQL数据库教程-学习笔记2 文章目录 SQL数据库教程-学习笔记2 三.DML语言的学习 1.插入语句:insert into 2.修改语句:update 3.删除语句:delete 4.练习题 四 ...
- sql基础教程和mysql基础教程_书评「SQL基础教程(第2版)」| 你应该知道的基础知识点梳理·上...
写在前面关于这本书:SQL的基础教程,可以使你在SQL的学习中轻松实现从0到1的过程,循序渐进地掌握SQL的基础知识和技巧.对于零基础来说非常友好,看完能够迅速上手SQL. 关于本文:一篇对这本书的知 ...
- sql基础教程亚马逊_针对Amazon,Apple,Google的常见SQL面试问题
sql基础教程亚马逊 SQL is used in a wide variety of programming jobs. It's important to be familiar with SQL ...
- 【SAP Hana】X档案:SAP HANA SQL 基础教程
SAP HANA SQL 基础教程 1.SQL 标准简介 2.HANA STUDIO 的安装 3.HANA STUDIO 的设置 4.HANA SQL 基础教程 (1)查看表数据 (2)查看表结构 ( ...
- Oracle PL/SQL基础语法学习13:比较运算符
系列文章目录 Oracle PL/SQL基础语法学习12:短路求值 Oracle PL/SQL基础语法学习13:比较运算符 Oracle PL/SQL基础语法学习14:BOOLEAN表达式 文章目录 ...
- 已添加第一个《渔非鱼》专栏的教程:SQL基础教程~(有点长,欢迎观看!)...
我是一个学生,在校的学生.一个学历不高的学生,在学习过程中痛苦跋涉的学生. 深深的了解到一个好的教程对一个学习中人有多么的重要,我并没有很好的文笔,没有骄人的经历,只有在学习中得到的点点滴滴.把它们积 ...
- 《SQL基础教程(第2版)》作者MICK:上帝存在于细节之中(图灵访谈)
本文仅用于学习和交流目的,不得用于商业目的.非商业转载请注明作译者.出处,并保留本文的原始链接:http://www.ituring.com.cn/art... 访谈嘉宾:MICK, 就职于日本的一家 ...
最新文章
- awk数组命令经典生产实战应用拓展
- 3人2周上线,2人1周上线,Solo明天上线!开发周期果然不能用搬砖模式计算......
- java class.getmethod_java反射之Class.getMethod与getDeclaredMethods()区别
- 【UGV】小车一些图片
- webService 客户端调用及异常信息First Element must contain the local name, Envelope , but found definitions...
- sqlserver循环like变量_numba从入门到精通(6)—numba与循环与并行
- c html导出成word,html转word-html如何转换成WORD
- Delphi XE10.1 引用计数
- iOS TableView 使用详解
- PHP之Smarty模板学习
- HTTPS 证书生成原理和部署细节
- Java 最常见的 200+ 面试题:面试必备
- 鸢尾花数据集的数据可视化
- python函数定义的规则
- 草莓派Raspberry3B
- PermissionError: [Errno 13] Permission denied: ‘label.csv‘
- 【数学】对向量的求导和Jacobian矩阵的几何意义与Hessian矩阵
- 结束语-放弃完美主义,执行力就是限时限量认真完成
- 京峰教育Linux笔记
- Rabbit 5大模式