• MySql数据库学习笔记(2)


    DELETE

    语法:delete from 表名 [where condition]
    delete from grade;

    TRUNCATE

    用于完全清空表数据,但表结构、索引、约束不变;
    语法:
    truncate [table] table_name;

    事务 transaction

    • 原子性(A):执行事务,要么都成功,要么都失败。
    • 一致性(C):执行后,保持数据的一致。
    • 隔离性(I): 事务之间相互独立,互不影响
    • 持久性(D):数据永久存储在数据库中

    事务的隔离级别:

    • 读取未提交(Read-uncommitted): 处于此模式下可能会出现脏读、幻象读、不可重复读
    • 读取提交(Read-committed):处于此模式下可能会出现幻象读、不可重复读
    • 重复读取(repeatable-read):处于此模式下可能会出现幻象读
    • 串行化(Serialize):不会出现幻象读
    • 脏读:
    • 幻读:

    SET Autocommit

    • set autocommit = 0;关闭自动提交模式
    • set autocommit = 1;开启自动提交模式
      注意:MySQL默认是自动提交,使用事务时应先关闭自动提交
    mysql> select @@autocommit;
    +--------------+
    | @@autocommit |
    +--------------+
    |            1 |
    +--------------+
    
    mysql> set autocommit = 0;
    mysql> select @@autocommit;
    +--------------+
    | @@autocommit |
    +--------------+
    |            0 |
    +--------------+
    

    事务的实现方式:

    • Start transaction :开始一个事务,标记事务的起点
    • Commit : 提交一个事务给数据库
    • Rollback : 将事务回滚,数据回到本事务的初始状态
    • Set autocommit = 1; 还原MyAQL数据库的自动提交

    查看默认事务提交方式:

    mysql> select @@autocommit;
    关闭自动提交事务:
    mysql> set autocommit = 0;

    过程:

    1. 开始事务:start transaction;
    2. 执行一系列SQL : mysql> update tbl_name set name =999 where name = 12;
    3. 假设出现异常事务回滚mysql> rollback;
    4. 假设一切正常 :mysql> commit;

    课堂案例:

    mysql> create database shop;
    mysql> use shop;
    mysql> create table account
        -> (
        -> id int not null primary key auto_increment,
        -> name varchar(32) not null,
        -> cash decimal(9,2) not null
        -> );
    
    mysql> insert into account(name,cash) values('A',2000.00);
    mysql> insert into account(name,cash) values('B',10000.00);
    mysql> select * from account;
    +----+------+----------+
    | id | name | cash     |
    +----+------+----------+
    |  1 | A    |  2000.00 |
    |  2 | B    | 10000.00 |
    +----+------+----------+
    mysql> update account set cash = cash - 500 where id =1;
    mysql> update account set cash = cashh +500 where id =2;\发生错误
    ERROR 1054 (42S22): Unknown column 'cashh' in 'field list'
    mysql> select * from account;
    +----+------+----------+
    | id | name | cash     |
    +----+------+----------+
    |  1 | A    |  1500.00 |
    |  2 | B    | 10000.00 |
    +----+------+----------+
    mysql> rollback;
    mysql> select * from account;
    +----+------+----------+
    | id | name | cash     |
    +----+------+----------+
    |  1 | A    |  2000.00 |
    |  2 | B    | 10000.00 |
    +----+------+----------+
    
  • 相关阅读:
    SPARK 中 DriverMemory和ExecutorMemory
    Logistic Regression vs Decision Trees vs SVM: Part II
    Logistic Regression Vs Decision Trees Vs SVM: Part I
    Scala _ [underscore] magic
    spark-shell --conf
    spark-submit [options]
    maven 将依赖的jar包打入jar包中
    log4j
    eclipse java工程和maven工程的互相转换
    插件上传2
  • 原文地址:https://www.cnblogs.com/xuwei1/p/6912322.html
Copyright © 2020-2023  润新知