前言

我们使用它进行大量数据的存储,以便于日后我们进行大量数据的调用。

MySQL的安装

你想用数据库,就必须进行安装,具体安装步骤,请打开以下链接,堪称史上最强的安装详解:

MySQL 5.x界面安装 - Windows

MySQL的作用?

通俗地讲:MySQL的作用就像一个军团,我们将征集的大量“士兵”(数据)先集中到兵营,然后为他们分配兵种,使其有序的明白自己的归属,然后当我们需要他们的时候,就可以快速有序的调用他们,使他们在最短的时间内发挥最大的作用。

MySQL简介

1.首先它是是开源的,所以你不需要支付额外的费用。
(有时候你会发现,有些开源的软件特别受欢迎,没办法,不出钱的总是受人喜欢)

2.它可以处理数据很多的大型数据库。
(现代全球每分每秒产生的数据都是相当可怕的,所以一个好的数据库,必须是可以进行大量数据的记录,并且质量还不错)

3.MySQL 使用标准的 SQL 数据语言形式。
(SQL关系型数据库:MySQL、Oracle、SQL Server、SQLite、DB2)

4.MySQL 可以运行于多个系统上,并且支持多种语言。
(这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。)

MySQL语法

. 我们在打开的windows终端中
. 输入 mysql -uroot -p(mysql -h 服务器主机地址 –u 用户名 -p用户密码)
. 然后输入密码,进入到 mysql操作,然后就可以进行我们的操作了。

… (这里需要注意的是命令之后要加 “;”,否则命令不执行)

数据库的基本操作(创建 删除 查看 使用)

1.创建数据库

. 数据库的查看命令是: show database 查看的数据库名字;
(查看操作 我们就不单独解释了)
. 数据库的创建命令是: create database 自定义数据库名字;

(这里我们顺便学习了一下查看数据库的命令,因为这样我们更有对比性,我们的操作平台是 windows的终端,数据库不分大小写,创建好的数据库按小写计入)

MySQL  让你拥有不一样感觉_MySQL
2.删除数据库

. 数据库的删除命令是: drop database 删除的数据库名字;

MySQL  让你拥有不一样感觉_MySQL 安装_02
3.使用数据库

. 数据库的使用命令是:use 使用的数据库名字;

MySQL  让你拥有不一样感觉_MySQL_03

(当你的终端出现 Database changed,就意味着你成功了,你就可以使用该数据库里的数据)
(这里我们将删除的 dxcdatabase (帝小辰数据库)重新创建,系统本身存在的数据库我们先不用)

4. 数据表基本操作

. 要想进行数据查询,必须有表和数据
. 查看数据库中所有表 show tables;
. 删除数据表:drop table 表名;
. 显示表结构命令 desc 表名;
. 显示表创建语句 show create table 表名;

