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实际上就是从存储设备中读取数据,各种计算后,将数据呈现给用户. 视图不会将数据保存在存储设备中.实际上 ...
随机推荐
- 模拟Post
string d = "http://search.anccnet.com/searchResult2.aspx"; //name="__VIEWSTATE" ...
- jquery autocomplete ajax获取动态数据,兼容各浏览器,支持中文
jquery.autocomplete.js经过改动,支持各种浏览器.支持中文输入! 1.效果图例如以下 2.HTML和ajax代码 <!DOCTYPE html> <html xm ...
- Unity多玩家网络游戏开发教程1章Unity带有网络功能
Unity网络多玩家游戏开发教程第1章Unity自带网络功能 Unity拥有大量的第三方插件.专门提供了对网络功能的支持. 可是.大部分开发人员第一次接触到的还是Unity自带的网络功能.也就是大家常 ...
- Callable 获取线程返回值
allable与 Future 两功能是Java在兴许版本号中为了适应多并法才增加的,Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它 ...
- 使用Visual Studio 2010 创建简单的Silverlight应用程序
使用Visual Studio 2010 创建简单的Silverlight应用程序 Silverlight是创建动态的引人的RIAs(Rich Internet Application)的新方法.这里 ...
- 【剑指offer】设置在最小数目的阵列
转载请注明出处:http://blog.csdn.net/ns_code/article/details/28128551 题目描写叙述: 输入一个正整数数组,把数组里全部数字拼接起来排成一个数.打印 ...
- 【甘道夫】Hive 0.13.1 on Hadoop2.2.0 + Oracle10g部署详细解释
环境: hadoop2.2.0 hive0.13.1 Ubuntu 14.04 LTS java version "1.7.0_60" Oracle10g ***欢迎转载.请注明来 ...
- IT行业为什么没有进度
参加工作多年了,来来回回参与了N多项目,大部分都是政府性的招标项目.每个项目都是顺利进行验收,在这些验收过的项目中大部分都或多或少都有一定的时间延期,每个项目都能够和合同或者需求说明书对应的上,但是真 ...
- Java进阶 创建和销毁对象
最近准备写点Javase的东西,希望可以帮助大家写出更好的代码. 1.给不可实例化的类提供私有构造器 比如:每个项目中都有很多工具类,提供了很多static类型的方法供大家使用,谁也不希望看到下面的代 ...
- 领域驱动设计(DDD)部分核心概念的个人理解(转)
领域驱动设计(DDD)是一种基于模型驱动的软件设计方式.它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题.Eric Ivans为领域驱动设计提出了大量的最佳实践 ...