zoukankan      html  css  js  c++  java
  • SQL基础教程读书笔记-2

    4 数据更新

    4.1数据的插入

    1.清单{①列清单 ②值清单
    列清单和值清单的数量必须保持一致。
    原则上,执行一次INSERT语句会插入一行数据
    对表进行全列INSERT时,可以省略表名后的列清单
    2.插入默认值(默认值)
    ①显式插入:

    INSERT INTO ProductIns 
    (product_id,product_name,product_type,sale_price,purchase_price,regist_date)
    VALUES
    ('0007','擦菜板','厨房用具',DEFAULT,790,'2009-04-28');

    ②隐式插入:

    INSERT INTO ProductIns 
    (product_id,product_name,product_type,sale_price,regist_date)
    VALUES
    ('0007','擦菜板','厨房用具',790,'2009-04-28');

    3.从其他表复制数据
    INSERT...SELECT语句

    INSERT INTO ProductCopy
    (prodcut_id,product_name,product_type,sale_price,purchase_price,regist_date)
    SELECT prodcut_id,product_name,product_type,sale_price,purchase_price,regist_date
    FROM Product;

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

    4.2 数据的删除

    DELETE语句的删除对象并不是表或者列,而是记录(行)

    4.3 数据的更新

    1.使用NULL进行更新
    使用UPDATE语句可以将值清空为NULL(但只限于未设置NOT NULL约束的列)。
    2.多列更新

    UPDATE Product
    SET sale_price = sale_price * 10,
    purshase_price = purchase_price / 2
    WHERE product_type = '厨房用具';

    UPDATE Product
    SET (sale_price,purshase_price) =
    (sale_price * 10,purchase_price / 2)
    WHERE product_type = '厨房用具';

    方法①在所有DBMS中都可以使用,方法②在某些DBMS中是无法使用的。

    4.4 事务

    1.什么是事务?
    事务就是需要在同一个处理单元中执行的一系列更新处理①INSERT ②DELETE ③UPDATE的集合。

    2.事务的语法

    事务开始语句;
    DML语句①;
    DML语句②;
    DML语句③;
    事务结束语句(COMMITROLLBACK

    事务开始:在标准SQL中并没有定义事务的开始语句。

    • SQL SERVER ;PostgreSQL
    BEGIN TRANSACTION;
    • MySQL
    START TRANSACTION;
    • Oracle DB2

    事务结束:

    COMMIT;
    ROLLBACK;

    3.事务处理何时开始
    几乎所有的数据库产品的事务都无需开始指令。这是因为大部分情况下,事务在数据库连接建立时已经悄悄开始了,并不需要用户再明确发出开始指令。
    那应该如何区分各个事务?
    ① 每条SQL语句就是一个事务(自动提交模式)
    ② 直到用户执行COMMIT或者ROLLBACK为止算作下一个事务。

    4.ACID特性:
    原子性(Atomicity):是指在事务结束时,其中所包含的更新处理要么全部执行,要么全部不执行的特性。
    一致性(Consistency):指的是事务中包含的处理,要满足数据库提前设置的约束。
    隔离性(Isolation):不同事务之间互不干扰的特性。在某个事务进行的更改,在该事务结束之前,对其他事务而言是不可见的。
    持久性(Durability):耐久性,指的是事务(不论提交还是回滚)一旦结束,DBMS会保证该点的数据状态得以保存的特性。

  • 相关阅读:
    Need to know which polygon shell contains a given face
    静默安装 Microsoft Visual C++ 运行库
    python linecache模块 读取文件行使用注意事项
    不运行 maya 就可以获取 maya 版本,在 python 中获取
    linux setfacl chmod g+s 修改文件夹和文件的默认访问权限和所属组
    Maya material & shading groups 相互获取对应的彼此
    PyQt PySide 查询内置可用的 style
    maxscript 在长时间的运算中卡主,白屏的解决方法 windows.processPostedMessages()
    QProcessBar setFormat 设置进度格式
    MaxPlus WStr Python 中的字符串传递给 MaxPlus
  • 原文地址:https://www.cnblogs.com/songwenjie/p/8068047.html
Copyright © 2011-2022 走看看