--      Tips:数据更新

--一、插入数据

--1.INSERT 语句的基本语法

--语法:
--INSERT INTO <表名>(列1, 列2, ...) VALUES (值1, 值2, ...)

--示例
INSERT INTO dbo.conbio
        ( conbio_id ,
          conbio_name ,
          conbio_varieties ,
          conbio_price1 ,
          conbio_price2 ,
          conbio_date
        )
VALUES  ( '0011' , -- conbio_id - char(4)
          'T 恤衫' , -- conbio_name - varchar(100)
          '衣服' , -- conbio_varieties - varchar(32)
          1000 , -- conbio_price1 - int
          500 , -- conbio_price2 - int
          GETDATE()  -- conbio_date - date
        );

------------------
select * from conbio        --查询表名为conbio的表.

--------------------------------------

--(1)列名和值用逗号隔开,分别放在括号里,这种形式称为清单。

( shohin_id ,        
          shohin_mei ,
          shohin_bunrui ,
          hanbai_tanka ,
          shiire_tanka ,
          torokubi
        )        
        --列清单            --字段
        
------------------

( '0011' , -- shohin_id - char(4)
          'T 恤衫' , -- shohin_mei - varchar(100)
          '衣服' , -- shohin_bunrui - varchar(32)
          1000 , -- hanbai_tanka - int
          500 , -- shiire_tanka - int
          GETDATE()  -- torokubi - date
        )        
        --值清单            --记录

------------------

INSERT INTO dbo.conbio
        ( conbio_id ,
          conbio_name ,
          conbio_varieties ,
          conbio_price1 ,
          conbio_price2 ,
          conbio_date
        )
VALUES  ( '0014' , -- conbio_id - char(4)
          'T 恤衫' , -- conbio_name - varchar(100)
          '衣服' , -- conbio_varieties - varchar(32)
          1000 , -- conbio_price1 - int
          500 , -- conbio_price2 - int
          GETDATE()  -- conbio_date - date
        ),
        ( '0015' , -- conbio_id - char(4)
          'T 恤衫' , -- conbio_name - varchar(100)
          '衣服' , -- conbio_varieties - varchar(32)
          1000 , -- conbio_price1 - int
          500 , -- conbio_price2 - int
          GETDATE()  -- conbio_date - date
        );
        
--------------------------------------

--3.插入 NULL 值

INSERT INTO dbo.conbio
VALUES  ( '0016' , -- conbio_id - char(4)
          'T 恤衫' , -- conbio_name - varchar(100)
          '衣服' , -- conbio_varieties - varchar(32)
          1000 , -- conbio_price1 - int
          NULL , -- conbio_price2 - int
          GETDATE()  -- conbio_date - date
        );

--【备注】插入 NULL 值的列不能设置为 NOT NULL 约束。

--------------------------------------
select * from conbio    --查询表
--------------------------------------
----添加列
  select * from    conbio;                                        
  alter table Conbio add conbio_name_test001   varchar(100);        
 --------------------------------------
----删除列
ALTER TABLE conbio DROP COLUMN conbio_name_test001;

--------------------------------------

--4.插入默认值

--示例:创建表时设置默认值

CREATE TABLE ConbioIns
(
    id CHAR(4) NOT NULL,
    num INT DEFAULT 0    --DEFAULT 默认约束
)

-- select * from conbioins        查表

--示例:INSERT 时显示插入默认值

INSERT INTO dbo.conbioins
        ( id, num )
VALUES  ( '002', -- id - char(4)
          DEFAULT  -- num - int
          )

--示例:INSERT 隐式插入默认值

INSERT INTO dbo.conbioins( id )
VALUES  ('003')

--【备注】建议使用显示的方式插入值。如果插入的时候隐式省略了列名,并且该列没有指定默认值的时候,
        --该列的值会被设定为 NULL(如果省略的列设置了 NOT NULL 约束的话,执行会报错)。

--【总结】省略 INSERT 语句的列名,就会自动设定该列的默认值(没有默认值时会设定为 NULL)。

