DML 增删改 事务

DML

DML之插入

  • 在表内插入:insert into 表名 value(数据1 , 数据2, …);

    • eg:insert into dept value(50, ‘sxt’, ‘shanghai’);

    • 要求插入数据的数量, 类型和定义表的结合一致

      • eg :

        insert into dept values(50. 'sxt', 'shnanghai', 'liyi');
        
        insert into dept values(50, 'sxt');
        
        insert into dept values('abcd', 50, 'sh');
        
  • 在表内特定的列插入(以行为单位):insert into 表名(列名) values(数据1, …);

    • eg:

      insert into emp(deptno, ename, deptno) values(6666, 'ly', 50);
      
    • 要求插入数据的数量顺序和表名后的列要一致

  • 从其他表中选定的列插入本表中特定的列(以为为单位):

    insert into 表名(列名) select …

    • eg:

      insert into dept(deptno, dname) select empno, ename from emp;
      
  • --创建一个dp表和dept表的列一样但是没有任何数据
    create table dp as select * from dept where 1<>1;
    

DML之删除

  • delete from 表名; 删除表。

    • eg:

      delete from dept;
      
  • delete from 表名 where 条件; 删除表中特定的数据。

    • eg :

      delete from emp where comm is null;
      
    • 这属于一种物理删除,删完之后理论上不能再找回。

  • truncate table emp;

    • 截断表,不要使用!!! 删除本表数据并重新建立新表,无法恢复。

DML之修改

  • update 表名 set 列名1 = value1, 列名2 = value2; 修改特定列的数据。

    • eg:

      update salgrade set losal = 888, hisal = 999;
      
  • **update 表名 set 列名1 = value1, 列名2 = value2 where 条件;**修改特定列中满足条件的数据。

    • eg:

      update salgrade set losal = 666, hisal = 1888 where grade = 3;
      

DML之事务

  • 数据库管理系统执行过程中的一个逻辑单位,有一个有限的数据库操作序列构成。

  • 事务指的是数据库一种保护数据的方式。

  • 事务一般由增删改操作自动调用,事务根据数据库不同提交的时机也是不同的

    • mysql数据库默认执行增删改就会提交事务。
    • 可以设置 手动提交 begin 或者 start transaction
  • 事物的特征

    • acid原则
    • 原子性
      • 事务是操作数据的最小单位。
    • 一致性
      • 事务提交之后,整个数据库看到的数据都是最新数据。
      • 所有人看到的数据都是一致性的。
    • 隔离性
      • 别人无法访问到我们未提交的数据,而且这个数据一旦被我修改,别人也无法进行操作。
    • 持久性
      • 事务一旦被提交,数据库就进入到一个全新的状态,数据再也不能返回到上一个状态。
  • 事务如何开启和提交?

    • 开启:

      • ①当执行增删改操作时默认开始一个事务②这个事务和当前操作的的窗口有关,别人是无法共享这个事物的。
    • 提交

      • 手动:

        ①:显示 commit; 提交

        ​ rollback; 回滚

        ②:隐式 执行DDL操作,默认提交当前的事务。

        ​ 用户退出,事务统一进行回滚(mysql);

      • 自动

        • mysql数据库执行DML操作之后会自动的提交事务
        • 好处:方便。
        • 坏处:①不能将多个SQL纳入到一个事务,不便于管理。②当我们大批量插入数据时,数据库频繁开启关闭事务,影响插入效率。
  • 事物的隔离等级

DML 增删改 事务

DML 增删改 事务

上一篇:MySQL之数据操纵语言(DML)


下一篇:数据库的DDL、DML、DQL、DCL名词详解