zoukankan      html  css  js  c++  java
  • 数据库SQL特点数据查询,数据操纵,数据定义,数据控制,建立索引, 事务acid,数据库隔离级别

    数据查询(DQL):select

    数据定义(DDL):create,drop,alter

    数据操纵(DML):insert,update,delete

    数据控制(DCL):grant,revoke

    1)建立索引(索引是B+树实现的)(提高查询效率,加快表与表之间的连接,建立需要存储空间)

    普通索引

    create index stusex on student(ssex);
    create index stusexandname on student(ssex,sname);//多列的

    唯一索引

    create unique index stusno on student(sno);

    删除索引

    drop index stusno on student;

    显示索引

    show index from student;

    2)创建表,修改表

    create table xxx
    (xno int(5) primary key,
    xname char(20) not null unique,
    xscore int(5) default 6);
    alter table xxx
    add xsex char(66);

     事务acid

    • 原子性(Atomicity):事务中包含的操作集合,要么全部操作执行完成,要么全部都不执行。即当事务执行过程中,发生了某些异常情况,如系统崩溃、执行出错,则需要对已执行的操作进行回滚,清除所有执行痕迹。
    • 一致性(Consistency):事务执行前和事务执行后,数据库的完整性约束不被破坏。即事务的执行是从一个有效状态转移到另一个有效状态。
    • 隔离性(Isolation):多个事务并发执行时,彼此之间不应该存在相互影响。隔离程度不是绝对的,每个数据库都提供有自己的隔离级别,每个数据库的默认隔离级别也不尽相同。
    • 持久性(Durability):事务正常执行完毕后,对数据库的修改是永久性的。即事务的修改操作已经记录到了存储介质中。
    • 隔离级别:未提交读、提交读、可重复读、可串行化

    • 未提交读(Read Uncommitted):一个事务过程中可以读取到其他事务对数据的未提交修改。即事务的修改阶段未加排他锁,对其他事务可见。例如事务 T1可能读取到只是事务 T2 中某一步的修改状态,即存在脏读的现象。

    脏读指的是,事务读取到的数据可能是不正确、不合理或者处于非法状态的数据,例如在事务T1读取后,事务T2可能又对数据做了修改,或者事务T2中某些操作违反了一致性约束,作了回滚操作,该情况下事务T1读取到的数据称之为脏数据,该行为称之为脏读。

    • 提交读(Read Committed):一个事务过程中只能读取到其他事务对数据的提交后修改。即事务的修改阶段加了排它锁,直到事务结束才释放,执行读命令那一刻加了共享锁,读完即释放,以此维持事务修改阶段对其他事务的不可见。例如事务T1读取到的只能是事务T2提交完成后的状态。该隔离级别避免了脏读现象,但正是由于事务T1可能读取到的是事务T2修改完成后的数据,以致出现了不可重复读现象。

    不可重复读指的是,对于同一个事务的前后两次读取操作,读取到的内容不同。例如在事务T1读取操作后,事务T2可能对数据做了修改,事务T2修改完成提交后,事务T1又做了读取操作,因为内容已被修改,导致读取到的内容与上一次不同,即存在不可重复读现象。

    • 可重复读(Repeatable Reads):一个事务过程中不允许其他事务对数据进行修改。即事务的读取过程加了共享锁,事务的修改过程加了排它锁,并一直维持锁定状态直到事务结束。因为事务的读取或修改都需要维持整个阶段的锁定状态,所以避免了脏读和不可重复读现象。但是因为只对现有的记录上进行了锁定,并未维持间隙锁/范围锁,导致某些数据记录的插入未受阻拦,即存在幻读现象。

    幻读指的是,事务中前后相同的查询语句,返回的结果集不同。例如在事务T1查询表记录后,事务T2向表中增加了一条记录,当事务T1再次执行相同的查询时,返回的结果集可能不同,即存在幻读现象。

    • 可串行化(Serializable):一个事务过程中不允许其他事务对指定范围数据进行修改。即事务过程中若指定了操作集合的范围,则在可重复读的锁基础上增加了对操作集合的范围锁,通过增加范围锁避免了幻读现象。

    参考:https://www.jianshu.com/p/f3605aacf7cf

  • 相关阅读:
    查询论文引用次数及格式和相似论文的方法
    JAVA日期加减运算
    luogu2833 等式
    luogu2261 [CQOI2007] 余数之和
    luogu2822 组合数问题
    luogu3942 将军令 贪心
    luogu3941 入阵曲
    luogu3939 数颜色
    二分查找总结
    luogu3938 斐波那契
  • 原文地址:https://www.cnblogs.com/lhh666/p/11553054.html
Copyright © 2011-2022 走看看