MySQL
悟之思语
长亭外,古道边,芳草碧连天,晚风拂柳笛声残,夕阳山外山。天之涯,地之角,知交半零落,人生难得是欢聚
展开
-
史上最简单的 MySQL 教程(三十一)「子查询(上)」
子查询子查询:sub query,查询是在某个查询结果之上进行的,一条select语句内部包含了另外一条select语句。分类子查询有两种分类方式,分别为:按按结果分类和位置分类。按结果分类,即根据子查询得到的数据进行分类(理论上,任何一个查询结果都可以理解为一个二维表),分别为:标量子查询:子查询得到的结果是一行一列,出现的位置在where之后;列子查询:子查询得到的结果是一...转载 2019-03-11 16:25:06 · 173 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十)「联合查询」
联合查询联合查询:union,将多次查询(多条select语句)的结果,在字段数相同的情况下,在记录的层次上进行拼接。基本语法联合查询由多条select语句构成,每条select语句获取的字段数相同,但与字段类型无关。基本语法:select 语句1 + union + [union选项] + select 语句2 + ...;union 选项:与select选项一样有两种all:无...转载 2019-03-11 16:24:57 · 145 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十九)「外键(下)」
外键外键:foreign key,外面的键,即不在自己表中的键。如果一张表中有一个非主键的字段指向另外一张表的主键,那么将该字段称之为外键。每张表中,可以有多个外键。外键作用首先,给出父表和子表的定义:父表,指外键所指向的表;子表,指相对于父表,拥有外键的表。外键默认的作用有两个,分别对子表和父表进行约束。第 1 种:约束子表在子表进行数据的写操作(增和改)的时候,如果对应的外...转载 2019-03-11 16:24:32 · 169 阅读 · 0 评论 -
详述 SQL 中的 distinct 和 row_number() over() 的区别及用法
前言在咱们编写 SQL 语句操作数据库中的数据的时候,有可能会遇到一些不太爽的问题,例如对于同一字段拥有相同名称的记录,我们只需要显示一条,但实际上数据库中可能含有多条拥有相同名称的记录,从而在检索的时候,显示多条记录,这就有违咱们的初衷啦!因此,为了避免这种情况的发生,咱们就需要进行“去重”处理啦,那么何为“去重”呢?说白了,就是对同一字段让拥有相同内容的记录只显示一条记录。那么,如何实现...转载 2019-03-11 16:24:21 · 482 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十八)「外键(上)」
外键外键:foreign key,外面的键,即不在自己表中的键。如果一张表中有一个非主键的字段指向另外一张表的主键,那么将该字段称之为外键。每张表中,可以有多个外键。新增外键外键既可以在创建表的时候增加,也可以在创建表之后增加(但是要考虑数据的问题)。第 1 种:在创建表的时候,增加外键基本语法:foreign key(外键字段) + references + 外部表名(主键字段)...转载 2019-03-04 12:27:25 · 129 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十六)「连接查询(上)」
连接查询连接查询:将多张表(大于等于 2 张表)按照某个指定的条件进行数据的拼接,其最终结果记录数可能有变化,但字段数一定会增加。连接查询的意义:在用户查询数据的时候,需要显示的数据来自多张表。连接查询为join,使用方式为:左表join右表。左表:join左边的表;右表:join右边的表。连接查询分类:在 SQL 中将连接查询分为四类,分别为内连接、外链接、自然连接和交叉连接。...转载 2019-03-04 12:27:14 · 149 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十五)「数据的高级操作 之 查询(下)」
数据的高级操作查询数据(下)having子句having字句:与where子句一样,都是进行条件判断的,但是where是针对磁盘数据进行判断,数据进入内存之后,会进行分组操作,分组结果就需要having来处理。思考可知,having能做where能做的几乎所有事情,但是where却不能做having能做的很多事情。第 1 点:分组统计的结果或者说统计函数只有having能够使用执行如...转载 2019-03-04 12:26:59 · 141 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十四)「数据的高级操作 之 查询(中)」
数据的高级操作查询数据(中)where子句where字句:用来判断数据和筛选数据,返回的结果为0或者1,其中0代表false,1代表true,where是唯一一个直接从磁盘获取数据的时候就开始判断的条件,从磁盘中读取一条数据,就开始进行where判断,如果判断的结果为真,则保持,反之,不保存。判断条件:比较运算符:>、<、>=、<=、<>、=、li...转载 2019-03-04 12:26:45 · 132 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十三)「数据的高级操作 之 查询(上)」
数据的高级操作查询数据(上)基本语法:select + 字段列表/* + from + 表名 + [where 条件];完整语法:select + [select 选项] + 字段列表[字段别名]/* + from + 数据源 + [where 条件] + [1] + [2] + [3];[1] = [group by 子句][2] = [order by 子句][3] = [limi...转载 2019-03-04 12:26:29 · 130 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十二)「数据的高级操作 之 更新 & 删除」
数据的高级操作更新数据基本语法:update + 表名 + set + 字段 = 值 + [where 条件];高级语法:update + 表名 + set + 字段 = 值 + [where 条件] + [limit 更新数量];执行如下 SQL 语句,进行测试:[plain]view plaincopy--将表my_copy中的部分a更新为c up...转载 2019-03-04 12:26:12 · 141 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十一)「数据的高级操作 之 蠕虫复制」
数据的高级操作蠕虫复制蠕虫复制:从已有的数据表中获取数据,然后将数据进行新增操作,数据成倍(以指数形式)的增加。根据已有表创建新表,即复制表结构,其基本语法为:create table + 表名 + like + [数据库名.]表名;执行如下 SQL 语句,进行测试:[plain]view plaincopy--根据已有表,创建新表,当两张表位于同一数据库时,可以省略数据...转载 2019-03-04 12:26:00 · 141 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二十)「数据的高级操作 之 主键冲突」
数据的高级操作数据的操作,无外乎增删改查。新增数据的基本语法为:insert into + 表名 + [(字段列表)] + values (值列表);在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突。主键冲突当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即更新或替换。下面,以表my_class为例,进行测试:其中,grade...转载 2019-03-04 12:25:50 · 135 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十二)「子查询(下)」
子查询子查询:sub query,查询是在某个查询结果之上进行的,一条select语句内部包含了另外一条select语句。行子查询行子查询,返回的结果可以使一行多列或者多行多列。需求:查询学生表中,年龄最大且身高最高的学生。思路:先确定数据源,学生表。select * from student where age = ? and height = ?;然后确定最大年龄和最大身高...转载 2019-03-11 16:25:14 · 215 阅读 · 0 评论 -
详述查看 MySQL 数据文件存储位置的方法
我们可能会有一个疑惑,那就是:当我们在本地(自己的电脑)安装完 MySQL 之后,也创建了很多的数据库啊、表啊,也存储了很多的数据啊,但是这些内容都存储到哪里了呢?特别是,当我们需要直接操作这些数据文件的时候,翻遍了整个电脑,却找不到 MySQL 的数据文件到底在哪里,这就有些坑爹啦!在这里,教给大家一个非常简单的能够立即定位到 MySQL 数据文件的存储位置方法,即在 MySQL 客户端键入如...转载 2019-03-11 16:25:21 · 548 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十五)「数据备份与还原(上)」
数据备份与还原基础概念:备份,将当前已有的数据或记录另存一份;还原,将数据恢复到备份时的状态。为什么要进行数据的备份与还原?防止数据丢失;保护数据记录。数据备份与还原的方式有很多种,具体可以分为:数据表备份、单表数据备份、SQL备份和增量备份。数据表备份数据表备份,不需要通过 SQL 来备份,我们可以直接进入到数据库文件夹复制对应的表结构以及数据;在需要还原数据的时候,直接...转载 2019-03-11 16:26:06 · 448 阅读 · 1 评论 -
史上最简单的 MySQL 教程(三十四)「视图(下)」
视图数据操作视图数据操作:虽然我们说视图可以称之为select语句的别名,但实际上,它和别名并不一样,因为视图是可以进行数据写操作的,只不过有很多限制而已。新增数据在这里,新增数据就是指通过视图直接对基表进行数据的新增操作。限制 1:多表视图不能进行新增数据。执行如下 SQL 语句,进行测试:[plain]view plaincopy--查询视图my_v3结构...转载 2019-03-11 16:25:54 · 379 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三十三)「视图(上)」
视图视图:view,是一种有结构(有行有列),但没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义的,而是从对应的基表(视图的数据来源)中产生的。创建视图首先,给出创建视图的基本语法,基本语法:create view + 视图名 + as + select语句;其中,select语句可以是普通查询,也可以是连接查询、联合查询、子查询等。此外,视图根据数据的来...转载 2019-03-11 16:25:44 · 406 阅读 · 0 评论 -
详述 MySQL 导出数据遇到 secure-file-priv 的问题
ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement.对于上述错误,相信对于第一次执行 MySQL 数据导出操作的同学大都会遇见。至于为什么会遇到这个错误,原因很简单,那就是:我们不知道 MySQL 默认的导出目录是...转载 2019-03-11 16:25:31 · 312 阅读 · 1 评论 -
史上最简单的 MySQL 教程(十九)「范式」
范式范式:Normal Farmat,是为了解决数据的存储和优化问题。在数据存储之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,范式的终极目标是减少数据冗余。范式是一种分层结构的规范,共 6 层,分别为1NF、2NF、3NF、4NF、5NF和6NF,每一层都比上一层严格,若要满足下一层范式,其前提是先满足上一层范式。其中,1NF是最底层的范式,6NF为最高层的范式,也最严格。My...转载 2019-03-04 12:25:35 · 157 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十八)「关系」
关系在数据库中,将实体与实体的关系反应到表的设计上来,可以细分为 3 种,分别为:一对一(1:1),一对多(1:N)(或多对一(N:1))和多对多(N:N)。在此,所有的关系都是指表与表之间的关系。一对一一对一,即一张表的一条记录只能与另外一张表的一条记录相对应,反之亦然。例如,咱们设计一张「个人信息表」,其字段包含:姓名、性别、年龄、身高、体重、籍贯和居住地等。 ...转载 2019-03-01 10:56:55 · 111 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十七)「索引」
索引索引:系统根据某种算法,将已有的数据(未来可能新增的数据),单独建立一个文件,这个文件能够实现快速匹配数据,并且能够快速的找到对应的记录,几乎所有的索引都是建立在字段之上的。索引的意义:提升查询数据的效率;约束数据的有效性。但是增加索引是有前提条件的,这是因为索引本身会产生索引文件(有的时候可能会比数据本身都大),因此非常耗费磁盘空间。如果某个字段需要作为查询的条件经常使用,可以...转载 2019-03-01 10:56:43 · 99 阅读 · 0 评论 -
史上最简单的 MySQL 教程(二)「关系型数据库」
关系型数据库1 定义关系型数据库,是一种建立在关系模型(数学模型)上的数据库。至于关系模型,则是一种所谓建立在关系上的模型,其包含三个方面,分别为:数据结构:数据存储的形式,二维表(行和列);操作指令集合:所有的 SQL 语句;完整性约束:表内数据约束(字段与字段)和表与表之间的约束(外键)。2 设计数据库:从需要存储的数据需求中分析,如果是一类数据(实体),则应该设计...转载 2019-02-28 09:03:34 · 179 阅读 · 0 评论 -
史上最简单的 MySQL 教程(一)「数据库」
数据库1 定义数据库,可以简单的解释为:高效的存储和处理数据的介质(主要分为磁盘和内存两种)。2 分类根据数据库存储介质的不同,可以将其分为两类,即:关系型数据库(SQL)和非关系型数据库(NoSQL,Not Only SQL)。3 举例关系型数据库:大型:Oracle、DB2 等;中型:SQL Server、MySQL 等;小型:Access 等。非关系型...转载 2019-02-28 09:03:01 · 123 阅读 · 0 评论 -
详述 MySQL 数据库的安装及配置
博主说:最近在写「史上最简单的 MySQL 教程」系列博文,写着写着,忽然想到或许有些童鞋还没有接触过 MySQL 数据库呢?理论与实践相结合才是王道啊,因此有了这篇关于 MySQL 数据库的安装及配置介绍的博文。说实话,这篇博文并没有什么技术含量,姑且给未接触过 MySQL 数据库的童鞋一些参考吧!首先,下载 MySQL 数据库的安装包:mysql-5.7.17.msi.下载完成之后,双击打...转载 2019-02-28 09:01:58 · 220 阅读 · 0 评论 -
MySQL管理的一点心得
MySql数据库是中小型网站后台数据库的首选,因为它对非商业应用是免费的.网站开发者可以搭建一个"Linux+Apache+PHP+MySql" 平台,这是一个最省钱的高效平台.在使用MySql进行开发时,MySql自带的文档对于新手来说是份很好的参考资料.本文是我在使用MySql中的小小心得。当前一般用户的开发环境多是Windows或Linux,用户可以到http://www.mysql.c转载 2014-05-28 14:18:27 · 552 阅读 · 0 评论 -
linux操作系统下建立mysql镜像数据库
MySQL 版本:4.1 环境介绍:主库 192.168.0.205 从库 192.168.0.206 1、主库创建/etc/my.cnf,修改[mysqld]里边的键值增加 server-id=1 log-bin=binlog_name 2、主库增加用户,用于从库读取主库日志。 grant repl转载 2014-05-28 14:19:27 · 822 阅读 · 0 评论 -
MYSQL的几种超实用技巧
select now(); return 当前时间 格式为YYYY-MM-DD hh:ii:ssNOW() 函数本身并无多大用处,但可将其用于表达式中。如比较当前日期和其他日期的差异。注:如果在查询中调用一个函数,在函数名和后跟的圆括号中间不允许有空格insert into table_name values(value1,value2,value3,...),(value11,转载 2014-05-26 08:26:13 · 943 阅读 · 0 评论 -
MySQL高效编程--学习笔记
第1部分 MySQL基础篇1、对于企业而言,选择MySQL数据库的两大原因:1)MySQL是开源关系型数据库产品,使用普及率高;2)性能出色,运行速度块。MySQL有免费和收费两种类型的产品。2、mysql登录:cd 打开mysql的bin目录,执行“mysql -u root -p”回车,然后要求输入密码Enter password,正确输入密码后,回车,即可登录成功!3、常转载 2014-01-02 17:09:48 · 13261 阅读 · 1 评论 -
mysql5.0 执行定时计划-Window系统
由于在mysql5.1之后才支持定时计划功能 event_shecdule,之前的版本就需要使用操作系统的定时计划来调用脚本实现对mysql数据库的更改。在windows下使用windows的定时工具,在linux下使用crontab设置定时任务 由于我的mysql服务器安装在windows下所以以下介绍的方法都是针对windows下的mysql的。简单实现步骤如下:1.创建m转载 2013-12-18 09:01:59 · 2953 阅读 · 0 评论 -
MySQL规范
关系数据库设计之时是要遵守一定的规则的。尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍。 在你设计数据库之时,若能符合这几个范式,你就是数据库设计的高手。第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名转载 2013-12-05 16:15:06 · 642 阅读 · 0 评论 -
MYSQL的几种超实用技巧
select now(); return 当前时间 格式为YYYY-MM-DD hh:ii:ssNOW() 函数本身并无多大用处,但可将其用于表达式中。如比较当前日期和其他日期的差异。注:如果在查询中调用一个函数,在函数名和后跟的圆括号中间不允许有空格insert into table_name values(value1,value2,value3,...),(value11,转载 2013-12-05 16:17:56 · 672 阅读 · 0 评论 -
MySQL使用
一、连接MYSQL。 格式: mysql -h主机地址 -u用户名 -p用户密码 1、例1:连接到本机上的MYSQL。 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot - p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>转载 2013-12-05 16:14:22 · 527 阅读 · 0 评论 -
MySQL索引优化
一、什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录转载 2013-12-05 16:15:43 · 619 阅读 · 0 评论 -
MySQL与存储过程
MySQL是“世界上最为流行的开放性数据库”,至少对于MySQL Web站点会这样。但无论MySQL如此流行,很多公司都对MySQL的使用抱有抵触情绪。这种现象来自几个原因,其中有些人错误地认为开放性源代码只不过相当于小孩子的积木游戏,而另一些人认为任何免费的东西都不会是好东西。也许这些想法都是误解,然而有一种抱怨却是合理的,即与其它对应的产品不一样,比如Oracle或者 DB2,MySQL不能够转载 2013-12-05 16:13:32 · 687 阅读 · 0 评论 -
史上最简单的 MySQL 教程(三)「 MySQL 数据库」
MySQL 数据库MySQL 数据库是一种C\S结构的软件,即分为:客户端和服务端。若想访问服务器,则必须通过客户端;服务器应该一直运行,客户端则在需要使用的时候运行。交互方式客户端连接认证,即连接服务器,认证身份mysql.exe -hPup-h,主机地址,本地为localhost,远程为IP地址-P,端口号,用来找软件-u,用户名-p,密码发送 SQL 指令;服务器接受 ...转载 2019-02-28 09:04:15 · 198 阅读 · 0 评论 -
史上最简单的 MySQL 教程(四)「SQL 基本操作 之 库操作」
SQL 基本操作基本操作:CURD,即增删改查。根据操作对象的不同,咱们可以将 SQL 的基本操作分为三类,分别为:库操作、表(字段)操作和数据操作。库操作1 新增数据库基本语法:create database + 数据库名称 + [库选项];其中,库选项是用来约束数据库的,为可选项(有默认值),共有两种,分别为:字符集设定:charset/ character set+ ...转载 2019-02-28 09:04:56 · 144 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十六)「列属性 之 唯一键」
唯一键唯一键:每张表往往有多个字段需要具有唯一性,数据不能重复,但是在每张表中,只能有一个主键,因此唯一键就是用来解决表中多个字段需要具有唯一性的问题。唯一键的本质与主键差不多,唯一键默认的允许字段为空,而且可以多个字段为空,因此空字段不参与唯一性的比较。增加唯一键增加唯一键的方法和主键类似,有 3 种方法,分别为:第一种:在创建表的时候,字段后面直接添加unique或者uniq...转载 2019-03-01 10:56:30 · 157 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十五)「列属性 之 自动增长」
自动增长自动增长:auto_increment,当对应的字段,不给值,或者是默认值,或者是null的时候,就会自动的被系统触发,系统会从当前字段中取已有的最大值再进行+1操作,得到新的字段值。自增长通过跟主键进行搭配使用,其特点为:任何字段要做自增长,前提其本身必须是一个索引,即key栏有值;自增长字段必须是数字(整型);每张表最多有一个自增长字段。执行如下 SQL 语句,进行测试:...转载 2019-03-01 10:56:17 · 156 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十四)「列属性 之 主键」
主键主键:primary key,表中主要的键,每张表只能有一个字段(复合主键,可以多个字段)使用此属性,用来唯一的约束该字段里面的数据,不能重复。增加主键在 SQL 操作中,有 3 种方法可以给表增加主键,分别为:第 1 种:在创建表的时候,直接在字段之后,添加primary key关键字[plain]view plaincopy--增加主键 create...转载 2019-03-01 10:56:06 · 178 阅读 · 0 评论 -
史上最简单的 MySQL 教程(十三)「列属性 之 空属性、列描述和默认值」
列属性列属性:实际上,真正约束字段的是数据类型,但是数据类型的约束比较单一,因此就需要额外的一些约束来保证数据的有效性,这就是列属性。列属性有很多,例如:null、not null、default、primary key、unique key、auto_increment和comment等。空属性空属性有两个值,分别为:null和not null.虽然默认数据库的字段基本都为空...转载 2019-03-01 10:55:53 · 146 阅读 · 0 评论