--------------------------------------

--5.从其它表复制数据

--语法
--INSERT ...
--SELECT ...

--示例
INSERT dbo.conbioins
        ( id, num )
SELECT conbio_id, conbio_price2
FROM dbo.conbio

--示例
INSERT INTO dbo.conbioins
        ( id, num )
SELECT id=1, num =2;

--示例
INSERT INTO dbo.conbioins
        ( id, num )
SELECT 1, 2;

-- select * from conbioins        查表

--【备注】INSERT 语句中的 SELECT 语句中,可以使用 WHERE 子句或者 GROUP BY 子句等任何 SQL 语法。(但使用 ORDER BY 子句并不会产生任何效果。)

--------------------------------------

--    二、删除数据

--  1.2 种 删除数据的方法:

--(1)DROP TABLE 语句:删除表

--(2)DELETE 语句:删除表的数据

--语法
--DELETE FROM <表名>;

--示例
DELETE FROM dbo.conbioins;        --此表数据删除为空所有

--【备注】DELETE 语句删除的对象是记录(行),不是表和列。

--------------------------------------

--2.指定删除对象的 DELETE 语句

--语法
--DELETE FROM <表名>
--WHERE <条件>;

--示例
DELETE FROM dbo.conbio
WHERE conbio_price1 >= 1000;        --条件删除记录行

--【备注】可以通过 WHERE 子句指定对象条件来删除部分数据。

--【备注】DELETE 语句中不能使用 GROUP BY、HAVING 和 ORDER BY 三类子句。

--【备注】如果要删除表全部数据时请使用 TRUNCATE <表名>,它比 DELETE 子句更高效。

--select * from conbio  --查表

--------------------------------------

--三、更新数据

--1.UPDATE 子句的基本语法

--语法
--UPDATE <表名>
--    SET <列名> = <表达式>

--2.指定条件的 UPDATE 语句

--语法
--UPDATE <表名>
--    SET <列名> = <表达式>
--WHERE <条件>;

--示例
UPDATE dbo.conbio
    SET conbio_price2 = conbio_price2 * 10
WHERE conbio_varieties = '厨房用具';

--3、使用 NULL 进行更新

--示例
UPDATE dbo.conbio
    SET conbio_date = NULL
WHERE conbio_id = '008';

--【备注】只有未设置 NOT NULL 约束和主键约束的列才可以清空为 NULL。

--------------------------------------

--4.多列更新

--示例
UPDATE dbo.conbio
    SET conbio_price1 = conbio_price1 * 10,        --逗号分割
        conbio_price2 = conbio_price2 / 2
WHERE conbio_varieties = '厨房用具'

--------------------------------------

--四、事务

--1.事务:需要在同一个处理单元中执行的一系列更新处理的集合。

--2.创建事务:
--语法
--事务开始语句
--    DML 语句①;
--    DML 语句②;
--    ...
--事务结束语句(COMMIT 或 ROLLBACK);

--(1)COMMIT - 提交处理:提交事务包含的全部更新处理的结束指令。一旦提交,无法恢复到事务开始前的状态。

--(2)ROLLBACK - 取消处理:取消事务包含的全部更新处理的结束指令。一旦回滚,数据库就会回复到事务开始之前的状态。

------------------

--示例
begin transaction;
    UPDATE dbo.conbio
        SET conbio_price1 = conbio_price1 - 1000
    WHERE conbio_name = '叉子';

UPDATE dbo.conbio
        SET conbio_price1 = conbio_price1 + 1000
    WHERE conbio_name = '叉子';

DELETE FROM dbo.conbio WHERE conbio_id = '6';

rollback;            -- COMMIT 承诺

--------------------------------------
--3.ACID 特性

--    (1)原子性(Atomicity):在事务结束时,其中包含的更新处理要么全部执行,要么完全不执行。

--    (2)一致性(Consistency):事务中包含的处理,要满足数据库提前设置的约束,也称完整性。

--    (3)隔离性(lsolation):保证不同事务之前互不干扰的特性。

