SQL基础学习_03_数据更新
数据的插入
1. 基本INSERT语句
INSERT的基本语法为:
INSERT INTO <表名> (列1, 列2, 列3, …) VALUES (值1, 值2, 值3, …) ;
例如:INSERT INTO Shohin (shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi) VALUES ('pen','office',100,NULL,'2009-11-11');
如果插入的是所有列,则列名可以省略,如:
INSERT INTO Shohin VALUES (4,'pencil','office',200,NULL,'2009-11-11');
如果要插入NULL值,可以显示地插入NULL值,
如果某些字段设置了默认值(DEFAULT 约束),则在INSERT操作时,值可以显示填入DEFAULT以使用默认值,也可以直接忽略该字段,则会自动按默认值填写;
2. 从其他表中复制数据
使用
INSERT INTO <表1> (列1, 列2, 列3, …)
SELECT 列1, 列2, 列3, …
FROM <表2>
可以将表2中的所有记录按照列的对应关系复制到表1中 ;
可以在SELECT中使用聚合函数,并且可以使用GROUP BY对表格进行分组,如:
INSERT INTO ShohinBunrui (shohin_bunrui, sum_hanbai_tanka,sum_shiire_tanka)
SELECT shohin_bunrui, SUM(hanbai_tanka), SUM(shiire_tanka)
FROM Shohin
GROUP BY shohin_bunrui;
数据的删除
1. DELETE语句
使用DELETE语句可以指定删除表格中的某些记录:
DELETE FROM <表名>
WHERE <条件表达式>;
如果没有 WHERE子句,则会删除整个表的内容;
数据的更新
1. UPDATE语句
使用UPDATE语句可以对表中已有的数据进行更新:
UPDATE <表名>
SET <列1> = <表达式1>
<列2> = <表达式2>
(<列3>,<列4>,<列5>,…) = (<表达式3>,<表达式4>,<表达式5>,...)
WHERE <条件表达式>
如果没有WHERE子句,则会对所有的记录进行更新;
事务
1. 事务的定义和创建
事务是需要在同一个处理单元中执行的一系列更新处理的集合;
事务的语法为:
START TRANSACTION(MySQL) / BEGIN TRANSACTION(SQL Server, PostgreSQL)
DML1
DML2
DML3
…
COMMIT / ROLLBACK
2. 事务的特点和应用
事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),通常被成为ACIO特性;
原子性:一个事务是一个原子操作,事务中的DML语句要么全部都执行,要么完全不执行;
一致性:在事务中如果有一条DML语句不能正常执行,则整个事务都不会被正常执行;
隔离性:不同事务之间互不干扰,在事务结束之前,事务中的一切修改对其他事务都不可见;
持久性:事务一旦结束,数据库系统会保证该时点的数据状态得以保存,即使由于系统故障导致数据丢失,数据库也一定能通过某种手段进行恢复(如产生日志等);
3. 事务的提交和取消
事务使用COMMIT/ROLLBACK来结束,
其中COMMIT表示提交该事务,事务中的内容会被原子执行;
ROLLBACK表示取消该事务,事务中的内容完全不会被执行,表中的数据恢复到事务之前的状态;
SQL基础学习_03_数据更新的更多相关文章
- Oracle SQL 基础学习
oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...
- SQL 基础学习(2) Joining 和function , 作业没有做,需要看百宝箱。NOsql的概念
SQL 基础学习(2) Joining 可以同时关联(joining)多张表进行复杂的查询. 相比于用Rails捞出数据再用Ruby进行过滤组合,使用SQL更加高效,节能. 以下是 users has ...
- SQL 基础学习(1):下载DB Browser for SQLite. 下载graphviz(为了使用Rails ERD的前提)出现❌,已debug.
SQL is a standard language for storing, manipulating and retrieving data in databases. 关系型数据库:RDBMS( ...
- SQL基础学习_04_视图
视图 1. 视图的创建 视图就是保存好的SELECT语句,这些SELECT语句执行之后会产生新的表,所以在SQL中,视图和表是不做差别对待的,也就是SQL也可以对视图做一些操作: 由于 ...
- sql基础学习
学习参考网站:http://www.runoob.com/sql/sql-tutorial.html 一.SQL命令 1.SELECT 语句 用于从数据库中选取数据. select column_na ...
- SQL基础学习_05_函数、谓词、CASE表达式
函数 算术函数 1. 四则运算: +.-.*./ 2. ABS:求绝对值, ABS(数值) 3. MOD: 求余,MOD(被除数,除数) 4. ROUND:四舍五入,ROUND(对象数值,保留小数的 ...
- SQL基础学习_02_查询
SELECT语句 1. SELECT语句查询列(字段): SELECT <列名> FROM <表名>; 该语句使用了两个SQL子句,SELECT子句列举了 ...
- SQL基础学习_01_数据库和表
SQL语句及其种类 1. SQL语句分为三类: DDL(Data Definition Language): CREATE.DROP.ALTER; DML(Data Manipulat ...
- SQL基础学习篇--字符函数
字符函数可与SELECT,UPDATE,DELETE RIGHT()----从右侧开始选择 SELECT RIGHT(列,字符数量) FROM 表 LEFT()----从左侧开始选择 SUBSTR ...
随机推荐
- 关于promise的详细讲解
到处是回调函数,代码非常臃肿难看, Promise 主要用来解决这种编程方式, 将某些代码封装于内部. Promise 直译为"承诺",但一般直接称为 Promise; 代码的可读 ...
- 从setTimeout看js函数执行
老实说,写这篇文章的时候心里是有点压抑的,因为受到打击了,为什么?就 因为喜欢折腾不小心看到了这个"简单"的函数: for (var i = 0; i < 5; ...
- MySQL · 引擎特性 · InnoDB 事务系统
前言 关系型数据库的事务机制因其有原子性,一致性等优秀特性深受开发者喜爱,类似的思想已经被应用到很多其他系统上,例如文件系统等.本文主要介绍InnoDB事务子系统,主要包括,事务的启动,事务的提交,事 ...
- 自学OpenCV时遇到的一些错误(捂脸ing,当年确实好多不懂...)
6.8/14 opencv环境配置好了, 属性也设置对了, 但是使用VideoCapture类的时候, 还是出错. 右键可以查看其定义, 但是就是 出错. 漏掉了#include "s ...
- 》》豆瓣API
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- java微信开发API解析(二)-获取消息和回复消息
java微信开发API解析(二)-获取消息和回复消息 说明 * 本演示样例依据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/20 ...
- Oracle集合操作
在Oracle中提供了三种类型的集合操作: 并(UNION).交(INTERSECT).差(MINUS) UNION:将多个查询的结果组合到一个查询结果之中,并去掉反复值 UNION ALL:将多个查 ...
- 理解Object.defineProperty()
理解Object.defineProperty() Object.defineProperty() 方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象. 基本语法:Obj ...
- Angular 非父子组件间的service数据通信
完成思路:以service.ts(主题subject---订阅sbuscribe模式)为数据中转中间件,通过sku.ts的数据更改监测机制,同步更改service.ts中的数据,同时buy.ts组件实 ...
- ligerUI---ligerGrid默认选中checkbox
写在前面: ligerGrid中是可以带有checkbox(前面有可以选择打勾勾的框框)的,对于checkbox默认选中 这次项目中也要做,因为一个系统的增删改查,在修改一条数据的时候,是需要对原来的 ...