MySQL基础
今日目标:
- 完成MySQL的安装及登陆基本操作
1,数据库相关概念
以前我们做系统,数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会丢失的效果,当然文件存储也有它的弊端。
假设在文件中存储以下的数据:
姓名 年龄 性别 住址
张三 23 男 北京西三旗
李四 24 女 北京西二旗
王五 25 男 西安软件新城
现要修改李四这条数据的性别数据改为男,我们现学习的IO技术可以通过将所有的数据读取到内存中,然后进行修改再存到该文件中。通过这种方式操作存在很大问题,现在只有三条数据,如果文件中存储1T的数据,那么就会发现内存根本就存储不了。
现需要既能持久化存储数据,也要能避免上述问题的技术使用在我们的系统中。数据库就是这样的一门技术。
1.1 数据库
-
存储和管理数据的仓库,数据是有组织的进行存储。
-
数据库英文名是 DataBase,简称DB。
数据库就是将数据存储在硬盘上,可以达到持久化存储的效果。那又是如何解决上述问题的?使用数据库管理系统。
1.2 数据库管理系统
- 管理数据库的大型软件
- 英文:DataBase Management System,简称 DBMS
在电脑上安装了数据库管理系统后,就可以通过数据库管理系统创建数据库来存储数据,也可以通过该系统对数据库中的数据进行数据的增删改查相关的操作。我们平时说的MySQL数据库其实是MySQL数据库管理系统。
通过上面的描述,大家应该已经知道了 数据库管理系统
和 数据库
的关系。那么有有哪些常见的数据库管理系统呢?
1.3 常见的数据库管理系统
接下来对上面列举的数据库管理系统进行简单的介绍:
- Oracle:收费的大型数据库,Oracle 公司的产品
- MySQL: 开源免费的中小型数据库。后来 Sun公司收购了 MySQL,而 Sun 公司又被 Oracle 收购
- SQL Server:MicroSoft 公司收费的中型的数据库。C#、.net 等语言常使用
- PostgreSQL:开源免费中小型的数据库
- DB2:IBM 公司的大型收费数据库产品
- SQLite:嵌入式的微型数据库。如:作为 Android 内置数据库
- MariaDB:开源免费中小型的数据库
我们课程上学习的是MySQL数据库管理系统,PostgreSQL在一些公司也有使用,此时大家肯定会想以后在公司中如果使用我们没有学习过程的PostgreSQL数据库管理系统怎么办?这点大家大可不必担心,如下图所示:
我们可以通过数据库管理系统操作数据库,对数据库中的数据进行增删改查操作,而怎么样让用户跟数据库管理系统打交道呢?就可以通过一门编程语言(SQL)来实现。
1.4 SQL
- 英文:Structured Query Language,简称 SQL,结构化查询语言
- 操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准,可以使用SQL操作所有的关系型数据库管理系统,以后工作中如果使用到了其他的数据库管理系统,也同样的使用SQL来操作。
2,MySQL
2.1 MySQL安装
安装环境:Win10 64位
软件版本:MySQL 5.7.24 解压版
2.1.1 下载
点开上面的链接就能看到如下界面:
选择选择和自己系统位数相对应的版本点击右边的Download
,此时会进到另一个页面,同样在接近页面底部的地方找到如下图所示的位置:
不用理会上面的登录和注册按钮,直接点击 No thanks, just start my download.
就可以下载。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
2.1.2 安装(解压)
下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 5.7.24的软件本体了(就是一个文件夹),我们可以把它放在你想安装的位置。
2.2 MySQL卸载
如果你想卸载MySQL,也很简单。
右键开始菜单,选择命令提示符(管理员)
,打开黑框。
- 敲入
net stop mysql
,回车。
net stop mysql
- 再敲入
mysqld -remove mysql
,回车。
mysqld -remove mysql
- 最后删除MySQL目录及相关的环境变量。
至此,MySQL卸载完成!
2.3 MySQL配置
2.3.1 添加环境变量
环境变量里面有很多选项,这里我们只用到
Path
这个参数。为什么在初始化的开始要添加环境变量呢?
在黑框(即CMD)中输入一个可执行程序的名字,Windows会先在环境变量中的Path
所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录找,如果还没找到,就报错。我们添加环境变量的目的就是能够在任意一个黑框直接调用MySQL中的相关程序而不用总是修改工作目录,大大简化了操作。
右键此电脑
→属性
,点击高级系统设置
点击环境变量
在系统变量
中新建MYSQL_HOME
在系统变量
中找到并双击Path
点击新建
最后点击确定。
如何验证是否添加成功?
右键开始菜单(就是屏幕左下角),选择命令提示符(管理员)
,打开黑框,敲入mysql
,回车。
如果提示Can't connect to MySQL server on 'localhost'
则证明添加成功;
如果提示mysql不是内部或外部命令,也不是可运行的程序或批处理文件
则表示添加添加失败,请重新检查步骤并重试。
2.3.2 新建配置文件
新建一个文本文件,内容如下:
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
把上面的文本文件另存为,在保存类型里选所有文件 (*.*)
,文件名叫my.ini
,存放的路径为MySQL的根目录
(例如我的是D:\software\mysql-5.7.24-winx64
,根据自己的MySQL目录位置修改)。
上面代码意思就是配置数据库的默认编码集为utf-8和默认存储引擎为INNODB。
2.3.3 初始化MySQL
在刚才的黑框中敲入mysqld --initialize-insecure
,回车,稍微等待一会,如果出现没有出现报错信息(如下图)则证明data目录初始化没有问题,此时再查看MySQL目录下已经有data目录生成。
mysqld --initialize-insecure
tips:如果出现如下错误
是由于权限不足导致的,去C:\Windows\System32
下以管理员方式运行 cmd.exe
2.3.4 注册MySQL服务
在黑框里敲入mysqld -install
,回车。
mysqld -install
现在你的计算机上已经安装好了MySQL服务了。
MySQL服务器
2.3.5 启动MySQL服务
在黑框里敲入net start mysql
,回车。
net start mysql // 启动mysql服务
net stop mysql // 停止mysql服务
2.3.6 修改默认账户密码
在黑框里敲入mysqladmin -u root password 1234
,这里的1234
就是指默认管理员(即root账户)的密码,可以自行修改成你喜欢的。
mysqladmin -u root password 1234
至此,MySQL 5.7 解压版安装完毕!
2.4 MySQL登陆和退出
2.4.1 登陆
右键开始菜单,选择命令提示符
,打开黑框。
在黑框中输入,mysql -uroot -p1234
,回车,出现下图且左下角为mysql>
,则登录成功。
mysql -uroot -p1234
到这里你就可以开始你的MySQL之旅了!
登陆参数:
mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
2.4.2 退出
退出mysql:
exit
quit
2.5 MySQL数据模型
关系型数据库:
关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的 二维表 组成的数据库
如下图,订单信息表
和 客户信息表
都是有行有列二维表我们将这样的称为关系型数据库。
接下来看关系型数据库的优点:
- 都是使用表结构,格式一致,易于维护。
- 使用通用的 SQL 语言操作,使用方便,可用于复杂查询。
- 关系型数据库都可以通过SQL进行操作,所以使用方便。
- 复杂查询。现在需要查询001号订单数据,我们可以看到该订单是1号客户的订单,而1号订单是李聪这个客户。以后也可以在一张表中进行统计分析等操作。
- 数据存储在磁盘中,安全。
数据模型:
如上图,我们通过客户端可以通过数据库管理系统创建数据库,在数据库中创建表,在表中添加数据。创建的每一个数据库对应到磁盘上都是一个文件夹。比如可以通过SQL语句创建一个数据库(数据库名称为db1),语句如下。该语句咱们后面会学习。
我们可以在数据库安装目录下的data目录下看到多了一个 db1
的文件夹。所以,在MySQL中一个数据库对应到磁盘上的一个文件夹。
而一个数据库下可以创建多张表,我们到MySQL中自带的mysql数据库的文件夹目录下:
而上图中右边的 db.frm
是表文件,db.MYD
是数据文件,通过这两个文件就可以查询到数据展示成二维表的效果。
小结:
- MySQL中可以创建多个数据库,每个数据库对应到磁盘上的一个文件夹
- 在每个数据库中可以创建多个表,每张都对应到磁盘上一个 frm 文件
- 每张表可以存储多条数据,数据会被存储到磁盘中 MYD 文件中