--    (4)持久性(Durability):事务一旦结束,DBMS 会保证该时点的数据状态得以保存的特性,也称耐久性。

--------------------------------------

--欢迎关注个人公众号:Zkcops

--2018/04/16 
 
由:zkcops 撰写(希望能对你有所帮助,转载注明出处!)
--------------------------------------

【SQL.基础构建-第四节(4/4)】的更多相关文章

  1. 【SQL.基础构建-第一节(1/4)】

    --        Tips:数据库与sql--    一.What's 数据库-- 1.数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.--   ...

  2. 【SQL.基础构建-第二节(2/4)】

    --      Tips:查询基础 --一.SELECT 语句基础-- 1.查询指定列:SELECT 关键字--语法:--SELECT <列名>, ...     -- 希望查询列的名称- ...

  3. SQL基础语法(四)

    SQL ORDER BY 子句   ORDER BY 语句用于对结果集进行排序. ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序. ORDER BY 语句默认按照升序对 ...

  4. 【SQL.基础构建-第三节(3/4)】

    --      Tips:聚合和排序 --    一.对表进行聚合查询 -- 1.聚合函数 -- (1)5 个常用函数: -- ①COUNT:计算表中的记录(行)数. -- ②SUM:计算表中数值列的 ...

  5. HTML学习笔记 cs2D3D展示基础 第十四节 (原创) 参考使用表

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪

    ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...

  7. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  8. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  9. (大数据工程师学习路径)第四步 SQL基础课程----select详解

    准备 在正式开始本内容之前,需要先从github下载相关代码,搭建好一个名为mysql_shiyan的数据库(有三张表:department,employee,project),并向其中插入数据. 具 ...

随机推荐

  1. 使用Jprofiler+jmeter进行JVM性能调优

    一.JProfiler简介 JProfiler 是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发的.它把CPU.执行绪和内存的剖析组合在一个强大的 ...

  2. 理解Flexbox:你需要知道的一切

    这篇文章介绍了Flexbox模块所有基本概念,而且是介绍Flexbox模块的很好的一篇文章,所以这篇文章非常的长,你要有所准备. 学习Flexbox的曲线 @Philip Roberts在Twitte ...

  3. 初学SpringMVC,使用MVC进行文件上传

    最近在做一个文件上传的功能,走了不少弯路,话不多说,直接上代码: 导入各种jar包,首先是applicationContext.xml配置文件中: <!-- 配置文件解析器 --> < ...

  4. 【原】spring boot source 1.5 中不支持 diamond 运算符

    最近要开发新的项目,就花了几天时间看了下spring boot的相关资料,然后做了一个demo,不得不说开发效率确实很快,几行注解就完成了事务,aop,数据库等相关配置:但由于先前习惯了spring ...

  5. Java开篇

    首先致敬Java之父:JAMES GOSLING 一.什么是JDK,JRE,JVM?     1.JDK(Java Development Kit) Java开发工具包.        JDK = 开 ...

  6. ssm项目快速搭建(注解)-依赖

    父层jar包版本控制,管理配置 <!-- 集中定义依赖版本号 -->    <properties>        <junit.version>4.12</ ...

  7. thinkphp I() 方法

    I() 方法用于获取前台提交的表单的value值. <form id="complai_form" method="post" action=" ...

  8. 【echats】echats悬浮事件频繁触发、过于灵敏、快速抖动等异常现象,适用与tooltip有关

    方案:transitionDuration设为0: 如图,发现关闭tooltip后现象消失,猜测与tooltip有关. 经过仔细观察,鼠标在快速移动时tooltip会延迟移动,就是这个时间差,让鼠标悬 ...

  9. 基于jQuery的数字键盘插件

    有时,我们需要在网页上使用软键盘.今天,就给大家带来一个基于jQuery的数字键盘插件,除了jQuery,不需要依赖任何文件资源.纯数字键盘,有退格,有清除,不支持输入小数(需要的可以自己改一下,主要 ...

  10. 常用SEO优化