我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MYSQL数据库的TCL语言和DCL语言是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MYSQL数据库的TCL语言和DCL语言是什么

本篇内容介绍了“MYSQL数据库的TCL语言和DCL语言是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、TCL语言的操作语法,有时候我们的一个需求(一个任务),可能会涉及到多个DML(增删改)操作。那么这一系列操作, 我们要看成一个整体,不可切割。如在一个员工系统中,某员工A的数据可能会存在多个表中,如基本信息表,业务信息表,邮箱信息表等。当我们想删除此人的所有信息时,除了删除这个人的基本信息外,还应该删除与此人有关的其他所有信息,如邮箱,地址等等。这样的操作会涉及到多个DML语句。那么从开始执行到真正结束,就会构成一个事务(Transaction)。对于事务,我们要保证事务的完整性,不能分割。事务要么成功, 要么撤回(回到执行前),不能执行一部分就终止。

  注意,只有DML操作时,才会涉及到事务。而mysql数据库在执行完每一个DML操作时,会默认commit; 可以使用start transaction来取消自动提交

commit:用于提交,表示事务成功结束。用于确认数据的更改,持久化。

rollback:用于回滚,回退到事务开始前。取消所有的DML操作。

savepoint: 设置事务的保存点,可以回退到指定的保存点。

事务有四个基本特征,简称ACID.

(1) 原子性(Atomicity): 即事务要么成功,要么撤回,不可切割。(2) 一致性(Consistency):事务开始前和结束后,要保证数据的一致性。如转账案例,转账前账号A和账号B的钱的总数为10000。转账后账号A和账号B的钱的总数应该还是10000;(3) 隔离性(Isolation):当涉及到多用户操作同一张表时,数据库为会每一个用户开启一个事务。那么当其中一个事务正在进行时,其他事务应该处于等待状态。保证事务之间不会受影响。(4) 持久性(Durability): 当一个事务被提交后,我们要保证数据库里的数据是永久改变的。即使数据库崩溃了,我们也要保证事务的完整性。

关于事务的隔离性,尤为重要。当多用户(多线程)同时操作同一张表时,如果没有隔离机制,可能会发生以下问题:

脏读:事务A读取了事务B刚刚更新的数据,但是事务B回滚了,这样就导致事务A读取的为脏数据,我们称之为脏读。如公司某财务人员更新公司入账报表时,在DML语句中的数字后少添加了一个0,但是未提交,然后吃饭,吃饭回来,发现错误,然后更正后做了提交。而在吃饭期间,老板要求秘书查看一下报表,秘书看到的是少个0的数据。这就是脏读。

不可重复读:事务A读取同一条记录两次,但是在两次之间事务B对该条记录进行了修改并提交,导致事务A两次读取的数据不一致。它和脏读的区别是,脏读是事务A读取了另一个事务B未提交的脏数据,而不可重复读则是事务A读取了事务B提交的数据。多数情况下,不可重复读并不是问题,因为我们多次查询某个数据时,当然要以最后查询得到的结果为主。但在另一些情况下就有可能发生问题,比如,老板让B和C分别核对事务A操作的数据,结果可能不同,老板是怀疑B呢,还是C呢?

幻读:事务A在修改全表的数据,比如将字段age全部修改为0岁,在未提交时,事务B向表中插入或删除数据,如插入一条age为25岁的数据。这样导致事务A读取的数据与需要修改的数据不一致,就和幻觉一样。幻读和不可重复读的相同点:都是针对于另外一个已经提交的事务而言。不同点:不可重复读是针对于同一条记录来说的(delete或update 同一条记录),而幻读是针对于一批数据来说的(insert)

事务的隔离机制有以下四种:

1、未提交读(read uncommitted):就是不做隔离控制,可以读到“脏数据”,可能发生不可重复读,也可能出现幻读。2、提交读(read committed):提交读就是不允许读取事务没有提交的数据。显然这种级别可以避免了脏读问题。但是可能发生不可重复读,幻读。这个隔离级别是大多数数据库(除了mysql)的默认隔离级别。 3、可重复读(repeatable read):为了避免提交读级别不可重复读的问题,在事务中对符合条件的记录上"排他锁",这样其他事务不能对该事务操作的数据进行修改,可避免不可重复读的问题产生。由于只对操作数据进行上锁的操作,所以当其他事务插入或删除数据时,会出现幻读的问题,此种隔离级别为Mysql默认的隔离级别。4、序列化(Serializable),在事务中对表上锁,这样在事务结束前,其他事务都不能够对表数据进行操作(包括新增,删除和修改),这样避免了脏读,不可重复读和幻读,是最安全的隔离级别。但是由于该操作是堵塞的,因此会严重影响性能。

相关语法格式如下:

查看数据库的当前隔离机制: select @@tx_isolation;修改数据库的隔离机制:set transaction isolation level 机制名称 或者是 set tx_isolation='机制名称';如:set transaction isolation level read uncommitted 或者 set tx_isolation=‘read-uncommitted’;

二、DCL语言的操作语法

(1)创建用户:create user username@ip identified by newPassword;

(2)修改密码:alter user username@ip identified by newPassword;

