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实际上就是从存储设备中读取数据,各种计算后,将数据呈现给用户. 视图不会将数据保存在存储设备中.实际上 ...
随机推荐
- Spring jdbc 对象Mapper的简单封装
一般查询实体的时候,都需要这么使用/** * 根据id查询 * * @return */ public Emp queryEmpById(Intege ...
- registerWithTouchDispatcher()函数的使用
registerWithTouchDispatcher()函数的使用 registerWithTouchDispatcher()函数主要用于注册Touch事件. 当我们使用this->setTo ...
- 宏碁宣布Liquid Jade智能机和Leap袖口
据科技网站Android Community 4月29日覆盖,宏碁29公布的新智能机Liquid Jade而随着智能手镯部署Liquid Leap.尽管宏碁已经宣布了一项新的外部基本信息.但价格格和商 ...
- C#访问MySQL数据库(winform+EF)
原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...
- C语言程序代写(QQ:928900200)
1.学生成绩统计 要求描述: 用结构数组实现学生信息的统计功能. struct student { long no; /*学号*/ char name[10]; /*姓名*/ char sex; /* ...
- Visual C++学习笔记1:一定要注意ANSI和UNICODE差额
最近的研究VC++.下载VS2013,根据<Visual C++开发实战系列>首先hello我写了一个常规样品,结果显示乱码编辑框.夜已经折腾型转变.然后总结很明显ANSI和UNICODE ...
- PL/SQL 游标的使用
游标的使用 ①游标概念 为了处理SQL 语句,ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息, 当中包含要处理的行的数目.一个指向语句被分析以后的表示 ...
- android 4.0 中出错 java.lang.UnsupportedOperationException
在android4.0中 画图的时候使用: canvas.clipPath(path, Region.Op.XOR); 报错 java.lang.UnsupportedOperationExcept ...
- 在JBuilder8中使用ANT
在JBuilder8中使用ANT 作者:翁驰原 在JBuilder8中,Ap ...
- 在Windows基础上(硬盘)安装Linux操作系统(CentOS/RedHat)
注:该方法安装CentOS ,RedHat均没有问题,其它Linux操作系统,没有尝试过. 0.创建一个fat32的盘.我分了8G给这个盘,盘符为F.F盘以后的内存所有删除,作为未分配的内存.这个留用 ...