MySQL(可爱的小海豚)
分享大神的MySQL学习成长历程,同时更好的建立自己的体系化MySQL知识体系
墨飏韶年
leetcode:https://leetcode-cn.com/problemset/all/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
详述 MySQL 数据库的安装及配置
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。 博主说:最近在写「史上最简单的 MySQL 教程」系列博文,写着写着,忽然想到或许有些童鞋还没有接触过 MySQL 数据库呢?理论与实践相结合才是王道啊,因此有了这篇关于 MySQL 数据库的安装及配置介绍的博文。说实话,这篇博文并没有什么技术含量,姑且给未接触过...转载 2018-07-12 14:31:22 · 641 阅读 · 0 评论 -
史上最简单的 MySQL 教程(一)「数据库」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。数据库1 定义数据库,可以简单的解释为:高效的存储和处理数据的介质(主要分为磁盘和内存两种)。2 分类根据数据库存储介质的不同,可以将其分为两类,即:关系型数据库(SQL)和非关系型数据库(NoSQL,Not Only SQL)。3 举例关系型数据库:大型:Oracle、...转载 2018-07-12 14:35:01 · 434 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二)「关系型数据库」
关系型数据库1 定义关系型数据库,是一种建立在关系模型(数学模型)上的数据库。至于关系模型,则是一种所谓建立在关系上的模型,其包含三个方面,分别为:数据结构:数据存储的形式,二维表(行和列);操作指令集合:所有的 SQL 语句;完整性约束:表内数据约束(字段与字段)和表与表之间的约束(外键)。2 设计数据库:从需要存储的数据需求中分析,如果是一类数据(实体),则应该设计成二维表;二维表:由表头(字...转载 2018-07-12 14:42:58 · 377 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三)「 MySQL 数据库」
MySQL 数据库MySQL 数据库是一种C\S结构的软件,即分为:客户端和服务端。若想访问服务器,则必须通过客户端;服务器应该一直运行,客户端则在需要使用的时候运行。交互方式客户端连接认证,即连接服务器,认证身份mysql.exe -hPup-h,主机地址,本地为localhost,远程为IP地址-P,端口号,用来找软件-u,用户名-p,密码发送 SQL 指令;服务器接受 SQL 指令,然后处理...转载 2018-07-13 09:25:51 · 224 阅读 · 0 评论 -
史上最简单的 MySQL 教程(四)「SQL 基本操作 之 库操作」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。SQL 基本操作基本操作:CURD,即增删改查。根据操作对象的不同,咱们可以将 SQL 的基本操作分为三类,分别为:库操作、表(字段)操作和数据操作。库操作1 新增数据库基本语法:create database + 数据库名称 + [库选项];其中,库选项是用来约束数据库...转载 2018-07-13 09:26:12 · 203 阅读 · 0 评论 -
史上最简单的 MySQL 教程(五)「SQL 基本操作 之 表操作」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。SQL 基本操作基本操作:CURD,即增删改查。根据操作对象的不同,咱们可以将 SQL 的基本操作分为三类,分别为:库操作、表(字段)操作和数据操作。表操作1 新增表基本语法:create table [if not exists] + 表名( 字段名称 数据类型...转载 2018-07-13 09:26:37 · 181 阅读 · 0 评论 -
史上最简单的 MySQL 教程(六)「SQL 基本操作 之 数据操作」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。SQL 基本操作基本操作:CURD,即增删改查。根据操作对象的不同,咱们可以将 SQL 的基本操作分为三类,分别为:库操作、表(字段)操作和数据操作。数据操作1 新增数据对于数据的新增操作,有两种方法。第 1 种:给全表字段插入数据,不需要指定字段列表,但要求数据的值出现...转载 2018-07-13 09:26:56 · 187 阅读 · 0 评论 -
史上最简单的 MySQL 教程(七)「中文数据问题」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。中文数据问题中文数据问题的本质就是字符集的问题。由于计算机仅识别二进制数据,而且人类则更倾向于识别字符(符号),因此就需要一个二进制与字符的对应关系,也就是字符集。在咱们通过 MySQL 数据库的客户端向服务器插入中文数据的时候,有可能失败,原因则可能是客户端和服务器的字...转载 2018-07-13 09:27:20 · 169 阅读 · 0 评论 -
史上最简单的 MySQL 教程(八)「校对集问题」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。校对集问题校对集,其实就是数据的比较方式。校对集,共有三种,分别为:_bin:binary,二进制比较,区分大小写;_cs:case sensitive,大小写敏感,区分大小写;_ci:case insensitive,大小写不敏感,不区分大小写。查看(全部)校对集 –&...转载 2018-07-13 09:27:42 · 334 阅读 · 0 评论 -
史上最简单的 MySQL 教程(九)「列类型 之 数值型」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。列类型(数据类型)所谓的列类型,其实就是指数据类型,即对数据进行统一的分类,从系统的角度出发是为了能够使用统一的方式进行管理,更好的利用有限的空间。在 SQL 中,将数据类型分成了三大类,分别为:数值型、字符串型和日期时间型。对于数值型数据,可以进一步将其划分为整数型和小...转载 2018-07-13 09:27:56 · 160 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十)「列类型 之 日期时间型」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。列类型(数据类型)所谓的列类型,其实就是指数据类型,即对数据进行统一的分类,从系统的角度出发是为了能够使用统一的方式进行管理,更好的利用有限的空间。在 SQL 中,将数据类型分成了三大类,分别为:数值型、字符串型和日期时间型。日期时间型日期时间型数据,顾名思义,就是用来表...转载 2018-07-13 09:28:13 · 176 阅读 · 0 评论 -
详述 MySQL 数据库输入密码后闪退的问题及解决方案
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。1 案例说明 最近一直在用 MySQL 数据库演示基础功能,但是这两天忽然出现了一个问题,那就是:在启动 MySQL 服务端并输入密码后,出现闪退现象。 之后,在网上搜了搜,发现出现这种问题很常见,大多数原因可能是在咱们使用安全软件的时候,无意中关闭了 MySQL 服...转载 2018-07-13 09:28:31 · 3897 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十一)「列类型 之 字符串型」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。列类型(数据类型)所谓的列类型,其实就是指数据类型,即对数据进行统一的分类,从系统的角度出发是为了能够使用统一的方式进行管理,更好的利用有限的空间。在 SQL 中,将数据类型分成了三大类,分别为:数值型、字符串型和日期时间型。字符串型在 SQL 中,将字符串类型分成了 6...转载 2018-07-13 09:28:49 · 163 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十三)「列属性 之 空属性、列描述和默认值」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。列属性列属性:实际上,真正约束字段的是数据类型,但是数据类型的约束比较单一,因此就需要额外的一些约束来保证数据的有效性,这就是列属性。列属性有很多,例如:null、not null、default、primary key、unique key、auto_increment...转载 2018-07-14 09:58:46 · 203 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十四)「列属性 之 主键」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。主键主键:primary key,表中主要的键,每张表只能有一个字段(复合主键,可以多个字段)使用此属性,用来唯一的约束该字段里面的数据,不能重复。增加主键在 SQL 操作中,有 3 种方法可以给表增加主键,分别为:第 1 种:在创建表的时候,直接在字段之后,添加prim...转载 2018-07-14 09:59:28 · 246 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十五)「列属性 之 自动增长」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。自动增长自动增长:auto_increment,当对应的字段,不给值,或者是默认值,或者是null的时候,就会自动的被系统触发,系统会从当前字段中取已有的最大值再进行+1操作,得到新的字段值。自增长通过跟主键进行搭配使用,其特点为:任何字段要做自增长,前提其本身必须是一个...转载 2018-07-14 09:59:51 · 371 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十六)「列属性 之 唯一键」
唯一键唯一键:每张表往往有多个字段需要具有唯一性,数据不能重复,但是在每张表中,只能有一个主键,因此唯一键就是用来解决表中多个字段需要具有唯一性的问题。唯一键的本质与主键差不多,唯一键默认的允许字段为空,而且可以多个字段为空,因此空字段不参与唯一性的比较。增加唯一键增加唯一键的方法和主键类似,有 3 种方法,分别为:第一种:在创建表的时候,字段后面直接添加unique或者unique key关键字...转载 2018-07-14 10:00:16 · 218 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十七)「索引」
索引索引:系统根据某种算法,将已有的数据(未来可能新增的数据),单独建立一个文件,这个文件能够实现快速匹配数据,并且能够快速的找到对应的记录,几乎所有的索引都是建立在字段之上的。索引的意义:提升查询数据的效率;约束数据的有效性。但是增加索引是有前提条件的,这是因为索引本身会产生索引文件(有的时候可能会比数据本身都大),因此非常耗费磁盘空间。如果某个字段需要作为查询的条件经常使用,可以使用索引;如果...转载 2018-07-14 10:00:46 · 144 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十八)「关系」
关系在数据库中,将实体与实体的关系反应到表的设计上来,可以细分为 3 种,分别为:一对一(1:1),一对多(1:N)(或多对一(N:1))和多对多(N:N)。在此,所有的关系都是指表与表之间的关系。一对一一对一,即一张表的一条记录只能与另外一张表的一条记录相对应,反之亦然。例如,咱们设计一张「个人信息表」,其字段包含:姓名、性别、年龄、身高、体重、籍贯和居住地等。ID姓名性别年龄身高体重籍贯居住地...转载 2018-07-14 10:01:36 · 222 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十九)「范式」
范式范式:Normal Farmat,是为了解决数据的存储和优化问题。在数据存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,范式的终极目标是减少数据冗余。范式是一种分层结构的规范,共 6 层,分别为1NF、2NF、3NF、4NF、5NF和6NF,每一层都比上一层严格,若要满足下一层范式,其前提是先满足上一层范式。其中,1NF是最底层的范式,6NF为最高层的范式,也最严格。MySQL 数...转载 2018-07-14 10:01:56 · 159 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十)「数据的高级操作 之 主键冲突」
数据的高级操作数据的操作,无外乎增删改查。新增数据的基本语法为:insert into + 表名 + [(字段列表)] + values (值列表);在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突。主键冲突当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即更新或替换。下面,以表my_class为例,进行测试:其中,grade为主键。第一种情况:主键...转载 2018-07-14 10:03:11 · 242 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十一)「数据的高级操作 之 蠕虫复制」
数据的高级操作蠕虫复制蠕虫复制:从已有的数据表中获取数据,然后将数据进行新增操作,数据成倍(以指数形式)的增加。根据已有表创建新表,即复制表结构,其基本语法为:create table + 表名 + like + [数据库名.]表名;执行如下 SQL 语句,进行测试:-- 根据已有表,创建新表,当两张表位于同一数据库时,可以省略数据库名称create table my_copy like my_...转载 2018-07-15 09:52:39 · 124 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十二)「数据的高级操作 之 更新 & 删除」
数据的高级操作更新数据基本语法: update + 表名 + set + 字段 = 值 + [where 条件];高级语法: update + 表名 + set + 字段 = 值 + [where 条件] + [limit 更新数量];执行如下 SQL 语句,进行测试:-- 将表 my_copy 中的部分 a 更新为 cupdate my_copy set name = 'c' where na...转载 2018-07-15 09:54:11 · 151 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十三)「数据的高级操作 之 查询(上)」
数据的高级操作查询数据(上)基本语法: select + 字段列表/* + from + 表名 + [where 条件];完整语法: select + [select 选项] + 字段列表[字段别名]/* + from + 数据源 + [where 条件] + [1] + [2] + [3]; [1] = [group by 子句][2] = [order by 子句][3] = [limit 子...转载 2018-07-15 09:55:11 · 213 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十四)「数据的高级操作 之 查询(中)」
数据的高级操作查询数据(中)where子句where字句:用来判断数据和筛选数据,返回的结果为0或者1,其中0代表false,1代表true,where是唯一一个直接从磁盘获取数据的时候就开始判断的条件,从磁盘中读取一条数据,就开始进行where判断,如果判断的结果为真,则保持,反之,不保存。判断条件:比较运算符:>、<、>=、<=、<>、=、like、betw...转载 2018-07-15 09:57:18 · 155 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十五)「数据的高级操作 之 查询(下)」
数据的高级操作查询数据(下)having子句having字句:与where子句一样,都是进行条件判断的,但是where是针对磁盘数据进行判断,数据进入内存之后,会进行分组操作,分组结果就需要having来处理。思考可知,having能做where能做的几乎所有事情,但是where却不能做having能做的很多事情。第 1 点:分组统计的结果或者说统计函数只有having能够使用执行如下 SQL 语...转载 2018-07-15 09:58:51 · 200 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十六)「连接查询(上)」
连接查询连接查询:将多张表(大于等于 2 张表)按照某个指定的条件进行数据的拼接,其最终结果记录数可能有变化,但字段数一定会增加。连接查询的意义:在用户查询数据的时候,需要显示的数据来自多张表。连接查询为join,使用方式为:左表join右表。左表:join左边的表;右表:join右边的表。连接查询分类:在 SQL 中将连接查询分为四类,分别为内连接、外链接、自然连接和交叉连接。交叉连接交叉连接:...转载 2018-07-15 10:00:33 · 180 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十七)「连接查询(下)」
连接查询连接查询:将多张表(大于等于 2 张表)按照某个指定的条件进行数据的拼接,其最终结果记录数可能有变化,但字段数一定会增加。连接查询的意义:在用户查询数据的时候,需要显示的数据来自多张表。连接查询为join,使用方式为:左表join右表。左表:join左边的表;右表:join右边的表。连接查询分类:在 SQL 中将连接查询分为四类,分别为内连接、外链接、自然连接和交叉连接。外连接外连接:le...转载 2018-07-15 10:01:12 · 141 阅读 · 0 评论 -
详述 SQL 中的 distinct 和 row_number() over() 的区别及用法
1 前言在咱们编写 SQL 语句操作数据库中的数据的时候,有可能会遇到一些不太爽的问题,例如对于同一字段拥有相同名称的记录,我们只需要显示一条,但实际上数据库中可能含有多条拥有相同名称的记录,从而在检索的时候,显示多条记录,这就有违咱们的初衷啦!因此,为了避免这种情况的发生,咱们就需要进行“去重”处理啦,那么何为“去重”呢?说白了,就是对同一字段让拥有相同内容的记录只显示一条记录。那么,如何实现“...转载 2018-07-15 10:02:50 · 197 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十八)「外键(上)」
外键外键:foreign key,外面的键,即不在自己表中的键。如果一张表中有一个非主键的字段指向另外一张表的主键,那么将该字段称之为外键。每张表中,可以有多个外键。新增外键外键既可以在创建表的时候增加,也可以在创建表之后增加(但是要考虑数据的问题)。第 1 种:在创建表的时候,增加外键基本语法:foreign key(外键字段) + references + 外部表名(主键字段);执行如下 SQ...转载 2018-07-15 10:03:26 · 186 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十九)「外键(下)」
外键外键:foreign key,外面的键,即不在自己表中的键。如果一张表中有一个非主键的字段指向另外一张表的主键,那么将该字段称之为外键。每张表中,可以有多个外键。外键作用首先,给出父表和子表的定义:父表,指外键所指向的表;子表,指相对于父表,拥有外键的表。外键默认的作用有两个,分别对子表和父表进行约束。第 1 种:约束子表在子表进行数据的写操作(增和改)的时候,如果对应的外键字段在父表找不到对...转载 2018-07-16 12:18:52 · 181 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十)「联合查询」
联合查询联合查询:union,将多次查询(多条select语句)的结果,在字段数相同的情况下,在记录的层次上进行拼接。基本语法联合查询由多条select语句构成,每条select语句获取的字段数相同,但与字段类型无关。基本语法:select 语句1 + union + [union选项] + select 语句2 + ...; union 选项:与select选项一样有两种 all:无论重复与否,...转载 2018-07-16 12:19:19 · 176 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十一)「子查询(上)」
子查询子查询:sub query,查询是在某个查询结果之上进行的,一条select语句内部包含了另外一条select语句。分类子查询有两种分类方式,分别为:按按结果分类和位置分类。按结果分类,即根据子查询得到的数据进行分类(理论上,任何一个查询结果都可以理解为一个二维表),分别为:标量子查询:子查询得到的结果是一行一列,出现的位置在where之后;列子查询:子查询得到的结果是一列多行,出现的位置在...转载 2018-07-16 12:19:44 · 174 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十二)「子查询(下)」
子查询子查询:sub query,查询是在某个查询结果之上进行的,一条select语句内部包含了另外一条select语句。行子查询行子查询,返回的结果可以使一行多列或者多行多列。需求:查询学生表中,年龄最大且身高最高的学生。思路:先确定数据源,学生表。 select * from student where age = ? and height = ?;然后确定最大年龄和最大身高。 select ...转载 2018-07-16 12:20:37 · 177 阅读 · 0 评论 -
详述查看 MySQL 数据文件存储位置的方法
我们可能会有一个疑惑,那就是:当我们在本地(自己的电脑)安装完 MySQL 之后,也创建了很多的数据库啊、表啊,也存储了很多的数据啊,但是这些内容都存储到哪里了呢?特别是,当我们需要直接操作这些数据文件的时候,翻遍了整个电脑,却找不到 MySQL 的数据文件到底在哪里,这就有些坑爹啦!在这里,教给大家一个非常简单的能够立即定位到 MySQL 数据文件的存储位置方法,即在 MySQL 客户端键入如下...转载 2018-07-14 09:56:32 · 218 阅读 · 0 评论 -
详述 MySQL 导出数据遇到 secure-file-priv 的问题
对于上述错误,相信对于第一次执行 MySQL 数据导出操作的同学大都会遇见。至于为什么会遇到这个错误,原因很简单,那就是:我们不知道 MySQL 默认的导出目录是哪里,甚至都不知道 MySQL 对于数据的导出目录都有所限制。这其实很正常,因为我们不可能知道所有事,只要我们在遇到问题之后,能够找到正确的解决方法并记住就足够啦!学习嘛,就是一个不断积累的过程。接下来,我们就一起来看看如何解决这个问题:...转载 2018-07-14 09:57:19 · 201 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十三)「视图(上)」
视图视图:view,是一种有结构(有行有列),但没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义的,而是从对应的基表(视图的数据来源)中产生的。创建视图首先,给出创建视图的基本语法,基本语法:create view + 视图名 + as + select语句;其中,select语句可以是普通查询,也可以是连接查询、联合查询、子查询等。此外,视图根据数据的来源,可以分为单表视图...转载 2018-07-16 12:20:55 · 616 阅读 · 0 评论