zoukankan      html  css  js  c++  java
  • SQL基础学习_03_数据更新

    数据的插入

    1. 基本INSERT语句

        INSERT的基本语法为:

        INSERT INTO  <表名> (列1, 列2, 列3,  …) VALUES (值1, 值2, 值3, …)  ;

        例如:INSERT INTO Shohin (shohin_mei,shohin_bunrui,hanbai_tanka,shiire_tanka,torokubi) VALUES ('pen','office',100,NULL,'2009-11-11');

        如果插入的是所有列,则列名可以省略,如:

        INSERT INTO Shohin VALUES (4,'pencil','office',200,NULL,'2009-11-11');

        如果要插入NULL值,可以显示地插入NULL值,

        如果某些字段设置了默认值(DEFAULT 约束),则在INSERT操作时,值可以显示填入DEFAULT以使用默认值,也可以直接忽略该字段,则会自动按默认值填写;

    2. 从其他表中复制数据

        使用

        INSERT INTO <表1> (列1, 列2, 列3,  …)
        SELECT 列1, 列2, 列3, …
        FROM <表2>

        可以将表2中的所有记录按照列的对应关系复制到表1中 ;

        可以在SELECT中使用聚合函数,并且可以使用GROUP BY对表格进行分组,如:

        INSERT INTO ShohinBunrui (shohin_bunrui, sum_hanbai_tanka,sum_shiire_tanka)
        SELECT shohin_bunrui, SUM(hanbai_tanka), SUM(shiire_tanka)
        FROM Shohin
        GROUP BY shohin_bunrui;

    数据的删除

    1. DELETE语句

        使用DELETE语句可以指定删除表格中的某些记录:

        DELETE FROM <表名>
        WHERE <条件表达式>;

        如果没有 WHERE子句,则会删除整个表的内容;

    数据的更新

    1. UPDATE语句

        使用UPDATE语句可以对表中已有的数据进行更新:

        UPDATE <表名>
        SET <列1> = <表达式1>
                <列2> = <表达式2>
                (<列3>,<列4>,<列5>,…) = (<表达式3>,<表达式4>,<表达式5>,...) 
        WHERE <条件表达式>

        如果没有WHERE子句,则会对所有的记录进行更新;

    事务

    1. 事务的定义和创建

        事务是需要在同一个处理单元中执行的一系列更新处理的集合;

        事务的语法为:

        START TRANSACTION(MySQL) / BEGIN TRANSACTION(SQL Server, PostgreSQL)

            DML1
            DML2
            DML3
            …
        COMMIT / ROLLBACK

    2. 事务的特点和应用

        事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),通常被成为ACIO特性;

        原子性:一个事务是一个原子操作,事务中的DML语句要么全部都执行,要么完全不执行;

        一致性:在事务中如果有一条DML语句不能正常执行,则整个事务都不会被正常执行;

        隔离性:不同事务之间互不干扰,在事务结束之前,事务中的一切修改对其他事务都不可见;

        持久性:事务一旦结束,数据库系统会保证该时点的数据状态得以保存,即使由于系统故障导致数据丢失,数据库也一定能通过某种手段进行恢复(如产生日志等);

    3. 事务的提交和取消

        事务使用COMMIT/ROLLBACK来结束,

        其中COMMIT表示提交该事务,事务中的内容会被原子执行; 

        ROLLBACK表示取消该事务,事务中的内容完全不会被执行,表中的数据恢复到事务之前的状态;

  • 相关阅读:
    动态网络社团检测学习笔记 --- 随机块模型小结之简介
    十五组第四次作业
    17现代软件工程十五组第二次作业
    17现代软件工程十五组第三次作业
    现代软件工程2017十五组成员介绍
    软件测试学习日志3 ————软件测试作业之控制流图
    软件测试学习日志———— round 2 Junit+intellj idea 安装及简单的测试使用
    软件测试学习日志————round 1 some questions of two small programs
    [关于printPrime是()方法的控制流图和点覆盖、边覆盖、主路径覆盖]
    【在myeclipse中使用Junit(4.12), Hamcrest(1.3) 和Eclemma】
  • 原文地址:https://www.cnblogs.com/lyon2014/p/4677970.html
Copyright © 2011-2022 走看看