IT评测·应用市场-qidao123.com技术社区

标题: MySQL基础知识分享(二) [打印本页]

作者: 没腿的鸟    时间: 2024-8-4 23:53
标题: MySQL基础知识分享(二)
写在前面

大家好,不知道前面的20题大家写的怎么样,前面分享的20题是SQL中查询的基础题型,这部分被称为DQL部分,是每个学习MySQL必须要学会的部分,下面就让我来先容MySQL中的TCL部分,也就是事务部分。
ACID四大特性

事务的概述

事务的ACID特性可以确保银行不会弄丢你的钱。而在应用逻辑中,要实现这一点非常难, 甚至可以说是不可能完成的任务。一个兼容ACID的数据库系统,需要做许多复杂但可能用户并没有觉察到的工作,才能确保ACID的实现。
原子性(Atomicity)

单个事务,为一个不可分割的最小工作单元,整个事务中的所有操作要么全部commit乐成,要么全部失败rollback,对于一个事务来说,不可能只执行其中的一部分SQL操作,这就是事务的原子性。
划一性(Consistency)


数据库总是从一个划一性的状态转换到另外一个划一性的状态。在前面的例子中, 划一性确保了,纵然在执行第三、四条语句之间时系统崩潰,名誉卡账户也不会损 失100块,因为事务最终没有提交,以是事务中所做的修改也不会生存到数据库中,保证数据划一性。

隔离性(Isolation)


通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。在前面 的例子中,当执行完第三条语句、第四条语句还未开始时,此时有另外一个账户查询余额SQL开始运行,则其看到的名誉卡账户的余额并没有被减去100元。

恒久性(Durability)


一旦事务提交,则其所做的修改就会永世生存到数据库中。此时纵然系统崩溃,修改的数据也不会丢失。

事务的运行

步骤1:开启事务
set autocommit=0;
start transaction;可选的
步骤2:编写事务中的sql语句(select insert update delete)
语句1;
语句2;
......
步骤3:竣事事务
commit;提交事务
rollback;回滚事务
savepoint 节点名; 设置生存点
检察mysql引擎

show ENGINES;
检察事务是否开启

SHOW VARIABLES LIKE 'autocommit';
事务的隔离级别

脏读不可重复读幻读read uncommitted✅✅✅read committed❌✅✅repeatable read❌❌✅serializable❌❌❌mysql中默认 第三个隔离级别 repeatable read
检察隔离级别
select @@tx_isolation;
mac中检察:select @@transaction_isolation
设置隔离级别
set session|global transaction isolation level 隔离级别;
设置生存点

savepoint 节点名; 设置生存点
  1. set autocommit=0;
  2. START TRANSACTION;
  3. DELETE FROM account WHERE id= 1;
  4. SAVEPOINT a; -- 设置保存点
  5. DELETE FROM account WHERE id= 2;
  6. ROLLBACK TO a; -- 回滚到保存点
复制代码
视图

创建视图

语法:
  1. create view 视图名
  2. as
  3. 查询语句;
  4.                 CREATE VIEW myv1
  5. AS
  6. SELECT last_name,
  7.                          department_name,
  8.                          job_title
  9. FROM
  10.         employees e
  11. JOIN departments d ON e.department_id = d.department_id
  12. JOIN jobs j ON j.job_id = e.job_id ;
复制代码
修改视图
  1. 方式一:
  2. create or replace view 视图名
  3. as
  4. 查询语句;
  5. 方式二:
  6. alter view 视图名
  7. as
  8. 查询语句;
  9. 举例:
  10. 方式一:
  11. CREATE OR REPLACE VIEW myv1
  12. AS
  13. SELECT
  14.         department_name,
  15.         job_title
  16. FROM
  17.         employees e
  18. JOIN departments d ON e.department_id = d.department_id
  19. JOIN jobs j ON j.job_id = e.job_id ;
  20. 方式二:
  21. ALTER VIEW myv1
  22. as
  23. SELECT
  24.                          *
  25. FROM
  26.         employees ;
复制代码
删除视图

语法:
  1. drop view 视图名,视图名......;
  2. drop VIEW myv1 ;
复制代码
好了,今天的分享就到这里了,接下来我将分享一些关于MySQL部分的口试题,希望大家都能在MySQL口试中脱颖而出!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4