目录

  • 一,为什么要学习数据库
  • 二,数据库的相关概念
    • 2.1数据库术语
    • 2.2SQL 语法要点
    • 2.3 SQL 分类
      • 数据定义语言(DDL)
      • 数据操纵语言(DML)
      • 事务控制语言(TCL)
      • 数据控制语言(DCL)
    • 2.4
  • 三,数据库存储数据的特点
  • 四,初始MySQL
    • 4.1MySQL产品的介绍和安装
    • 4.2MySQL服务的启动和停止
    • 4.3MySQL服务的登录和退出
    • 4.4 MySQL的常见命令
    • 4.5 MySQL的语法规范
    • 4.6 SQL的常见命令
  • 五,DQL语言的学习
    • 5.1:基础查询
    • 5.2:条件查询
    • 5.3:排序查询
    • 5.4:常见函数
    • 5.5:分组查询
    • 5.6:多表连接查询
      • 一、传统模式下的连接 :等值连接——非等值连接
      • 二、sql99语法:通过join关键字实现连接
      • 三、自连接
    • 5.7:子查询
    • 5.8:分页查询
    • 5.9:联合查询
  • 六、DML语言的学习 ★
    • 6.1插入语句
    • 6.2修改语句
    • 6.3删除语句
  • 七、DDL语言的学习
    • 7.1库和表的管理
      • 7.1.1库的管理:
      • 7.2.2表的管理:
        • 1.创建表
        • 2.修改表 alter
        • 3.删除表
    • 7.2 常见数据类型介绍
    • 7.3常见约束
  • 八、TCL语言的学习
    • 8.1数据库事务
    • 8.2事务的分类:
  • 九、视图的讲解
    • 9.1视图和表的区别:
    • 9.2视图的操作
  • 十、存储过程和函数
    • 10.1存储过程
    • 10.2创建存储过程
    • 10.3调用存储过程
    • 10.4函数
  • 十一,自定义变量
    • 11.1用户变量
    • 11.2局部变量
    • 11.3二者的区别:
  • 十二,流程控制结构
    • 12.1分支
      • 一、if函数
      • 二、case语句
      • 三、if elseif语句
    • 12.2循环

一,为什么要学习数据库

数据库的好处

1.持久化数据到本地

2.可以实现结构化查询,方便管理

二,数据库的相关概念

2.1数据库术语

  • 数据库(database) - 保存有组织的数据的容器(通常是一个文件或一组文件)。
  • 数据表(table) - 某种特定类型数据的结构化清单。
  • 模式(schema) - 关于数据库和表的布局及特性的信息。模式定义了数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等信息。数据库和表都有模式。
  • 列(column) - 表中的一个字段。所有表都是由一个或多个列组成的。
  • 行(row) - 表中的一个记录。
  • 主键(primary key) - 一列(或一组列),其值能够唯一标识表中每一行。

SQL 语法结构包括:

  • 子句 - 是语句和查询的组成成分。(在某些情况下,这些都是可选的。)
  • 表达式 - 可以产生任何标量值,或由列和行的数据库表
  • 谓词 - 给需要评估的 SQL 三值逻辑(3VL)(true/false/unknown)或布尔真值指定条件,并限制语句和查询的效果,或改变程序流程。
  • 查询 - 基于特定条件检索数据。这是 SQL 的一个重要组成部分。
  • 语句 - 可以持久地影响纲要和数据,也可以控制数据库事务、程序流程、连接、会话或诊断。

2.2SQL 语法要点

  • SQL 语句不区分大小写,但是数据库表名、列名和值是否区分,依赖于具体的 DBMS 以及配置。

例如:SELECTselectSelect 是相同的。

  • 多条 SQL 语句必须以分号(;)分隔
  • 处理 SQL 语句时,所有空格都被忽略。SQL 语句可以写成一行,也可以分写为多行。
-- 一行 SQL 语句
UPDATE user SET username='root', password='123456' WHERE username = 'root';-- 多行 SQL 语句
UPDATE user
SET username='root', password='123456'
WHERE username = 'root';
  • SQL 支持三种注释
