zoukankan      html  css  js  c++  java
  • 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语句就可以再次向表中插入数据。

    语法:

    1. 保留数据表、仅删除全部数据行的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会保证该时点的数据状态得以保存的特性。
  • 相关阅读:
    csp-s模拟99题解
    csp-s模拟9697题解
    csps模拟9495凉宫春日的忧郁,漫无止境的八月,简单计算,格式化,真相题解
    csps模拟93序列,二叉搜索树,走路题解
    csps模拟92数列,数对,最小距离题解
    csps模拟8990部分题解
    csps模拟87888990部分题解
    csps模拟86异或,取石子,优化题解
    csps模拟85表达式密码,电压机制,括号密码题解
    csps模拟83最大异或和简单的括号序列旅行计划题解
  • 原文地址:https://www.cnblogs.com/subaiBlog/p/5414664.html
Copyright © 2011-2022 走看看