linux 环境下安装 Mariadb

一、下载安装 mariadb 是属于 mysql 的一个分支,是其创始人在 mysql 被卖给 oracle 之后重新分出来的,maria 取自于他女儿的名字。 mariadb 完全兼容于 mysql,在很多新版本的 linux 系统中,mysql 都已经被替换成了 mariadb 。 mariadb 的官网:mariadb 官网,下 ... 阅读更多

MYSQL 基础之 SELECT 语句 (一):SELECT 的基本用法

一、 SELECT 介绍 1.1 SELECT SELECT 是数据库四大基本操作的一种,用于查询表中的数据信息。 基本的查询语法为:SELECT 列 1, 列 2, ... FROM 表,表示从表中取出对应的列。 SELECT 语句的用法多种多样,并且还有很多高级的操作 (如排序、分组以及联合等等),是增删改查 ... 阅读更多

使用二进制包安装 MySQL

二进制包安装 MySQL 的步骤和源码编译安装的步骤差不多,只是少了编译的流程,直接解压就能使用,相对方便很多。 一、安装步骤 创建用户和安装依赖项:

下载安装包,解压,设置的安装目录为/usr/local/: [crayon-69560 ... 阅读更多

MySQL 中的 unique 和 primary key

primary key 用于标识主键,字段被设置为主键后该字段所有值不可重复且不能为 null,每个表仅可有一个主键。 unique 设置字段不可重复,但不包括 null 值,每张表可以有多个 unique 字段,null 并不包括空值。 简单来说 primary key = unique + not null 。 一、 ... 阅读更多

SQL UNION 和 UNION ALL 用法

一、概述 union 和 union all 都用于合并多个查询的结果,用法为:

两者的区别是 union all 中会有重复记录,而 union 中没有。 二、示例 创建两张表 ch ... 阅读更多

MySQL 乐观锁

一、乐观锁说明 乐观锁的使用原理是在数据表中添加一个版本字段,每次先查询当前的版本,在更新数据的时候判断版本是否和查询到的版本一致,一致就说明数据没有被修改,可以操作数据并把版本号+1;如果版本号不一致就说明数据已经被更改了,不进行操作。 相对悲观锁来说,乐观锁用得更广泛一点,但乐观锁的缺点是操作失 ... 阅读更多

MySQL 悲观锁

一、什么是悲观锁 前文说明了 MySQL 事务在并发环境下会导致脏读和不可重复读等等的现象,数据库通过事务隔离级别也就是我们常说的锁来解决这个问题。悲观锁的工作原理是假设每次事务都会被其他事务打断,所以在每次操作数据时,都把数据设置成锁定状态,使得其他事务无法再操作。悲观锁能有效的防止数据并发带来的各种 ... 阅读更多

MySQL 的事务隔离级别

一、事务并发带来的问题 1.1 第一类丢失更新 两个事务同时更新一行数据,第一个事务正常更新,第二个事务中途退出回滚数据到初始状态,导致第一个事务更新失效。 如:银行卡存储了用户甲的余额 4000,此时事务 A 和 B 同时开始更新余额,事务 A 将余额更新到 5000 后正常退出,事务 B 执行出错导致更新失败,然后回 ... 阅读更多

MySQL 事务的基本用法

一、什么是事务 事务是一组 SQL 语句构成的语句集合,它保证所有的 SQL 都能全部执行或者全部不执行。 事务必须满足四个条件 (ACID):Atomicity 原子性 Consistency 一致性 Isolation 隔离性 Durability 持久性 原子性:一个事务 (transaction) 中的所 ... 阅读更多

MySQL 中 CHAR(m) 、 VARCHAR(m) 和 INT(m) 的区别

一、区别 char(m):m 表示长度,固定 m 宽度的字符,不足用空格补齐,取出数据时会删掉尾部的空格。 varchar(m):m 表示长度,不固定,有多少字符就存多少字符,不会删除尾部的空格。 int(m):m 表示显示的位数,不会决定 int 的范围大小,需配合 zerofill 字段一起使用。 二、示例 创 ... 阅读更多