## 注释1
-- 注释2
/* 注释3 */

2.3 SQL 分类

数据定义语言(DDL)

数据定义语言(Data Definition Language,DDL)是 SQL 语言集中负责数据结构定义与数据库对象定义的语言。

DDL 的主要功能是定义数据库对象

DDL 的核心指令是 CREATEALTERDROP

数据操纵语言(DML)

数据操纵语言(Data Manipulation Language, DML)是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句。

DML 的主要功能是 访问数据,因此其语法都是以读写数据库为主。

DML 的核心指令是 INSERTUPDATEDELETESELECT。这四个指令合称 CRUD(Create, Read, Update, Delete),即增删改查。

事务控制语言(TCL)

事务控制语言 (Transaction Control Language, TCL) 用于管理数据库中的事务。这些用于管理由 DML 语句所做的更改。它还允许将语句分组为逻辑事务。

TCL 的核心指令是 COMMITROLLBACK

数据控制语言(DCL)

数据控制语言 (Data Control Language, DCL) 是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。

DCL 的核心指令是 GRANTREVOKE

DCL 以控制用户的访问权限为主,因此其指令作法并不复杂,可利用 DCL 控制的权限有:CONNECTSELECTINSERTUPDATEDELETEEXECUTEUSAGEREFERENCES

根据不同的 DBMS 以及不同的安全性实体,其支持的权限控制也有所不同。

2.4

​ 1、DB:数据库,保存一组有组织的数据的容器
​ 2、DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据
​ 3、SQL:结构化查询语言,用于和DBMS通信的语言

三,数据库存储数据的特点

​ 1、将数据放到表中,表再放到库中
​ 2、一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
​ 3、表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。
​ 4、表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
​ 5、表中的数据是按行存储的,每一行类似于java中的“对象”。

四,初始MySQL

4.1MySQL产品的介绍和安装

SQL的安装与介绍可以参考

4.2MySQL服务的启动和停止

方式一:计算机——右击管理——服务方式二:通过管理员身份运行net start 服务名(启动服务)net stop 服务名(停止服务)

4.3MySQL服务的登录和退出

方式一:通过mysql自带的客户端
只限于root用户方式二:通过windows自带的客户端
登录:
mysql 【-h主机名 -P端口号 】-u用户名 -p密码退出:
exit或ctrl+C

4.4 MySQL的常见命令

1.查看当前所有的数据库
show databases;
2.打开指定的库
use 库名
3.查看当前库的所有表
show tables;
4.查看其它库的所有表
show tables from 库名;
5.创建表
create table 表名(列名 列类型,列名 列类型,。。。
);
6.查看表结构
desc 表名;
7.查看服务器的版本
方式一:登录到mysql服务端
select version();
方式二:没有登录到mysql服务端
mysql --version
或
mysql --V

4.5 MySQL的语法规范

​ 1.不区分大小写,但建议关键字大写,表名、列名小写
​ 2.每条命令最好用分号结尾
​ 3.每条命令根据需要,可以进行缩进 或换行
​ 4.注释
​ 单行注释:#注释文字
​ 单行注释:-- 注释文字
​ 多行注释:/* 注释文字 */

4.6 SQL的常见命令

show databases; 查看所有的数据库
use 库名; 打开指定 的库
show tables ; 显示库中的所有表
show tables from 库名;显示指定库中的所有表
create table 表名(字段名 字段类型,   字段名 字段类型
); 创建表desc 表名; 查看指定表的结构
select * from 表名;显示表中的所有数据√                  分页查询      ★              union联合查询 √

五,DQL语言的学习

5.1:基础查询

语法:SELECT 要查询的东西【FROM 表名】;类似于Java中 :System.out.println(要打印的东西);
特点:
①通过select查询完的结果 ,是一个虚拟的表格,不是真实存在
② 要查询的东西 可以是常量值、可以是表达式、可以是字段、可以是函数

5.2:条件查询

​ 条件查询:根据条件过滤原始表的数据,查询到想要的数据