(3)显示用户的权限:show grants for username@ip;

(4)授权语句:grant 权限1,权限2,...... on databaseName.* to username@ip;

DDL权限名称: create、alter、drop、truncate 、create view 等等

DML权限名称: insert、delete、update

DQL权限名称: select

(5)撤销权限:revoke 权限1,权限2,..... on databaseName.* from username@ip;

(6)删除用户:drop user username;

(7)权限生效语句:flush privileges;

“MYSQL数据库的TCL语言和DCL语言是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MYSQL数据库的TCL语言和DCL语言是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql数据库是什么语言写的

c++kquote>mysql数据库是用c和c++编写的。核心组件,包括存储引擎和查询优化器,采用c和c++编写。客户端库和接口可以使用python、java和php等其他语言开发。mysql存储过程和触发器可以使用mysql自己的过程语言
mysql数据库是什么语言写的
2024-04-14

MySQL总结(十四)DCL数据库控制语言-详解

DCL(Data Control Language)我们现在默认使用的都是 root 用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和
MySQL总结(十四)DCL数据库控制语言-详解
2019-09-18

oracle数据库是什么语言

oracle 数据库是一种关系型数据库管理系统,提供以下优势:可靠性:高可用性、容错性和数据完整性可扩展性:适用于各种工作负载大小性能:通过优化数据访问实现快速查询安全性:全面保护数据免受未经授权的访问可用性:可在多种平台上使用Oracle
oracle数据库是什么语言
2024-04-19

mysql数据库使用什么语言

mysql 数据库使用 structured query language (sql),一种用于与关系型数据库交互的编程语言。sql 由四种类型的语句组成:数据定义语言 (ddl):创建/修改数据库结构数据操纵语言 (dml):插入/更新/
mysql数据库使用什么语言
2024-04-14

oracle数据库用的是什么语言

oracle数据库使用pl/sql语言,其特点包括面向过程、sql集成、数据处理、异常处理和可移植性。pl/sql可用于创建存储过程、触发器、包、报表和执行数据验证和操作。Oracle 数据库使用的语言Oracle 数据库使用名为 PL/
oracle数据库用的是什么语言
2024-04-08

Java语言和C++语言的差异是什么

本篇内容主要讲解“Java语言和C++语言的差异是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java语言和C++语言的差异是什么”吧!   Java采用了C及C++的语法格式,对于学习过
2023-06-03

mysql是什么语言写的

mysql是C和C++写的。MySQL的核心部分是用C编写的,C是一种高级编程语言,具有高性能和可移植性,C语言被广泛用于开发系统软件和数据库管理系统,提供了直接访问计算机硬件的能力。除了使用C语言,MySQL还使用了C++语言,C++是一
2023-08-03

C#中间语言和元数据是什么

这篇文章主要为大家展示了“C#中间语言和元数据是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中间语言和元数据是什么”这篇文章吧。NGWS RuntimeNGWS和NGWS Runtim
2023-06-17

汇编语言和c语言的区别是什么

区别:1、因为汇编语言实质上是机器语言的助记符,是直接面对CPU的语言,所以汇编语言的运行效率比C语言高;2、汇编语言对硬件的可操控性强,C语言硬件可操控性比较差;3、汇编语言的目标代码体积小,C语言目标代码体积大;4、汇编语言不易维护,C语言容易维护;5、汇编语言可移植性很差,C语言可移植性很好;6、汇编语言比C语言能学,因为汇编语言所需要的编绘知识很多也很复杂。
2023-05-14

go语言的数据结构是什么

常见的数据结构有基本数据类型、复合数据类型、其他数据结构。详细介绍:1、基本数据类型包括整数类型:int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64;浮点数
go语言的数据结构是什么
2023-12-21

Visual C++语言编写数据库的方法是什么

这篇文章主要介绍“Visual C++语言编写数据库的方法是什么”,在日常操作中,相信很多人在Visual C++语言编写数据库的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Visual C++语
2023-06-17

Mysql数据库语言学习的路线

对于我们数据库的学习,不管是测试人员还是开发人员以及我们的DBA来说重点都是SQL;但是我们的SQL可以分多少类型,学习重点又是在哪里呢,本文仅仅针对测试人员来展开说明:SQL:structure query language是结构化语言,正常来说学习了Mys
Mysql数据库语言学习的路线
2020-09-30

go语言数据类型是什么

Go语言中的数据类型是指变量或表达式的值的属性,用于描述数据的种类和限制,分为”基本类型“、”复合类型“和”其他类型“三种:1、基本类型,包括整型、浮点型、复数型、布尔型和字符串型;2、复合类型,包括数组类型、切片类型、结构体类型、接口类型
go语言数据类型是什么
2023-12-18

c语言数据结构是什么

c语言数据结构是指将数据按照一定的方式组织和存储的方法。它是计算机科学中的重要概念,用来描述和解决实际问题中的数据组织和处理问题。数据结构可以分为线性结构和非线性结构。线性结构包括数组、链表、堆栈和队列等,而非线性结构包括树和图等。C语言是
2023-08-09

编程热搜

目录