![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
墨飏韶年
leetcode:https://leetcode-cn.com/problemset/all/
展开
-
mysql修改用户密码的方法及命令
方法1: 用SET PASSWORD命令 首先登录MySQL。 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:mysql> set password for root@localhost = password('123456'); 方法2:用mysqladmin 格式:mysqladmin -u用户...原创 2018-09-27 10:00:50 · 39401 阅读 · 1 评论 -
史上最简单的 MySQL 教程(二十六)「连接查询(上)」
连接查询连接查询:将多张表(大于等于 2 张表)按照某个指定的条件进行数据的拼接,其最终结果记录数可能有变化,但字段数一定会增加。连接查询的意义:在用户查询数据的时候,需要显示的数据来自多张表。连接查询为join,使用方式为:左表join右表。左表:join左边的表;右表:join右边的表。连接查询分类:在 SQL 中将连接查询分为四类,分别为内连接、外链接、自然连接和交叉连接。交叉连接交叉连接:...转载 2018-07-15 10:00:33 · 139 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十五)「数据的高级操作 之 查询(下)」
数据的高级操作查询数据(下)having子句having字句:与where子句一样,都是进行条件判断的,但是where是针对磁盘数据进行判断,数据进入内存之后,会进行分组操作,分组结果就需要having来处理。思考可知,having能做where能做的几乎所有事情,但是where却不能做having能做的很多事情。第 1 点:分组统计的结果或者说统计函数只有having能够使用执行如下 SQL 语...转载 2018-07-15 09:58:51 · 166 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十四)「数据的高级操作 之 查询(中)」
数据的高级操作查询数据(中)where子句where字句:用来判断数据和筛选数据,返回的结果为0或者1,其中0代表false,1代表true,where是唯一一个直接从磁盘获取数据的时候就开始判断的条件,从磁盘中读取一条数据,就开始进行where判断,如果判断的结果为真,则保持,反之,不保存。判断条件:比较运算符:>、<、>=、<=、<>、=、like、betw...转载 2018-07-15 09:57:18 · 118 阅读 · 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 · 177 阅读 · 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 · 118 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十一)「数据的高级操作 之 蠕虫复制」
数据的高级操作蠕虫复制蠕虫复制:从已有的数据表中获取数据,然后将数据进行新增操作,数据成倍(以指数形式)的增加。根据已有表创建新表,即复制表结构,其基本语法为:create table + 表名 + like + [数据库名.]表名;执行如下 SQL 语句,进行测试:-- 根据已有表,创建新表,当两张表位于同一数据库时,可以省略数据库名称create table my_copy like my_...转载 2018-07-15 09:52:39 · 95 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十)「数据的高级操作 之 主键冲突」
数据的高级操作数据的操作,无外乎增删改查。新增数据的基本语法为:insert into + 表名 + [(字段列表)] + values (值列表);在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突。主键冲突当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即更新或替换。下面,以表my_class为例,进行测试:其中,grade为主键。第一种情况:主键...转载 2018-07-14 10:03:11 · 200 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十九)「范式」
范式范式:Normal Farmat,是为了解决数据的存储和优化问题。在数据存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,范式的终极目标是减少数据冗余。范式是一种分层结构的规范,共 6 层,分别为1NF、2NF、3NF、4NF、5NF和6NF,每一层都比上一层严格,若要满足下一层范式,其前提是先满足上一层范式。其中,1NF是最底层的范式,6NF为最高层的范式,也最严格。MySQL 数...转载 2018-07-14 10:01:56 · 134 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十八)「关系」
关系在数据库中,将实体与实体的关系反应到表的设计上来,可以细分为 3 种,分别为:一对一(1:1),一对多(1:N)(或多对一(N:1))和多对多(N:N)。在此,所有的关系都是指表与表之间的关系。一对一一对一,即一张表的一条记录只能与另外一张表的一条记录相对应,反之亦然。例如,咱们设计一张「个人信息表」,其字段包含:姓名、性别、年龄、身高、体重、籍贯和居住地等。ID姓名性别年龄身高体重籍贯居住地...转载 2018-07-14 10:01:36 · 185 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十七)「索引」
索引索引:系统根据某种算法,将已有的数据(未来可能新增的数据),单独建立一个文件,这个文件能够实现快速匹配数据,并且能够快速的找到对应的记录,几乎所有的索引都是建立在字段之上的。索引的意义:提升查询数据的效率;约束数据的有效性。但是增加索引是有前提条件的,这是因为索引本身会产生索引文件(有的时候可能会比数据本身都大),因此非常耗费磁盘空间。如果某个字段需要作为查询的条件经常使用,可以使用索引;如果...转载 2018-07-14 10:00:46 · 109 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十七)「连接查询(下)」
连接查询连接查询:将多张表(大于等于 2 张表)按照某个指定的条件进行数据的拼接,其最终结果记录数可能有变化,但字段数一定会增加。连接查询的意义:在用户查询数据的时候,需要显示的数据来自多张表。连接查询为join,使用方式为:左表join右表。左表:join左边的表;右表:join右边的表。连接查询分类:在 SQL 中将连接查询分为四类,分别为内连接、外链接、自然连接和交叉连接。外连接外连接:le...转载 2018-07-15 10:01:12 · 107 阅读 · 0 评论 -
MySQL 数据备份与还原
一、数据备份 1、使用mysqldump命令备份mysqldump命令将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。 mysqldump命令的工作原理很简单。它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换成一条INSERT语句。然后通过这些语句,就能够创建表并插入数据。 1、备份一个数据...原创 2018-09-17 14:53:38 · 168 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十三)「视图(上)」
视图视图:view,是一种有结构(有行有列),但没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义的,而是从对应的基表(视图的数据来源)中产生的。创建视图首先,给出创建视图的基本语法,基本语法:create view + 视图名 + as + select语句;其中,select语句可以是普通查询,也可以是连接查询、联合查询、子查询等。此外,视图根据数据的来源,可以分为单表视图...转载 2018-07-16 12:20:55 · 541 阅读 · 0 评论 -
详述 MySQL 导出数据遇到 secure-file-priv 的问题
对于上述错误,相信对于第一次执行 MySQL 数据导出操作的同学大都会遇见。至于为什么会遇到这个错误,原因很简单,那就是:我们不知道 MySQL 默认的导出目录是哪里,甚至都不知道 MySQL 对于数据的导出目录都有所限制。这其实很正常,因为我们不可能知道所有事,只要我们在遇到问题之后,能够找到正确的解决方法并记住就足够啦!学习嘛,就是一个不断积累的过程。接下来,我们就一起来看看如何解决这个问题:...转载 2018-07-14 09:57:19 · 159 阅读 · 0 评论 -
详述查看 MySQL 数据文件存储位置的方法
我们可能会有一个疑惑,那就是:当我们在本地(自己的电脑)安装完 MySQL 之后,也创建了很多的数据库啊、表啊,也存储了很多的数据啊,但是这些内容都存储到哪里了呢?特别是,当我们需要直接操作这些数据文件的时候,翻遍了整个电脑,却找不到 MySQL 的数据文件到底在哪里,这就有些坑爹啦!在这里,教给大家一个非常简单的能够立即定位到 MySQL 数据文件的存储位置方法,即在 MySQL 客户端键入如下...转载 2018-07-14 09:56:32 · 169 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十二)「子查询(下)」
子查询子查询:sub query,查询是在某个查询结果之上进行的,一条select语句内部包含了另外一条select语句。行子查询行子查询,返回的结果可以使一行多列或者多行多列。需求:查询学生表中,年龄最大且身高最高的学生。思路:先确定数据源,学生表。 select * from student where age = ? and height = ?;然后确定最大年龄和最大身高。 select ...转载 2018-07-16 12:20:37 · 147 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十一)「子查询(上)」
子查询子查询:sub query,查询是在某个查询结果之上进行的,一条select语句内部包含了另外一条select语句。分类子查询有两种分类方式,分别为:按按结果分类和位置分类。按结果分类,即根据子查询得到的数据进行分类(理论上,任何一个查询结果都可以理解为一个二维表),分别为:标量子查询:子查询得到的结果是一行一列,出现的位置在where之后;列子查询:子查询得到的结果是一列多行,出现的位置在...转载 2018-07-16 12:19:44 · 137 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十)「联合查询」
联合查询联合查询:union,将多次查询(多条select语句)的结果,在字段数相同的情况下,在记录的层次上进行拼接。基本语法联合查询由多条select语句构成,每条select语句获取的字段数相同,但与字段类型无关。基本语法:select 语句1 + union + [union选项] + select 语句2 + ...; union 选项:与select选项一样有两种 all:无论重复与否,...转载 2018-07-16 12:19:19 · 137 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十九)「外键(下)」
外键外键:foreign key,外面的键,即不在自己表中的键。如果一张表中有一个非主键的字段指向另外一张表的主键,那么将该字段称之为外键。每张表中,可以有多个外键。外键作用首先,给出父表和子表的定义:父表,指外键所指向的表;子表,指相对于父表,拥有外键的表。外键默认的作用有两个,分别对子表和父表进行约束。第 1 种:约束子表在子表进行数据的写操作(增和改)的时候,如果对应的外键字段在父表找不到对...转载 2018-07-16 12:18:52 · 139 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十八)「外键(上)」
外键外键:foreign key,外面的键,即不在自己表中的键。如果一张表中有一个非主键的字段指向另外一张表的主键,那么将该字段称之为外键。每张表中,可以有多个外键。新增外键外键既可以在创建表的时候增加,也可以在创建表之后增加(但是要考虑数据的问题)。第 1 种:在创建表的时候,增加外键基本语法:foreign key(外键字段) + references + 外部表名(主键字段);执行如下 SQ...转载 2018-07-15 10:03:26 · 129 阅读 · 0 评论 -
详述 SQL 中的 distinct 和 row_number() over() 的区别及用法
1 前言在咱们编写 SQL 语句操作数据库中的数据的时候,有可能会遇到一些不太爽的问题,例如对于同一字段拥有相同名称的记录,我们只需要显示一条,但实际上数据库中可能含有多条拥有相同名称的记录,从而在检索的时候,显示多条记录,这就有违咱们的初衷啦!因此,为了避免这种情况的发生,咱们就需要进行“去重”处理啦,那么何为“去重”呢?说白了,就是对同一字段让拥有相同内容的记录只显示一条记录。那么,如何实现“...转载 2018-07-15 10:02:50 · 149 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十六)「列属性 之 唯一键」
唯一键唯一键:每张表往往有多个字段需要具有唯一性,数据不能重复,但是在每张表中,只能有一个主键,因此唯一键就是用来解决表中多个字段需要具有唯一性的问题。唯一键的本质与主键差不多,唯一键默认的允许字段为空,而且可以多个字段为空,因此空字段不参与唯一性的比较。增加唯一键增加唯一键的方法和主键类似,有 3 种方法,分别为:第一种:在创建表的时候,字段后面直接添加unique或者unique key关键字...转载 2018-07-14 10:00:16 · 183 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十五)「列属性 之 自动增长」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。自动增长自动增长:auto_increment,当对应的字段,不给值,或者是默认值,或者是null的时候,就会自动的被系统触发,系统会从当前字段中取已有的最大值再进行+1操作,得到新的字段值。自增长通过跟主键进行搭配使用,其特点为:任何字段要做自增长,前提其本身必须是一个...转载 2018-07-14 09:59:51 · 299 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三)「 MySQL 数据库」
MySQL 数据库MySQL 数据库是一种C\S结构的软件,即分为:客户端和服务端。若想访问服务器,则必须通过客户端;服务器应该一直运行,客户端则在需要使用的时候运行。交互方式客户端连接认证,即连接服务器,认证身份mysql.exe -hPup-h,主机地址,本地为localhost,远程为IP地址-P,端口号,用来找软件-u,用户名-p,密码发送 SQL 指令;服务器接受 SQL 指令,然后处理...转载 2018-07-13 09:25:51 · 189 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二)「关系型数据库」
关系型数据库1 定义关系型数据库,是一种建立在关系模型(数学模型)上的数据库。至于关系模型,则是一种所谓建立在关系上的模型,其包含三个方面,分别为:数据结构:数据存储的形式,二维表(行和列);操作指令集合:所有的 SQL 语句;完整性约束:表内数据约束(字段与字段)和表与表之间的约束(外键)。2 设计数据库:从需要存储的数据需求中分析,如果是一类数据(实体),则应该设计成二维表;二维表:由表头(字...转载 2018-07-12 14:42:58 · 345 阅读 · 0 评论 -
史上最简单的 MySQL 教程(一)「数据库」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。数据库1 定义数据库,可以简单的解释为:高效的存储和处理数据的介质(主要分为磁盘和内存两种)。2 分类根据数据库存储介质的不同,可以将其分为两类,即:关系型数据库(SQL)和非关系型数据库(NoSQL,Not Only SQL)。3 举例关系型数据库:大型:Oracle、...转载 2018-07-12 14:35:01 · 403 阅读 · 0 评论 -
详述 MySQL 数据库的安装及配置
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。 博主说:最近在写「史上最简单的 MySQL 教程」系列博文,写着写着,忽然想到或许有些童鞋还没有接触过 MySQL 数据库呢?理论与实践相结合才是王道啊,因此有了这篇关于 MySQL 数据库的安装及配置介绍的博文。说实话,这篇博文并没有什么技术含量,姑且给未接触过...转载 2018-07-12 14:31:22 · 604 阅读 · 0 评论 -
mybatis结合log4j打印SQL日志
mybatis结合log4j打印SQL日志 1.Maven引用jar包默认的mybatis不能打印出SQL日志,不便于查看调试,需要结合log4jdbc-log4j2就可以完整的输入SQL的调试信息。pom.xml 配置maven,注意以下3个都需要 <dependency> <groupId>org.bgee.log4jdbc-log4...原创 2018-07-11 10:20:10 · 7072 阅读 · 0 评论 -
MySQL常用性能分析方法-profile,explain,索引
1.查版本号无论做什么都要确认版本号,不同的版本号下会有各种差异。>Select version();2.执行状态分析显示哪些线程正在运行>show processlist;下面是完整的信息3.show profileshow profile默认的是关闭的,但是会话级别可以开启这个功能,开启它可以让MySQL收集在执行语句的时候所使用的资源。显示数据库列表>show datab...转载 2018-07-11 09:43:12 · 123 阅读 · 0 评论 -
如何将sql文件导入mysql
第一步:打在开始界面中找到mysql第二步:双击打开mysql软件。,并输入密码。第三步:如果sql文件的内容中有创建数据库的语句或者你想将表存放在你已有的数据库,在这里就不用创建数据库。第四步:输入“show databases;”就能看到自己创建的数据库。第五步:输入“use 数据库名”,开始使用这个数据库。第六步:开始导入sql文件,输入“source sql文件的路径”(注意你的文件路径要...原创 2018-07-03 13:48:00 · 264469 阅读 · 34 评论 -
windows下python操作mysql模块安装
pip install mysqldb这在我的电脑上安装失败: Could not find a version that satisfies the requirement mysqldb (from versions: )No matching distribution found for mysqldb所以应该:pip install MySQL-python报错:error: Mic...转载 2018-06-27 10:23:12 · 201 阅读 · 0 评论 -
python操作mysql数据库实现增删改查
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000InformixInterbaseOracleSybase你可以访问Python数据库接口及API查看详...转载 2018-06-18 18:19:57 · 225 阅读 · 0 评论 -
Mysql中解决主键ID自增1
import MySQLdbconn=MySQLdb.connect(host='127.0.0.1',port=3306,user='root',passwd='251719',db='logdeal',charset='utf8')cur=conn.cursor()cur.execute("""create table if not EXISTS proxyinfodata( ...原创 2018-06-07 17:09:10 · 2488 阅读 · 0 评论 -
史上最简单的 MySQL 教程(四)「SQL 基本操作 之 库操作」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。SQL 基本操作基本操作:CURD,即增删改查。根据操作对象的不同,咱们可以将 SQL 的基本操作分为三类,分别为:库操作、表(字段)操作和数据操作。库操作1 新增数据库基本语法:create database + 数据库名称 + [库选项];其中,库选项是用来约束数据库...转载 2018-07-13 09:26:12 · 158 阅读 · 0 评论 -
史上最简单的 MySQL 教程(五)「SQL 基本操作 之 表操作」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。SQL 基本操作基本操作:CURD,即增删改查。根据操作对象的不同,咱们可以将 SQL 的基本操作分为三类,分别为:库操作、表(字段)操作和数据操作。表操作1 新增表基本语法:create table [if not exists] + 表名( 字段名称 数据类型...转载 2018-07-13 09:26:37 · 152 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十四)「列属性 之 主键」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。主键主键:primary key,表中主要的键,每张表只能有一个字段(复合主键,可以多个字段)使用此属性,用来唯一的约束该字段里面的数据,不能重复。增加主键在 SQL 操作中,有 3 种方法可以给表增加主键,分别为:第 1 种:在创建表的时候,直接在字段之后,添加prim...转载 2018-07-14 09:59:28 · 206 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十三)「列属性 之 空属性、列描述和默认值」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。列属性列属性:实际上,真正约束字段的是数据类型,但是数据类型的约束比较单一,因此就需要额外的一些约束来保证数据的有效性,这就是列属性。列属性有很多,例如:null、not null、default、primary key、unique key、auto_increment...转载 2018-07-14 09:58:46 · 163 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十一)「列类型 之 字符串型」
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。列类型(数据类型)所谓的列类型,其实就是指数据类型,即对数据进行统一的分类,从系统的角度出发是为了能够使用统一的方式进行管理,更好的利用有限的空间。在 SQL 中,将数据类型分成了三大类,分别为:数值型、字符串型和日期时间型。字符串型在 SQL 中,将字符串类型分成了 6...转载 2018-07-13 09:28:49 · 132 阅读 · 0 评论 -
详述 MySQL 数据库输入密码后闪退的问题及解决方案
温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。1 案例说明 最近一直在用 MySQL 数据库演示基础功能,但是这两天忽然出现了一个问题,那就是:在启动 MySQL 服务端并输入密码后,出现闪退现象。 之后,在网上搜了搜,发现出现这种问题很常见,大多数原因可能是在咱们使用安全软件的时候,无意中关闭了 MySQL 服...转载 2018-07-13 09:28:31 · 3833 阅读 · 0 评论