语法:select 要查询的字段|表达式|常量值|函数from 表where 条件 ;
分类:
一、条件表达式示例:salary>10000条件运算符:> < >= <= = != <>二、逻辑表达式
示例:salary>10000 && salary<20000逻辑运算符:and(&&):两个条件如果同时成立,结果为true,否则为falseor(||):两个条件只要有一个成立,结果为true,否则为falsenot(!):如果条件成立,则not后为false,否则为true三、模糊查询
示例:last_name like 'a%'

5.3:排序查询

语法:
select要查询的东西
from表
where 条件order by 排序的字段|表达式|函数|别名 【asc|desc】

5.4:常见函数

一、单行函数
1、字符函数concat拼接substr截取子串upper转换成大写lower转换成小写trim去前后指定的空格和字符ltrim去左边空格rtrim去右边空格replace替换lpad左填充rpad右填充instr返回子串第一次出现的索引length 获取字节个数2、数学函数round 四舍五入rand 随机数floor向下取整ceil向上取整mod取余truncate截断
3、日期函数now当前系统日期+时间curdate当前系统日期curtime当前系统时间str_to_date 将字符转换成日期date_format将日期转换成字符
4、流程控制函数if 处理双分支case语句 处理多分支情况1:处理等值判断情况2:处理条件判断
5、其他函数version版本database当前库user当前连接用户
二、分组函数sum 求和max 最大值min 最小值avg 平均值count 计数特点:1、以上五个分组函数都忽略null值,除了count(*)2、sum和avg一般用于处理数值型max、min、count可以处理任何数据类型3、都可以搭配distinct使用,用于统计去重后的结果4、count的参数可以支持:字段、*、常量值,一般放1建议使用 count(*)

5.5:分组查询

语法:select 查询的字段,分组函数from 表group by 分组的字段特点:
1、可以按单个字段分组
2、和分组函数一同查询的字段最好是分组后的字段
3、分组筛选针对的表  位置          关键字
分组前筛选:   原始表     group by的前面     where
分组后筛选:   分组后的结果集 group by的后面     having4、可以按多个字段分组,字段之间用逗号隔开
5、可以支持排序
6、having后可以支持别名

5.6:多表连接查询

笛卡尔乘积:如果连接条件省略或无效则会出现
解决办法:添加上连接条件
一、传统模式下的连接 :等值连接——非等值连接
1.等值连接的结果 = 多个表的交集
2.n表连接,至少需要n-1个连接条件
3.多个表不分主次,没有顺序要求
4.一般为表起别名,提高阅读性和性能
二、sql99语法:通过join关键字实现连接
含义:1999年推出的sql语法
支持:
等值连接、非等值连接 (内连接)
外连接
交叉连接语法:select 字段,...
from 表1
【inner|left outer|right outer|cross】join 表2 on  连接条件
【inner|left outer|right outer|cross】join 表3 on  连接条件
【where 筛选条件】
【group by 分组字段】
【having 分组后的筛选条件】
【order by 排序的字段或表达式】好处:语句上,连接条件和筛选条件实现了分离,简洁明了!
三、自连接

案例:查询员工名和直接上级的名称

sql99

SELECT e.last_name,m.last_name
FROM employees e
JOIN employees m ON e.`manager_id`=m.`employee_id`;

sql92

SELECT e.last_name,m.last_name
FROM employees e,employees m
WHERE e.`manager_id`=m.`employee_id`;

5.7:子查询

含义:

一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询
在外面的查询语句,称为主查询或外查询

特点:

1、子查询都放在小括号内
2、子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧
3、子查询优先于主查询执行,主查询使用了子查询的执行结果
4、子查询根据查询结果的行数不同分为以下两类:
① 单行子查询结果集只有一行一般搭配单行操作符使用:> < = <> >= <= 非法使用子查询的情况:a、子查询的结果为一组值b、子查询的结果为空② 多行子查询结果集有多行一般搭配多行操作符使用:any、all、in、not inin: 属于子查询结果中的任意一个就行any和all往往可以用其他查询代替

5.8:分页查询

应用场景:

实际的web项目中需要根据用户的需求提交对应的分页查询的sql语句

