mysql
文章平均质量分 87
「已注销」
这个作者很懒,什么都没留下…
展开
-
MySQL用户管理
比如张三只能操作mytest这个数据库,李四只能操作msg这个数据库,而root可以操作所有的库,如果给他们root账户,风险太大了,数据库都能操作,所以我们需要对用户进行管理。grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']create user '用户名'@'登陆主机/ip' identified by '密码';这是授予全部权限的,当然,也可以只给用户授予只读的权限:此时zhangsan这个用户只有读权限。刚创建的用户没有任何权限。原创 2023-10-20 22:06:51 · 137 阅读 · 1 评论 -
MySQL视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。好处就是获取一些高频访问的数据时,不用在做多表查询了,直接以视图的方式查看即可。把select查出来的东西变成了临时表结构,放在表之中。此时查看视图,发现v_name_dname也被修改了。v_name_dname说白了就是。查看时发现基表原数据不见了。原创 2023-10-20 20:15:36 · 71 阅读 · 1 评论 -
MySQL事务隔离级别
但是此时另一个事务对徐一这个名字的薪资进行了修改,而刚开始的事务还没有提交,同一个事务中,同样的读取,此时徐一这个人就需要分发两个奖品,这是不合理的,一个人只能按照薪资等级分发到一个奖品。多个事务并发执行时,此时还在当前事务中,并未commit,那么就造成了同一个事务内,同样的读取,在不同的时间段(依旧还在事务操作中)读取到了不同的值,这种现象叫做不可重复读(non reapeatable read),比如我们上面的图片就是,在一个事务运行的内部还未commit,但是同样的读取却读取到了不同的值。原创 2023-10-19 13:40:03 · 145 阅读 · 0 评论 -
MySQL事务常见操作
autocommit会影响之前的单sql,每条sql就相当于事务,虽然没有写begin,没有写commit。单sql执行的时候,如果autocommit是off的,只是事务执行中,当这个客户端崩溃的时候,数据会回滚。先来看一下现在有一个表account,以及两个客户端,也就是以下的情况:(注意,事务是自动提交的show variables like 'autocommit';单sql也是事务,是自动提交的。现在执行单sql语句:数据被删除,但是如果aborted,当前的数据会自动回滚!原创 2023-10-18 15:13:23 · 69 阅读 · 1 评论 -
MySQL事务基础
事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部 失败,是一个整体。MySQL提供一种机制,保证我们达到这样的效果。事务还规定不同的客户端看到的 数据是不相同的。事务就是要做的或所做的事情,主要用于处理操作量大,复杂度高的数据。比如:当你毕业了,对于教务系统后台 MySQL 中,就不需要你的数据了,那么要删除你的基本信息(如姓名,电话,籍贯等等这些)的同时,也会删除和你有关的其他信息,比如:各科的成绩,在校表现,甚至你在论坛发过的文章等。原创 2023-10-18 11:45:42 · 51 阅读 · 1 评论 -
MySQL索引操作
AVL &&红黑树:虽然是平衡或者近似平衡,但是毕竟是二叉结构,相比较多阶B+,意味着树整体过高,大家都是自顶向下找,层高越低,意味着系统与硬盘更少的IO Page交互。MySQL提供全文索引机制,但是有要求,要求表的存储引擎必须是MyISAM,而且默认的全文索引支持英文,不支持中文。其中, MyISAM 最大的特点是,将索引Page和数据Page分离,也就是叶子节点没有数据,只有对应数据的地址。B树节点,既有数据,又有Page指针,而B+,只有叶子节点有数据,其他目录页,只有键值和Page指针。原创 2023-10-15 21:53:27 · 117 阅读 · 1 评论 -
MySQL索引理解
它有着更高的IO场景,所以,为了提高基本的IO效率, MySQL 进行IO的基本单位是 16KB:MySQL是应用层服务,是不可能直接访问硬件的,这个16KB是站在MySQL角度向OS提出来的,OS内部存在文件缓冲区的,MySQL进入到某一个目录,对某张表做CURD,对某张表内部做增删查改,在MySQL就得到了文件的fd,一个文件被打开有自己的结构体,缓冲区;但是,我们也可以看到,现在的页模式内部,实际上是采用了链表的结构,前一条数据指向后一条数据,本质上还是通过数据的逐条比较来取出特定的数据。原创 2023-10-14 10:08:55 · 119 阅读 · 1 评论 -
MySQL表的内连接和外连接
表的连接分为内连和外连,下面,我们直接进入主题。原创 2023-10-10 22:34:08 · 139 阅读 · 1 评论 -
MySQL复合查询
单行子查询是指子查询只返回单列,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句。这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号--empno)在实际应用中,为了合并多个select的执行结果,可以使用集合操作符。子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。实际开发中往往数据来自不同的表,所以需要多表查询。返回一行记录的子查询。返回多行记录的子查询。原创 2023-10-09 16:40:09 · 159 阅读 · 1 评论 -
MySQL内置函数
length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)原创 2023-10-07 16:39:01 · 141 阅读 · 2 评论 -
MySQL聚合函数与group by子句
所以聚合语句(sum,min,max,avg,count)要比having子句优先执行,而where子句在查询过程中执行优先级别优先于聚合语句(sum,min,max,avg,count)。在select中使用group by 子句可以对指定列进行分组查询,分组的目的是为了进行分组之后,方便进行聚合统计。having子句与where都是设定条件筛选的语句,有相似之处也有区别。分组就是把一个大组按照条件分成多个小组,各自在小组内进行统计。,创建一个雇员信息表(来自oracle 9i的经典测试表)原创 2023-10-05 15:05:53 · 239 阅读 · 0 评论 -
MySQL基本查询
CRUD:Create(创建),Retrieve(读取),Update(更新),Delete(删除)原创 2023-10-04 18:09:27 · 120 阅读 · 1 评论 -
MySQL表的约束
真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合 法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。约束本质是通过技术手段,倒逼程序员插入正确的数据。反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。约束的最终目标是保证数据的完整性和可预期性。原创 2023-09-26 22:58:16 · 113 阅读 · 1 评论 -
MySQL数据类型
而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,4,8,16,32,.... 最多64个。所以MySQL中一般而言,数据类型本身也是一种约束,约束程序员尽可能进行正确的插入,约束使用者,如果你不是一个很好的使用者,MySql也能保证数据插入的合法性。decimal也是mysql中的浮点数类型,float存储数据时,小数比较大,或者小数位点比较多存储的就不太准确了,这与浮点数存储规则有关(mysql中的float浮点数精度为是7)。如果M被忽略,默认为1。原创 2023-09-25 22:15:43 · 61 阅读 · 1 评论 -
MySQL表操作
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准。从左到右依次为 字段名字、字段类型、是否允许为空、默认值、扩充。collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。在user2表添加一个字段,用于保存图片路径。不同的存储引擎,创建表的文件不一样。展示创建表时写下的mysql语言。原创 2023-09-25 11:01:57 · 153 阅读 · 2 评论 -
MySQL库操作
它通常由1~4个字节来进行编码,根据使用字节的不同,也可以分为UTF8和utf8mb4两种,mb4的意思就是最多4个字节的意思,一般来讲UTF8采用三个字节进行编码,除此之外,还有utf16以及utf32,utf16使用2个或4个字节编码一个字符,utf32使用4个字节编码一个字符。字符集的校验规则,指的是字符集比较大小的时候依据的准则,比如我们比较a和B的大小,如果不考虑大小写,那么aB,也就是说,同一字符集,不同的比较规则,对某列数据的排序结果也就会产生不同。原创 2023-09-21 16:49:24 · 45 阅读 · 1 评论 -
在Linux环境下看MySQL本质
一般的文件的确提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力。文件不利于数据的查询和管理,不利于存储海量数据,并且在程序中控制不方便,安全性也得不到保障。为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。原创 2023-09-21 13:43:23 · 45 阅读 · 0 评论 -
在Centos 7环境下安装MySQL
1、先检查是否有mysql或者mariadb存在,存在的话,就停止服务。原创 2023-09-21 11:17:27 · 475 阅读 · 1 评论