01>>>MySQL初探
MySQL初探
今天开始学习MySQL数据库。不过在实际学习MySQL之前还需要了解一些必要的理论知识。

数据库简介
数据存储的演变过程
1.文件
在最开始的时候没有数据库的概念,数据都是以单个文件的形式储存的。文件既可以存数据,也能取数据。从理论上来看,文件具备有数据库的雏形。

但文件不是没有缺点,最主要的缺点有两条:
1.数据格式千差万别,导致程序兼容性很差
2.数据安全性较弱,容易丢失
2.单机程序
单机程序比如单机游戏,开发者将整体数据都打包封装好,随后用户用光盘、硬盘等形式将文件安装进自己的电脑里。程序的所有数据都保存在本地的一个文件夹内,数据格式也都由程序设计者定义好。

比起单个单个的文件,单机程序容量提高了,性能更强了,但是缺点也依旧是存在的。
1.数据彼此之间无法共享(如:游戏进度、用户数据等等)
2.数据安全性较弱,容易丢失
3.联网程序
联网程序例如网络游戏,程序的主体安装在用户的电脑上,但是重要数据(诸如玩家账号密码、人物属性装备)都保存在游戏公司自己的数据库里。在不同电脑上,同一个玩家的数据是可以共享的,并且安全性较高。
随着网络技术的发展,现在越来越多的办公软件也具备了数据联网保存的功能,美其名曰“云数据”。不光是游戏,即便是办公资料也可以通过云数据在不同设备上操作了。

软件开发架构
IT领域的软件开发架构就相当于工业中的零件图,建筑领域的蓝图。是软件开发必不可少的参考依据。软件开发架构分为两种:
1.c/s架构
c:client客户端;s:sever服务端
用户通过软件客户端与服务商的软件服务端相连,根据软件的不同享受各式各样的服务。例如淘宝,用户们通过手机APP,与淘宝服务端相连,进而可以浏览在淘宝注册的网店。
打个比方:客户端就像一位位客人,服务端可以看成一家家商店。
从架构上来看,网络游戏就是典型的c/s架构;而单机游戏实质上也是c/s架构,只不过单机游戏将客户端与服务端整合到一起,共同保存在用户本人的电脑上无需联网即可使用。
2.b/s架构
b:broswer浏览器;s:sever服务器(端)
用户通过浏览器就可以连接到服务商的服务器,就可以充当客户端,不受软件或应用的束缚。最典型的例子便是各种各样的网站,(理论上)只需要一个ie浏览器,就可以连接世界各地的所有网站。
所以b/s架构中的浏览器相当于一位可以选择去多家商店消费的客人,服务器依旧相当于一家家商店。

但是从本质上来讲,b/s架构也是c/s架构。因为宏观来看,浏览器也可以看做是一个客户端,人们凭借浏览器连接到各式各样的网站,本质上还是通过客户端连接到服务端,但泛用性比明确一个单独客户端的c/s架构要强。
数据库的概念
从架构上来看,数据库也是一款c/s架构的软件。而数据库操作数据可以简单地理解为就是基于网络远程的操作文件。
无论是数据库的客户端还是服务端,都需要基于通信网络。当然这个通信网络可以是互联网也可以是局域网,甚至可以是单机。

数据库的分类
上面讲了不少生硬的理论概念,接下来终于可以讲到数据库本身了。