语法:

select 字段|表达式,...
from 表
【where 条件】
【group by 分组字段】
【having 条件】
【order by 排序的字段】
limit 【起始的条目索引,】条目数;

特点:

1.起始条目索引从0开始2.limit子句放在查询语句的最后3.公式:select * from  表 limit (page-1)*sizePerPage,sizePerPage
假如:
每页显示条目数sizePerPage
要显示的页数 page

5.9:联合查询

引入:
union 联合、合并

语法:

select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】
select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】
select 字段|常量|表达式|函数 【from 表】 【where 条件】 union  【all】
.....
select 字段|常量|表达式|函数 【from 表】 【where 条件】

特点:

1、多条查询语句的查询的列数必须是一致的
2、多条查询语句的查询的列的类型几乎相同
3、union代表去重,union all代表不去重

六、DML语言的学习 ★

6.1插入语句

语法:

 insert into 表名(字段名,...)values(值1,...);

特点:

1、字段类型和值类型一致或兼容,而且一一对应
2、可以为空的字段,可以不用插入值,或用null填充
3、不可以为空的字段,必须插入值
4、字段个数和值的个数必须一致
5、字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致

6.2修改语句

修改单表语法:

update 表名 set 字段=新值,字段=新值
【where 条件】

修改多表语法:

update 表1 别名1,表2 别名2
set 字段=新值,字段=新值
where 连接条件
and 筛选条件

6.3删除语句

方式1:delete语句

单表的删除: ★delete from 表名 【where 筛选条件】多表的删除:delete 别名1,别名2from 表1 别名1,表2 别名2where 连接条件and 筛选条件;

方式2:truncate语句

truncate table 表名

两种方式的区别【面试题】

#1.truncate不能加where条件,而delete可以加where条件#2.truncate的效率高一丢丢#3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始
#delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始#4.truncate删除不能回滚,delete删除可以回滚

七、DDL语言的学习

7.1库和表的管理

7.1.1库的管理:
一、创建库
create database 库名
二、删除库
drop database 库名
7.2.2表的管理:
1.创建表
CREATE TABLE IF NOT EXISTS stuinfo(stuId INT,stuName VARCHAR(20),gender CHAR,bornDate DATETIME);DESC studentinfo;
2.修改表 alter
语法:ALTER TABLE 表名 ADD|MODIFY|DROP|CHANGE COLUMN 字段名 【字段类型】;#①修改字段名
ALTER TABLE studentinfo CHANGE  COLUMN sex gender CHAR;#②修改表名
ALTER TABLE stuinfo RENAME [TO]  studentinfo;
#③修改字段类型和列级约束
ALTER TABLE studentinfo MODIFY COLUMN borndate DATE ;#④添加字段ALTER TABLE studentinfo ADD COLUMN email VARCHAR(20) first;
#⑤删除字段
ALTER TABLE studentinfo DROP COLUMN email;
3.删除表
DROP TABLE [IF EXISTS] studentinfo;

7.2 常见数据类型介绍

整型:
小数:浮点型定点型
字符型:
日期型:
Blob类型:

7.3常见约束

NOT NULL
DEFAULT
UNIQUE
CHECK
PRIMARY KEY
FOREIGN KEY

八、TCL语言的学习

​ 事务和事务处理

8.1数据库事务

含义:
通过一组逻辑操作单元(一组DML——sql语句),将数据从一种状态切换到另外一种状态

特点(ACID)

  • 原子性:要么都执行,要么都回滚
  • 一致性:保证数据的状态操作前和操作后保持一致
  • 隔离性:多个事务同时操作相同数据库的同一个数据时,一个事务的执行不受另外一个事务的干扰
  • 持久性:一个事务一旦提交,则数据将持久化到本地,除非其他事务对其进行修改

相关步骤:

1、开启事务
2、编写事务的一组逻辑操作单元(多条sql语句)
3、提交事务或回滚事务

8.2事务的分类:

隐式事务,没有明显的开启和结束事务的标志

比如
insert、update、delete语句本身就是一个事务

