SQL入门学习3-数据更新
4-1 数据的插入(INSERT语句的使用方法)
使用INSERT语句可以向表中插入数据(行)。原则上,INSERT语句背刺执行一行数据插入。
CREATE TABLE 和INSERT 语句,都可以设置默认值。使用DEFAULT 关键字,后面加一个常数。
语法:
INSERT INTO <表名> (列名1,列名2,列名3……) VALUES(值1,值2,值3……);
注意
表名后面的列清单要与VALUES子句中值中列的数量必须保持一致。且位置一一对应。
如果列清单中没有包括的列,那么新添加的记录中该列对应值就为NULL。
列清单的省略
对表进行全列INSERT时,可以省略表后面的列清单,这是VALUES子句的值就会默认从左到又的顺序赋给每一列。
插入NULL
INSERT语句想给某一列赋予NULL值时,可以直接在VALUES子句的值清单中写入NULL。若对应列有著名NOTNULL的约束,那么插入就会出错。
插入默认值
在CREATE TABLE 时,就可以设置插入的默认值了。
如果INSERT 语句没有给特定的项进行赋值,那么该值就会按照CREATE TABLE 时,所设置的默认值来进行赋值。没有默认值,则会设置成NULL。
或者在使用INSERT语句时,VALUES语句后面的值清单,直接使用DEFAULT关键字进行代替。
从其他表中赋值数据
例:
INSERT INTO Test2
SELECT name ,age, phone
FROM Test
注意
从其他表插入该表数据时,要注意插入的列的对应类型是否相同,且约束项是否匹配(最大字符串长度、类型、以及是否允许为空)
可以使用多个子句的SELECT语句。例如WHERE、HAVING 等。但使用ORDER BY不会产生任何效果。
4-2 数据的删除(DELECT语句的使用方法)
DELECT与DROP TABLE 语句有所区别。
- DROP语句会直接删除整个表,不会保留数据。
- DELECT语句会留下表,而删除表中的全部数据。
但是同时会保留数据表,只需要通过INSERT语句就可以再次向表中插入数据。
语法:
- 保留数据表、仅删除全部数据行的DELECT 语句。
DELECT FROM <表名> ;
指定删除对象的DELETE语句
使用WHERE子句,能够进行搜索出特定项,并进行删除。
语法:
DELETE FROM <表名>
WHERE <条件>;
注意
DELETE语句中不能使用GROUP BY、HAVING、ORDER BY 三类子句。
4-3 数据的更新(UPDATE语句的使用)
UPDATE语句,同样也属于DML语句,不需要把数据删除之后重新插入,只需要使用UPDATE语句就可以改变表中的内容。
基本语法:
UPDATE<表名>
SET<列名> = <表达式>;
搜索型UPDATE语句
在UPDATE语句中,可以使用WHERE子句进行筛选。
UPDATE智能去按列修改,所以要对改列特定的选项进行筛选。
语法:
UPDATE<表名>
SET <列名> = <表达式>
WHERE <条件> ;
多列更新
UPDATE 的SET 子句,支持同时将多个列作为更新对象。
使用逗号隔开,或者使用元组赋值形式.
例:
UPDATE Test
SET (name,age) = ('Myname' ,18+1)
WHERE phone = '15512341234' ;
4-4 事务
在RDBMS中,事务代表了对表中数据进行更新的单位,简单来说,事务就是需要在同一个处理单元中执行的一系列更新处理的集合。
创建事务
事务的语法:
事务开始语句:
DML 语句1;
DML 语句2;
DML 语句3;
……
事务结束语句;
常见的事务开始语句:
- SQL Server、PostgreSQL
BEGIN TRANSACTION - MYSQL
START TRANSACTION
最后的结束语句:
COMMIT 或者为 ROLLBACK;
- COMMIT
COMMIT是提交事务包含的全部更新的结束指令。一旦提交,就无法恢复到事务开始前的状态。 - ROLLBACK
ROLLBACK是取消事务包含的全部更新处理的结束指令。
ACID特性
- 原子性
在事务结束时,要么全部被执行,要么全部不被执行。 - 一致性
指的是事务中包含的处理、要满足数据库提前设置的约束。例如主键约束或者NOT NULL 等。 - 隔离性
保证不同事务之间互不干扰。 - 持久性
事务一旦结束,DBMS会保证该时点的数据状态得以保存的特性。
SQL入门学习3-数据更新的更多相关文章
- SQL入门学习5-函数、为此、CASE表达式
6-1. 各种各样的函数 函数的种类 算数函数 字符串函数 日期函数 转换函数 聚合函数 1.1算术函数 数据类型:NUMERIC 是大多数DBMS都支持的一种数据类型. 通过NUMBERIC(全体位 ...
- SQL入门学习2-聚合与排序
3-1 对表进行聚合查询 聚合函数 所谓聚合,就是将多行汇总为一行. 函数名 功能 COUNT 计算表中的记录数(行数) SUM 计算表中数值列的数据合计值 AVG 计算表中数值列的数据平均值 MAX ...
- SQL入门学习1-查询基础
2-1 SELECT语句基础 SELECT语句作用 SELECT 语句用于从表中选取数据. 结果被存储在一个结果表中(称为结果集). 重点 使用SELECT语句从表中选取数据. 为列设定显示用的别名 ...
- SQL入门学习0-数据库与SQL
1.1 DBMS DatabaseManagermentSystem 数据库管理系统 DBMS种类 层次型数据库(HDB) 最古老的数据库之一,把数据通过层次结构的方式表现. 关系型数据库(RDB) ...
- SQL基础学习_03_数据更新
数据的插入 1. 基本INSERT语句 INSERT的基本语法为: INSERT INTO <表名> (列1, 列2, 列3, -) VALUES (值1, 值2, 值 ...
- Sql入门学习——关系范式
--------关系 --------范式 一.三种关系 1.一对一关系 关系数据库中,第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关. 2.一 ...
- SQList3 and SQL入门学习笔记
SQL 这是一个标准的计算机语言进行访问和操作数据库. 什么是 SQL? · SQL 指结构化查询语言 · SQL 使我们有能力訪问数据库 · SQL 是一种 AN ...
- SQL入门学习6-集合运算
7-1 表的加减法 集合运算 集合运算就是对满足同一规则的记录,进行的加减等四则运算. 1.1 表的加法--UNION 表之间进行并集运算. 语法: SELECT 对应列1,对应列2-- FROM 表 ...
- SQL入门学习4-复杂查询
5-1 视图 视图和表 视图和表的区别只有一个是否保存了实际的数据 使用INSERT和SELECT实际上就是从存储设备中读取数据,各种计算后,将数据呈现给用户. 视图不会将数据保存在存储设备中.实际上 ...
随机推荐
- 1m网速是什么意思,1m带宽是什么意思
1M网速下载速度应是多少?我怎么才50多KB?? 建议: 一般来说是90到100算正常.最高能达到120 带究竟该有多快 揭开ADSL真正速度之谜 常常使用ADSL的用户,你知道ADSL的真正速度吗? ...
- POJ 1182 :食物链(并查集)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 43526 Accepted: 12679 Description ...
- 【Oracle】物理体系结构
一.ORACLE 物理体系结构 原理结构图 各部分解释: PGA: 私有内存区,仅供当前发起用户使用. 三个作用 用户登录后的session信息会保存在PGA. 运行排序.假设内存不够,orac ...
- macbook连接linuxserver后不显示matlab桌面[问题]
macbook 登录远程linuxserver.Macbook今天,系统版本号10.9.4.这是更新,打开matlab当提醒x11不存在.一个接着安装Xquarz2.7.6. matlab它可以在本地 ...
- ftp桥接到http服务
先说一下我的需求:我的linodeserver近期ftp和sftp连不上了,port被封了.仅仅有http能够訪问,我没有办法上传文件了.由于我寻常都用beyond compare上传文件,非常方便. ...
- SharePoint Server 2010 删除Web应用
SharePoint Server 2010 删除Web应用 因为之前的测试.在SharePointserver创建于非常多Web应用(我是在本机Win7系统上安装的SharePoin ...
- Qt数据类型转换
把QString转换为double类型 方法1.QString str="123.45"; double val=str.toDouble(); //val=123.45 方法2. ...
- poj1364(差分约束系统)
poj1364 设s[i] 表示a1 + a2 + ... + a(i-1)的和 给我们n个点,m条约束 如果是a b gt c 那么表示 s[a+b+1] - s[a] > c ...
- HDU 1420 Prepared for New Acmer【中国剩余定理】
/* 解决问题的思路:中国剩余定理,还要注意的是数据的类型,要使用__int64位 解决人:lingnichong 解决时间:2014-08-30 06:56:35 :简单题 */ Prepared ...
- 完全合并C++面试题
C++面试题 1.是不是父母写了virtual 功能,假设子类重写它的功能不virtual ,也使多态性? virtual修饰符隐形遗传. private 还集成.问权限而已 virtual可加可不加 ...