![](https://img-blog.csdnimg.cn/2020080811342833.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL数据库基础+高级
文章平均质量分 87
MySQL数据库基础+高级
前丨尘忆·梦
接受自己的不完美,我从来没有优秀过,也从来不曾放弃过!
展开
-
MySql高级——SQL预热
SQL 预热文章目录SQL 预热1、常见的 Join 查询图2、JOIN 示例2.1、数据准备2.2、案例1、常见的 Join 查询图2、JOIN 示例2.1、数据准备CREATE TABLE `t_dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`)) ENGIN原创 2022-03-23 10:31:13 · 266 阅读 · 0 评论 -
MySql高级优化
文章目录1.MySQL环境1.1.环境安装1.2.安装位置1.3.修改字符集1.4.配置文件2.MySQL逻辑架构3.存储引擎4.SQL性能下降的原因5.SQL执行顺序6.七种JOIN理论7.索引7.1.索引简介7.2.MySQL索引分类7.3MySQL索引数据结构7.4.哪些情况需要建索引7.5.那些情况不要建索引8.性能分析8.1.EXPLAIN简介8.2.EXPLAIN字段9.索引分析9.1.单表索引分析9.2.两表索引分析9.3.三张表索引分析9.4.结论10.索引失效10.1.索引失效的情况10.原创 2022-03-25 16:23:13 · 651 阅读 · 0 评论 -
MySql高级——索引优化分析
索引优化分析文章目录索引优化分析1、索引的概念1.1、是什么?1.2、优缺点2、Mysql 的索引2.1、Btree 索引3、Mysql 索引分类3.1、基本语法4、索引的创建时机4.1、适合创建索引的情况4.2、不适合创建索引的情况1、索引的概念1.1、是什么?MySQL 官方对索引的定义为: 索引(Index) 是帮助 MySQL 高效获取数据的数据结构。可以得到索引的本质:索引是数据结构。可以简单理解为**排好序的快速查找数据结构**。在数据之外, 数据库系统还维护着满足特定查找原创 2022-03-23 11:47:06 · 962 阅读 · 0 评论 -
MySql高级——Explain性能分析
Explain 性能分析文章目录Explain 性能分析1、概念2、id3、select_type4、table5、type1、概念使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的。分析你的查询语句或是表结构的性能瓶颈。用法:Explain + SQL 语句。Explain 执行后返回的信息:2、idselect 查询的序列号,包含一组数字,表示查询中执行 select 子句或操作表的顺序。id 相同,执行顺序由上原创 2022-03-23 20:57:20 · 1188 阅读 · 0 评论 -
MySql高级——MySql逻辑架构
MySql 逻辑架构文章目录MySql 逻辑架构1、整体架构图1.1、连接层1.2、服务1.3、引擎层1.4、存储层2、sql 执行周期2.1、show profile2.2、开启 profile2.3、使用 profile2.4、大致的查询流程3、SQL 的执行顺序3.1、手写顺序3.2、真正执行的顺序4、MyISAM 和 InnoDB1、整体架构图和其它数据库相比, MySQL 有点与众不同, 它的架构可以在多种不同场景中应用并发挥良好作用。 主要体现在存储引擎的架构上, 插件式的存储引擎架构将原创 2022-03-22 21:10:52 · 221 阅读 · 0 评论 -
MySQL——索引和视图
索引和视图文章目录索引和视图1、索引(index)1.1、什么是索引?1.2、索引的实现原理1.3、在 mysql 当中,主键上,以及 unique 字段上都会自动添加索引的!!!!1.4、索引怎么创建?怎么删除?1.5、在 mysql 当中,怎么查看一个 SQL 语句是否使用了索引进行检索?1.6、索引有失效的时候,什么时候索引失效呢?1.6.1、失效的第 1 种情况1.6.2、失效的第 2 种情况1.6.3、失效的第 3 种情况1.6.4、失效的第 4 种情况1.6.5、失效的第 5 种情况1.7、索原创 2021-12-07 17:39:59 · 845 阅读 · 0 评论 -
MySQL——约束
约束1、什么是约束?在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的完整性、有效性!!!约束的作用就是为了保证:表中的数据有效!!2、约束包括哪些?非空约束:not null唯一性约束: unique主键约束: primary key (简称PK)外键约束:foreign key(简称FK)检查约束:check(mysql不支持,oracle支持)2.1、非空约束:not null非空约束 not null 约束的字段不能为 NULL。drop table原创 2021-12-06 21:31:46 · 393 阅读 · 0 评论 -
MySQL作业
作业数据准备:DROP TABLE IF EXISTS emp;DROP TABLE IF EXISTS dept;DROP TABLE IF EXISTS salgrade;CREATE TABLE dept (DEPTNO int(2) not null , DNAME VARCHAR(14) , LOC VARCHAR(13), primary key (DEPTNO) );CREATE TABLE emp (EMPNO int(4) not nul原创 2021-12-03 17:15:06 · 489 阅读 · 0 评论 -
MySQL——创建表
创建表1、建表的语法格式:(建表属于 DDL 语句,DDL 包括:create drop alter)create table 表名(字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型);create table 表名( 字段名1 数据类型, 字段名2 数据类型, 字段名3 数据类型);表名:建议以 t_ 或者 tbl_ 开始,可读性强。见名知意。字段名:见名知意。表名和字段名都属于标识符。2、关于 mysql 中的数据类型?很多数据类型,我们只需要掌握一些常原创 2021-12-03 16:08:55 · 4248 阅读 · 0 评论 -
MySQL——连接查询
连接查询文章目录连接查询1、什么是连接查询?2、连接查询的分类3、当两张表进行连接查询时,没有任何条件的限制会发生什么现象?3.1、如何避免笛卡尔积现象?4、内连接之等值连接5、内连接之非等值连接6、内连接之自连接前提:数据准备DROP TABLE IF EXISTS emp;DROP TABLE IF EXISTS dept;DROP TABLE IF EXISTS salgrade;CREATE TABLE dept (DEPTNO int(2) not null , DN原创 2021-12-02 16:41:46 · 596 阅读 · 0 评论 -
MySql学习笔记之——事务控制和锁定语句
事务控制和锁定语句1、LOCK TABLES 和 UNLOCK TABLESLOCK TABLES 可以锁定用于当前线程的表。如果表被其他线程锁定,则当前线程会等待,直到可以获取所有锁定为止。UNLOCK TABLES 可以释放当前线程获得的任何锁定。当前线程执行另一个 LOCK TABLES 时,或当与服务器的连接被关闭时,所有由当前线程锁定的表被隐含地解锁,具体语法如下:LOCK TABLES tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY]原创 2021-05-14 22:22:36 · 130 阅读 · 0 评论 -
MySql学习笔记之——管理事务处理
管理事务处理1、事务处理事务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的 MySQL 操作要么完全执行,要么完全不执行。orders 表就是一个很好的例子。订单存储在 orders 和 orderitems 两个表中:orders 存储实际的订单,而 orderitems 存储订购的各项物品。这两个表使用称为主键的唯一 ID 互相关联。这两个表又与包含客户和产品信息的其他表相关联。给系统添加订单的过程如下:检查数据库中是否存在相应的客户(从 cus原创 2021-05-09 22:28:27 · 124 阅读 · 0 评论 -
MySql学习笔记之——开发常用数据库对象
开发常用数据库对象1、视图1.1、什么是视图视图是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。视图相对于普通的表的优势主要包括以下几项:简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集;安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现;数据独立:一原创 2021-04-10 16:06:47 · 115 阅读 · 0 评论 -
MySql学习笔记之——索引的设计和使用
索引的设计和使用1、索引概述所有的 MySQL 列类型都可以被索引,对相关列使用索引是提高 SELECT 操作性能的最佳途径。根据存储引擎可以定义的每个表的最大索引数和最大索引长度,每种存储引擎对每个表至少支持 16 个索引,总索引长度至少为 256 字节。MyISAM 和 InnoDB 存储引擎的表默认创建的都是 BTREE 索引。除了直接在单列或者多列上直接创建索引外,MySQL 5.7 之后可以通过虚拟列索引来实现函数索引的功能,同时还支持前缀索引,即对索引字段的前 N 个字符创建索引。前缀索引原创 2021-04-02 11:23:47 · 293 阅读 · 0 评论 -
MySql学习笔记之——字符集
字符集1、字符集概述简单的说字符集就是一套文字符号及其编码、比较规则的集合。2、常见的字符集字符集是否定长编码方式其他说明ASCII是单字节 7 位编码最早的奠基性字符集ISO-8859-1/latin1是单字节 8 位编码西欧字符集GB 2312-80是双字节编码早期标准GBK是双字节编码虽然不是国标,但支持的系统不少GB 18030否2 字节或 4 字节编码开始有一些支持,但数据库支持的还很少UTF-32是原创 2021-04-01 21:44:03 · 328 阅读 · 0 评论 -
MySql学习笔记之——联结比较
联结比较1、数据表customers 表包含:cust_id(顾客ID)、cust_name(顾客名字)、cust_address(顾客的地址)、cust_email(顾客的邮箱)一共有 4 个字段、 5 条记录。orders 表包含:order_num(订单号)、order_date(订单日期)、cust_id(顾客号)一共有 3 个字段、 5 条记录。2、联结测试2.1、联结(默认省略形式)mysql> select * -> from cust原创 2020-11-12 20:18:41 · 157 阅读 · 0 评论 -
MySQL基础学习笔记之——安装MySQL数据库
安装MySQL数据库1、MySQL 的下载下载地址:http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar选择:mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar (也可以选择其他适合的版本)2、Linux 平台下的安装 前提工作:卸载 mariadb[root@mysql ~]# yum remove mysql-libs -y原创 2020-09-21 21:18:59 · 192 阅读 · 0 评论 -
MySQL基础学习笔记之——索引的设计和使用
索引的设计和使用1、索引概述所有的 MySQL 列类型都可以被索引,对相关列使用索引是提高 SELECT 操作性能的最佳途径。根据存储引擎可以定义的每个表的最大索引数和最大索引长度,每种存储引擎对每个表至少支持 16 个索引,总索引长度至少为 256 字节。MyISAM 和 InnoDB 存储引擎的表默认创建的都是 BTREE 索引。MySQL 目前还不支持函数索引,但是支持前缀索引,即对索引字段的前 N 个字符创建索引。前缀索引的长度跟存储引擎相关,对于 MyISAM 存储引擎的表,索引的前缀长度可原创 2020-09-11 20:45:47 · 145 阅读 · 0 评论 -
MySQL基础学习笔记之——MySQL语句的语法总结
MySQL语句的语法总结1、数据库方面1.1、新建数据库CREATE DATABASE [IF NOT EXISTS] <数据库名>[[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];1.1.1、字符集和校对规则查看所支持的字符集的完整列表SHOW CHARACTER SET;#显示所有可用的字符集以及每个字符集的描述和默认校对规则查看所有可用的校对规则SHOW COL原创 2020-09-02 16:39:13 · 318 阅读 · 0 评论 -
MySQL数据库学习笔记之——(MY)SQL
(MY)SQL1、(MY)SQL使用入门支持 SQL 的关系数据库管理系统同样支持关系数据库三级模式结构。其中外模式包括若干视图和基本表,数据库模式包括若干基本表,内模式包括若干存储文件。SQL 语句主要分为以下 3 个类别:DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义。常见的语句关键字有:create、drop、alter等。DML(Data Manipulation Languages)语原创 2020-08-30 10:37:44 · 810 阅读 · 0 评论 -
MySQL基础学习笔记之——选择合适的数据类型
选择合适的数据类型1、CHAR 与 VARCHARCHAR 与 VARCHAR 类型类似,都是用来存储字符串,但它们保存和检索的方式不同。CHAR 属于固定长度的字符类型,而 VARCHAR 属于可变长的字符类型。下表显示了各种字符串值保存到 CHAR(4) 和 VARCHAR(4) 的结果:值CHAR(4)存储需求VARCHAR(4)存储需求‘’’ ’4 个字节‘’1 个字节‘ab’'ab ’4 个字节'ab ’3 个字节‘abcd’原创 2020-08-19 08:47:44 · 207 阅读 · 0 评论 -
MySQL基础学习笔记之——表类型(存储引擎)的选择
表类型(存储引擎)的选择1、MySQL 存储引擎概述插件式存储引擎是 MySQL 数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据、是否使用事务等。MySQL 默认支持多种存储引擎,以适应与不同的领域的数据库应用需要。MySQL 5.x 支持的存储引擎包括 MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED 等,其中 InnoDB 和 BDB 提供事务安全表。创建表时原创 2020-08-19 08:29:17 · 315 阅读 · 0 评论 -
MySQL基础学习笔记之——常用函数
常用函数1、字符串函数函数说明CONCAT(S1,S2,…,Sn)连接参数字符串为一个字符串INSERT(str,x,y,instr)将字符串 str 从第 x 位置开始,y 个字符长的子串替换为 instrLOWER(str)小写UPPER(str)大写LEFT(str,x)返回字符串最左边的 x 个字符RIGHT(str,x)返回字符串最右边的 x 个字符LPAD(str,n,pad)用字符串 pad 对 str 最左边进行填充,原创 2020-08-14 17:54:33 · 193 阅读 · 0 评论 -
MySQL基础学习笔记之——MySQL中的运算符
MySQL中的运算符1、算数运算符运算符说明+加法-减法*乘法/,DIV除法,返回商%,MOD除法,返回余数mysql> select 0.1+0.3333,1.0-0.3333,0.1*0.3333,1/2,1%2,1/0,100%0,MOD(3,2);+------------+------------+------------+--------+------+------+-------+----------+| 0.1+0.3原创 2020-08-12 09:37:22 · 282 阅读 · 0 评论 -
MySQL基础学习笔记之——MySQL支持的数据类型
MySQL支持的数据类型1、数值类型整数类型字节最小值最大值TINYINT1有符号:-128无符号:0有符号:127无符号:255SMALLINT2有符号:-32768无符号:0有符号:32767有符号:65535MEDIUMINT3有符号:-8388608无符号:0有符号:8388607无符号:1677215INT、INTEFRE4有符号:-2147483648无符号:0有符号:2147483647无符号:4294967295BI原创 2020-08-12 09:09:44 · 510 阅读 · 0 评论 -
MySQL基础学习笔记之——SELECT查询
SELECT查询语句1、单个表SELECT 列名1[,列名2,...]/*/[DISTINCT] 列名1[,列名2,...]/Concat(列名1,,'(,列名2,...)') AS 别名/列名1 +、-、*、/ 列名2FROM 表名[WHERE 过滤条件 LIKE/REGEXP 搜索模式(通配符)/正则表达式] [AND/OR/IN/NOT 过滤条件[,过滤条件...]],[GROUP BY 列名],[HAVING 分组过滤条件],[ORDER BY 列名m[,列名n,...] [DESC/原创 2020-08-09 16:41:00 · 531 阅读 · 0 评论