显式事务,具有明显的开启和结束事务的标志

 1、开启事务取消自动提交事务的功能2、编写事务的一组逻辑操作单元(多条sql语句)insertupdatedelete3、提交事务或回滚事务

使用到的关键字

set autocommit=0;
start transaction;
commit;
rollback;savepoint  断点
commit to 断点
rollback to 断点

事务的隔离级别:

事务并发问题如何发生?

当多个事务同时操作同一个数据库的相同数据时

事务的并发问题有哪些?

脏读:一个事务读取到了另外一个事务未提交的数据
不可重复读:同一个事务中,多次读取到的数据不一致
幻读:一个事务读取数据时,另外一个事务进行更新,导致第一个事务读取到了没有更新的数据

如何避免事务的并发问题?

通过设置事务的隔离级别
1、READ UNCOMMITTED
2、READ COMMITTED 可以避免脏读
3、REPEATABLE READ 可以避免脏读、不可重复读和一部分幻读
4、SERIALIZABLE可以避免脏读、不可重复读和幻读

设置隔离级别:

set session|global  transaction isolation level 隔离级别名;

查看隔离级别:

select @@tx_isolation;

九、视图的讲解

含义:理解成一张虚拟的表

9.1视图和表的区别:

使用方式 占用物理空间
视图 完全相同 不占用,仅仅保存的是sql逻辑
完全相同 占用

视图的好处:

1、sql语句提高重用性,效率高
2、和表实现了分离,提高了安全性

9.2视图的操作

视图的创建

​ 语法:

CREATE VIEW  视图名AS查询语句;

视图的增删改查
1、查看视图的数据 ★

SELECT * FROM test;
SELECT * FROM test WHERE last_name='Partners';2、插入视图的数据
INSERT INTO test(last_name,department_id) VALUES('昝茜',90);3、修改视图的数据UPDATE test SET last_name ='萌小肆' WHERE last_name='昝茜';

​ 删除视图的数据

DELETE FROM test;

某些视图不能更新

包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all

常量视图

Select中包含子查询

join

from一个不能更新的视图

where子句的子查询引用了from子句中的表

视图逻辑的更新

#方式一:CREATE OR REPLACE VIEW test_v7ASSELECT last_name FROM employeesWHERE employee_id>100;
#方式二:
ALTER VIEW test_v7
AS
SELECT employee_id FROM employees;SELECT * FROM test_v7;

2.视图的删除

DROP VIEW test_v1,test_v2,test_v3;

视图结构的查看

DESC test_v7;SHOW CREATE VIEW test_v7;

十、存储过程和函数

十二、流程控制结构

10.1存储过程

含义:一组经过预先编译的sql语句的集合
好处:

1、提高了sql语句的重用性,减少了开发程序员的压力
2、提高了效率
3、减少了传输次数

分类:

1、无返回无参
2、仅仅带in类型,无返回有参
3、仅仅带out类型,有返回无参
4、既带in又带out,有返回有参
5、带inout,有返回有参
注意:in、out、inout都可以在一个存储过程中带多个

10.2创建存储过程

语法:

create procedure 存储过程名(in|out|inout 参数名  参数类型,...)
begin存储过程体end

类似于方法:

修饰符 返回类型 方法名(参数类型 参数名,...){方法体;
}

注意

1、需要设置新的结束标记
delimiter 新的结束标记
示例:
delimiter $CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名  参数类型,...)
BEGINsql语句1;sql语句2;END $2、存储过程体中可以有多条sql语句,如果仅仅一条sql语句,则可以省略begin end3、参数前面的符号的意思
in:该参数只能作为输入 (该参数不能做返回值)
out:该参数只能作为输出(该参数只能做返回值)
inout:既能做输入又能做输出

10.3调用存储过程

call 存储过程名(实参列表)

10.4函数

创建函数

学过的函数:LENGTH、SUBSTR、CONCAT等
语法:

CREATE FUNCTION 函数名(参数名 参数类型,...) RETURNS 返回类型
BEGIN函数体END

调用函数
SELECT 函数名(实参列表)