由于数据库就是一款c/s架构的软件,所以数据库软件有很多,大体上可以分为两种:
1.关系型数据库
这类数据库软件具有固定的表结构,并且表与表之间可以建立外键关系(有些类似excel表格)。
主要流行的有:MySQL、Oracle、PostgreSQL、sql server、sqlite、MariaDB、access等等。
1.MySQL数据库 开源免费的,也是目前市面上使用最多的一款数据库。
2.MariaDB数据库 跟MySQL是同一个人开发的(中间的故事可以参考:https://www.zhihu.com/question/277635772/answer/489488196),相当于是MySQL的备用,也有很多其他功能。

3.Oracle数据库 安全性极高,但是需要收费且维护费用也很高,只有大型互联网企业才会使用(尤其是银行)。

4.PostgreSQL数据库 可扩展性非常强,可以基于现有的功能额外开发(改装)。

5.sql server数据库 老牌数据库软件。

6.sqlite数据库 小型数据库,一般只用于本地小数据量测试。

2.非关系型数据库
这类数据库没有固定的表结构,数据存储格式采用的是K:V键值对的形式(像python中的字典)。
常见的有:redis、mongoDB、memcache
1.redis数据库 是目前市面上最火的一款非关系型数据库软件,读取数据的速度非常快,主要用于缓存。

2.mongoDB数据库 在爬虫和大数据库领域使用广泛。

3.memcache数据库 基本被redis淘汰了。

SQL语句与NoSQL语句
由于可以充当数据库客户端的语言非常多,为了能够兼容并济,数据库专门开发了一门用来与数据库打交道的语言,也就是SQL语句。
也就意味着以后需要操作数据库,统一使用SQL语句。
SQL语句就是用来操作关系型数据库的语言,而NoSQL语句就是用来操作非关系型数据库数据库的语言。
重要概念
在关系型数据库中,库指代文件夹,表指代文件夹中的文件,数据则指代文件夹里面的一行行记录。

MySQL数据库
现在终于讲到了MySQL数据库。
市面上流行的MySQL版本也很多,主要有一下几种版本:
MySQL5.5 基本不用 MySQL5.6 使用较广泛 MySQL5.7 逐步过渡 MySQL8.0 最新版
对于初学者来说,版本有别但不影响学习SQL语句。

MySQL下载与安装
首先百度MySQL,当然也可以直接输入官网地址https://www.mysql.com/

进入正确地址应是这样的界面:

随后点击"Downloads"

之后不要管推荐的版本,下拉寻找到"MySQL Community (GPL) downloads",点击之。

之后选择MySQL Community Server,点击之。

点击之后进入了下载页面,但是不推荐下载明面的这个,这是最新版,初学时暂不考虑使用。应当点击右上方的"Archives",进入时间轴选择老版本。

之后只需要根据自机的实际情况按图索骥,点击右边download之后静待下载完毕即可。

下载完毕后解压缩。

文件目录介绍
解压完毕之后,先打开解压好的程序文件夹根目录。

bin文件夹存储的是启动程序文件,其中包括有:
mysql.exe 客户端
mysqld.exe 服务端
data文件夹存储的是数据相关的文件。
my-default.ini是数据库的默认配置文件。
README类似于产品说明书。
MySQL基本使用
1.要想使用MySQL,首先要启动服务端
在启动服务端之前,不妨先添加环境变量。
1.在此电脑中点击右键选择属性,弹出系统设置,选择高级系统设置。

2.之后选择环境变量。

3.弹出环境变量后,在系统变量中寻找Path,找到之后选中点编辑。这里是以win10系统作为演示,win7或其他系统可能会有不同。

4.之后点击新建,填写mssql文件夹里bin文件夹的地址。

5.如果显示有bin文件夹的路径,那么就添加成功了,接下来一路确定就OK了。

6.上述步骤都完成之后,可以呼出cmd输入命令“mysqld”,若如下图便成功了。

2.客户端登陆(游客模式)
再度强调:欲使用MySQL,必须要先启动服务端。
现在服务器已经启动了,接下来再打开一个cmd来启动客户端。
首先来尝试一种简单的功能:直接"myslq",成功的话如下图所示:

随后再输入“show databases;"
会出现一个表格(红框框出的部分)。

以这种方式登录客户端,就叫做游客模式登录。该模式下功能及权限都很少,但不推荐使用。不过游客模式可用于检测服务端是否启动。
3.退出游客账户
在游客模式下直接输入“exit”就可以了,除了exit,quit也能当做退出指令。
如果反馈一句"Bye"就代表成功退出了,真懂礼貌。

4.以用户名密码正常登录
我们先以管理员账号登录客户端。管理员用户名为"root",初始没有密码。
完整的登录语句是:
mysql - h -P -u -p
h=host,即服务端的ip地址(如果服务端在本机,则ip地址固定为127.0.0.1,也叫本机归还地址)
P=Port,MySQL的端口号(默认为3306)
username用户名(登录管理员就是root)
password密码(管理员初始密码为空)
故管理员登录的完整命令为:
mysql -h 127.0.0.1 -P 3306 -uroot -p
# 需要注意的是,h和P后面要加空格,但u和p不用![]()
注意:MySQL有密码输入的保护机制,在首次输入密码时可以直接按回车,因为此时输入的密码会以明文打在屏幕上。到了二次输入时,会加密处理防止泄露。
登陆之后在输入"show databases;",可以看到表格中多出了两行,显然是比游客模式多了点功能。
如果是本地操作,还可以进行简化:
mysql -uroot -p
省略掉ip和端口号,直接输入用户名和密码就可以了。
系统服务制作
每次要使用MySQL都需要至少两个cmd窗口,太繁琐了。如果能够让MySQL的服务端编程系统服务,随着计算机的开启与关闭自动启动和停止就好了。有没有什么方法节省工作量呢?
当然是有的!
1.如何查看计算机内部所有的系统服务?
方法1
鼠标移到任务栏,然后右键选择任务管理器,再选择服务选项卡。

这样就能看到计算机中所有的服务了。非常简单,但也显得……不够极客……
方式2
在键盘上同时按下WIndows和R,然后输入services.msc,回车即可调出服务选项框。

2.将MySQL服务添加到系统服务中
没有安装过MySQL的电脑,应该是不会在服务中找到MySQL的相关服务的。于是接下来我们来试着将MySQL服务添加到系统服务中去。
代码非常简单:
mysqld --install
如果直接打开cmd输入代码,安装请求会被拒绝:

所以这次要以管理员身份打开cmd再输入代码:

之后回到服务选项框,刷新一下,就能看到MySQL加入服务中了。

但是现在还仅仅是把MySQL添加到服务中,它还没有运行。
3.添加完成后第一次需要手动启动
方式1:
服务选项框中选中MySQL右键选择启动就可以。
这方面一样还是不够极客,不过足够便利。
方式2:
在cmd中输入以下代码:
net start mysql

与添加服务时一样,都要在以管理员身份打开的cmd输入代码才能奏效。
不论用哪种方法,最后都要回到服务对话框里,如果MySQL的状态显示为正在运行,才算是大功告成了

移除MySQL
安装的过程讲完了,接下来简单说说如何移除MySQL。显然这样的操作不会太多,所以就只简单写一下流程。
1.以管理员身份打开cmd窗口
2.将MySQL服务关闭
net stop mysql
3.移除系统MySQL服务端
mysqld --remove
4.删除MySQL相关环境变量
5.删除MySQL相关文件夹
操作本身没什么好说,倒是可以把代码连起来看:
开启MySQL服务:"net start mysql" >>> 关闭MySQL服务:"net stop mysql"
MySQL服务添加到系统:"mysqld --install" >>> 移除系统MySQL服务端"mysqld --remove"
Tips
调试MySQL过程中出现报错,百度一下基本可以搞定。不光是MySQL,许多编程语言中出现了报错自身又解决不了的情况下,可以选择在百度知乎等网站上搜索一下解决方法。独立搜索答案解决问题的能力非常重要。



浙公网安备 33010602011771号