(为了方便 —— 我们开始使用Navicat,该工具的具体使用情况请点击该链接查看 MySQL数据库界面化工具 - Navicat的常用功能

4.1. 创建表

MySQL  让你拥有不一样感觉_MySQL 安装_04
4.2. 添加数据

MySQL  让你拥有不一样感觉_MySQL_05
4.3.修改数据

MySQL  让你拥有不一样感觉_MySQL_06

5. 数据查询

5.1:数据查询基本结构

    select 要查看的数据  from  查看数据所在表 where 筛选条件

怎么更好的理解这个格式呢?
通俗一点就是:select 衣服 from 衣柜 where 和裤子配套

5.2.1:单表查询
. 单表查询:顾名思义,就是是在一个表里查询;

图片解说

: 我们在 Navicat 中进行操作,我们先在数据库中右键点击查询,并且新建一个查询,在新建的查询表中我们输入查询语句,就可以得到我们所需要的数据了;

	SELECT 
	S_no as '学号',Class_no as "班级号" ,S_name as "xingming",
	S_sex as "性别",S_birthday as "出生日期"
	FROM
	student 
	
	该语句是查询所有学生的信息,又因为学生所有的信息都在一个表中
	所以整体来说这是一个简单的单表查询;
	AS 是增加别称的意思;

查询后只需要赋予这个查询表一个名字就可以了。

MySQL  让你拥有不一样感觉_MySQL_07

5.2.2:多表查询
. 多表查询:顾名思义,就是在多个表中查询;

图片解说
: 在图中我们所进行的查询是 多表查询,虽然只是利用了两个表。但目的我们已经达到了,至于两个表以上于此类似;

	SELECT
	s.S_no as "学号",s.S_name as "姓名",
	ch.Course_no as "课程",Score as "分数"
	FROM
	student s,choice ch
	WHERE
	s.S_no=ch.S_no
	
	我们在这里分别查询了学号,姓名,课程,分数,
	而学号,姓名是从 student表中获取的;课程,分数是从 choice表中获取的;
	
	所以 where 之前的是可以好懂的,但是 where 之后的东西 需要解释一下,
	其实我们仔细观察两个表,会发现两个表中都有  S_no 这个数据,所以当你没有
	where 这个条件的话,他会报错 
	
	[Err] 1052 - Column 'S_no' in field list is ambiguous
	
	该含义就是 你有相同的字段,也就是两个表中的S_no重复了
	所以我们要将两个合并,你即是我,我就是你;
	
	至于student s 和  choice ch 中的 s  和 ch  都是我们定义的
	(为了好区分,否则S_no=S_no .这样系统不知道你想表达什么意思)

MySQL  让你拥有不一样感觉_MySQL_08

5.2.3:子查询
. 子查询:顾名思义,就是where(select…)条件值来自于另一个查询

5.2.4:模糊查询
. 模糊查询:顾名思议,就是没有准确信息的进行查询
(你想查一个人,但是只知道他的名字中的一个字)

	SELECT
	S_name
	FROM
	student 
	WHERE
	S_name LIKE '王%'
	
	该语句所表达的是我要查询一个人,但我所知道的是他是学生和姓王;
	所以我们用模糊查询;

    LIKE : 模糊查询的关键字,意思是你要查什么格式的内容;
      %  : 把你知道内容写上,不清楚就加 % ;

MySQL  让你拥有不一样感觉_MySQL 安装_09
6. 数据库关键字
6.1.like
: 我们之前做过的那个模糊查询就是利用了 like 关键字,她的作用就是当你不知你要查询的具体消息时,他会帮你查询出所有和你所了解的消息有关的消息,

图片解说
:像图片中我们查询的时候只是知道他姓李,其余信息不缺定,那么我们就可以运用like 关键字进行模糊查询,以便缩小范围,更加利于我们寻找,% 就是你不知道的信息用百分号代替;

MySQL  让你拥有不一样感觉_MySQL_10

6.2.AS
: 该关键字就通俗易懂了,他就是先当于给你去了一个外号,让别人更加易懂,

图片解说
: 你比如查询的时候 S_no 他的本意就是学号, 但是你需要让大部分人看懂,所以我们为其加上别称,学号,这样更加清晰明白你所表达的含义(需要注意的还是:别称要加 单引号,或者 双引号)

MySQL  让你拥有不一样感觉_MySQL 安装_11

6.3.DISTINCT
:该关键字去重数据,就是相同的数据只会留下一个;

图片解说
: 如我们是一般查询,我们会在查询结果中得到两个分数为 88,但是我们用了 去重查询关键字 DISTINCT 后,他会将重复的数字只留下一个;

MySQL  让你拥有不一样感觉_MySQL_12

7. 内外链接
: 这里我将他称为 多表查询三部曲

7.1.等值连接
:该方法就和我们上面初次认识多表查询的例子一样;

MySQL  让你拥有不一样感觉_MySQL 安装_13
7.2.内连接
: 只看结果的话,两者是没有任何区别的,两者的区别就是 FROM 中的 , 的符号变成了 innner join,where 变成了 on;

MySQL  让你拥有不一样感觉_MySQL_14
7.3.外连接(outer join)
: 这里会有主表和从表之分;

7.3.1.左连接
:左连接中左侧部分为主表,右侧为从表;

图片解说
: 从图片中我们可以看到,student 为主表,所以主表的内容全部来到查询结果中,而 choice 为从表,从表就是配合主表的,他会将主表需要的信息提取出来,从而结合成一个表,而主表不需要的数据,他是不会出现的;

和等值查询,内连接的区别?(结果)

就结果而论,等值查询和内连接查询他们两个表中的数据是相匹配的,就是你有我也有才显示,就比如我们之前看到的,学生和成绩是相匹配的,但是在外连接中他不是索尼匹配不匹配,而是主表的内容全部查出来,然后从表去匹配;就像我们看到的,在外连接中有部分人的课程号,分数为 null,这就是因为他们在 choice 中并没有匹配的数据存在;

MySQL  让你拥有不一样感觉_MySQL_15

7.3.2.右连接
: 和左连接相反,主表在右,从表在左,

图片解说
:从图中我们能看出来本次查询的主表为 choice ,从表为 student,我么之前也说过从表是为了配合主表,主表数据全部输出,所以 我们看到的结果就是这样,从表有的数据,主表没有,从表也不会输出该部分数据;

MySQL  让你拥有不一样感觉_MySQL_16

8. 聚合函数
8.1.语法
. select 中使用;
. group by 列名:分组
. having : 对已经进行数据计算的数据进行筛选,在 group by 之后;

8.2.计算符号
. sum:计算总和
. count:计数
. avg:计算平均值
. max: 取最大值
. min: 取最小值

图片解说
:图中我们利用了 avg 和 count 进行计算,并且最终结果按学号分组;
. 就得到了图中的结果;

MySQL  让你拥有不一样感觉_MySQL 安装_17
9. 索引的建立
: 索引的作用是什么呢?举个例子来说,战争时期,我们会将所有兵种分成一个个部队,而这些部队都有属于自己的番号,你在调用的时候就不用一个一个人去叫了,直叫番号就行了,而索引就是这个番号;如果没有索引,就像100多个人的部队没有番号,一旦战争来临。还的调查这10个人属于什么兵种,能干什么?这样就会贻误战机;

9.1.创建索引

	 	alter tablet ableName add index indexName(表名1,表名2);

9.2.删除索引

	 DROP index indexName ON tableName;

9.3.查看索引

		show index from tableName;

9.4.修改索引

		先删除 -> 后创建

9.5.索引分类:

9.5.1 常规索引
. 操作关键字:INDEX
. 作用:建立索引,提高查询效率

9.5.2 唯一索引
. 操作关键字:Unique INDEX
. 作用:建立索引,提高查询效率限制数据,不能出现重复

9.5.3 主键索引
. 操作关键字:PRIMARY KEY
. 作用:建立索引,提高查询效率限制数据,不能出现重复限制数据,非空

10.数据库备份和恢复

内容后续补充。。。。。。