函数和存储过程的区别

关键字 调用语法 返回值 应用场景
函数 FUNCTION SELECT函数() 只能是一个 一般用于查询结果为一个值并返回时,当有返回值而且仅仅一个
存储过程 PROCEDURE CALL 存储过程() 可以有0个或多个 一般用于更新

###系统变量
一、全局变量

作用域:针对于所有会话(连接)有效,但不能跨重启

查看所有全局变量
SHOW GLOBAL VARIABLES;
查看满足条件的部分系统变量
SHOW GLOBAL VARIABLES LIKE '%char%';
查看指定的系统变量的值
SELECT @@global.autocommit;
为某个系统变量赋值
SET @@global.autocommit=0;
SET GLOBAL autocommit=0;

二、会话变量

作用域:针对于当前会话(连接)有效

查看所有会话变量
SHOW SESSION VARIABLES;
查看满足条件的部分会话变量
SHOW SESSION VARIABLES LIKE '%char%';
查看指定的会话变量的值
SELECT @@autocommit;
SELECT @@session.tx_isolation;
为某个会话变量赋值
SET @@session.tx_isolation='read-uncommitted';
SET SESSION tx_isolation='read-committed';

十一,自定义变量

11.1用户变量

声明并初始化:

SET @变量名=值;
SET @变量名:=值;
SELECT @变量名:=值;

赋值:

方式一:一般用于赋简单的值
SET 变量名=值;
SET 变量名:=值;
SELECT 变量名:=值;方式二:一般用于赋表 中的字段值
SELECT 字段名或表达式 INTO 变量
FROM 表;

使用:

select @变量名;

11.2局部变量

声明:

declare 变量名 类型 【default 值】;

赋值:

方式一:一般用于赋简单的值
SET 变量名=值;
SET 变量名:=值;
SELECT 变量名:=值;方式二:一般用于赋表 中的字段值
SELECT 字段名或表达式 INTO 变量
FROM 表;

使用:

select 变量名

11.3二者的区别:

作用域 定义位置 语法
用户变量 当前会话 会话的任何地方 加@符号,不用指定类型
局部变量 定义它的BEGIN END中 BEGIN END的第一句话 一般不用加@,需要指定类型

十二,流程控制结构

12.1分支

一、if函数
语法:if(条件,值1,值2)特点:可以用在任何位置
二、case语句

语法:

情况一:类似于switch
case 表达式
when 值1 then 结果1或语句1(如果是语句,需要加分号)
when 值2 then 结果2或语句2(如果是语句,需要加分号)
...
else 结果n或语句n(如果是语句,需要加分号)
end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)情况二:类似于多重if
case
when 条件1 then 结果1或语句1(如果是语句,需要加分号)
when 条件2 then 结果2或语句2(如果是语句,需要加分号)
...
else 结果n或语句n(如果是语句,需要加分号)
end 【case】(如果是放在begin end中需要加上case,如果放在select后面不需要)

特点:
可以用在任何位置

三、if elseif语句

语法:

if 情况1 then 语句1;
elseif 情况2 then 语句2;
...
else 语句n;
end if;

特点:

只能用在begin end中!!!!!!!!!!!!!!!

三者比较:

应用场合
if函数 简单双分支
case结构 等值判断 的多分支
if else if语句 区间判断 的多分支

12.2循环

语法:

【标签:】WHILE 循环条件  DO循环体
END WHILE 【标签】;

特点:

只能放在BEGIN END里面如果要搭配leave跳转语句,需要使用标签,否则可以不用标签leave类似于java中的break语句,跳出所在循环!!!

一文带你了解MySQL基础相关推荐

  1. 一文带你了解Nginx基础知识 | 建议收藏

    目录 1. 概述 2. 历史背景 3. nginx的优点 4. 主要组成部分 5. 版本规则 6. 版本选择 7. 编译配置 8. 开始编译 9. 配置语法 10. 重载,热部署,日志切割 1. 重载 ...

  2. mysql 导出dmp文件_一文带你了解MySQL主从复制(Master-Slave)

    1.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  3. 一文带你了解MySQL的前世今生,架构,组成部分,特点,适用场景

    文章目录 一.MySQL的由来 二.MySQL的架构 2.1 客户端 2.2 服务器 三. MySQL的主要组成部分 3.1 连接管理器 3.2 查询缓存 3.3 解析器 3.4 查询优化器 3.5 ...

  4. 一文彻底搞懂MySQL基础:B树和B+树的区别

    写在前面 大家在面试的时候,肯定都会被问到MySql的知识,以下是面试场景: 面试官:对于MySQL,你对他索引原理了解吗? 我:了解 面试官:MySQL的索引是用什么数据机构的? 我:B+树 面试官 ...

  5. 一文带你了解MySQL之基于成本的优化

    前言 我们之前老说MySQL执行一个查询可以有不同的执行方案,它会选择其中成本最低,或者说代价最低的那种方案去真正的执行查询,怎么就带大家详细了解一下 目录 一.什么是成本 二.单表查询的成本 2.1 ...

  6. MySQL需要掌握的技能有哪些?超细长文带你掌握MySQL

    大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 目录 必须要看 ...

  7. 一文带你了解MySQL之undo日志

    目录 一.事务回滚的需求 二.事务id 2.1 给事务分配id的时机 2.2 事务id是怎么生成的 2.3 trx_id隐藏列 三.undo日志的格式 3.1 INSERT操作对应的undo日志 3. ...

  8. 一文带你了解 MySQL 中的各种锁机制!

    MySQL中的锁机制,按粒度分为行级锁,页级锁,表级锁,其中按用法还分为共享锁和排他锁. 行级锁 行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁. 行级锁能大大减少数据库操作 ...

  9. mysql 获取距离当前最新的记录_一文带你了解 MySQL 中的各种锁机制!

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! MySQL中的锁机制,按粒度分为行级锁,页级锁,表级锁,其中按用法还分为共享锁和排他锁. 行级锁 ...

最新文章

  1. Xmanager7如何通过SSH连接远程服务器
  2. filebeat成精之路
  3. 04. Mybatis的resultMap基本应用
  4. 利用java求积分(定积分和无穷限积分)
  5. 南阳14(会场安排问题)
  6. python中circle函数的用法,python画圆运用了什么函数
  7. 计算机c语言笔试试题,计算机二级c语言笔试题和面试题答案(2019最新)
  8. Android源码学习(一)系统源码初识
  9. 高性能PC机与服务器的真正区别
  10. 个人小程序和企业小程序
  11. uniapp和vue实现打开手机前置摄像头和相机的方法
  12. 计算机高级通信机制,深入电脑运行原理之进程通信(Operating System四级内容)...
  13. cf微软AIM服务器,CF微软AIM1.1透视自瞄无后坐力
  14. 盘点 yMatrix 创业的530天:1.01^530,苟日新,日日新,又日新
  15. 简单的Windows游戏-第1部分:游戏框架
  16. ONIE-sonic内核调试
  17. 零基础要怎么样学习嵌入式Linux
  18. CentOS7安装Fluentd
  19. 直播类送礼动画豪华礼物+小礼物
  20. 表面处理之阳极氧化基本常识

热门文章

  1. autocad完全应用指南_建筑绘图慢?580页的AUTOCAD完全自学必备指南,高效绘图不求人...
  2. python获取数组中大于某一阈值的那些索引值_使用Python+OpenCV进行实时车道检测...
  3. 计算机模块怎么算,计算基础
  4. IDA插件uEmu模拟执行
  5. 单片机如何实现大数据的串口传输_获客成本日益增加,企业如何实现大数据精准获客?...
  6. post 返回代码_减少冗长代码,利用DDT轻松分离测试数据
  7. linux设置nexus开机自启动_linux安装nexus(支持jdk1.7)并设置开机启动
  8. 实时获取vuex更新的新数据_京东手机销量实时数据更新 荣耀Play4T Pro位列第一
  9. 显卡、显卡驱动、cuda 之间的关系是什么?
  10. python tkinter计算器实例_python小实例——tkinter实战(计算器)