MySQL-概述
1. 数据库简介
1.1. 举例
-
数据库:DataBase(DB),是存储和管理数据的仓库。
-
像我们生活中:
-
电商网站:京东、淘宝、天猫等。
-
企业内部管理系统:OA、CRM、ERP等。
-
单位系统:银行、证券、医院、政府等。
-
APP:今日头条、抖音等。
-
- 像这些Web网站、应用软件所呈现出来的这些数据并不是在页面写死的,这些数据都是在数据库当中存储和管理的。
1.2. DBMS & SQL
1.3. 思考
-
数据库仅仅是一个存储和管理数据的仓库,如果要修改数据库中的数据该如何进行?
-
可以通过一个软件去操作数据库中的数据:
- 数据库管理系统:
D
ataB
aseM
anagementS
ystem (DBMS),操纵和管理数据库的大型软件。
- 数据库管理系统:
1.4. 思考
-
DBMS这个软件如何知道我们要操作的是哪个数据库中的哪一条数据?如何知道我们要进行的是增、删、改、查一系列的操作呢?
-
此时我们需要告诉这个软件要执行的是什么操作,要对哪一条数据进行操作,需要给这个软件发送一条指令:
- SQL:Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一
标准
。
- SQL:Structured Query Language,操作关系型数据库的编程语言,定义了一套操作关系型数据库统一
1.5. 主流数据库产品
1.5.1. 产品介绍
-
关系型数据库产品排名:
-
介绍:
名称 介绍 Oracle 收费的大型数据库,Oracle公司的产品。 MySQL 开源免费的中小型数据库。2008年Sun公司收购了MySQL,2009年Oracle收购Sun公司。 SQL Server MicroSoft公司收费的中型的数据库。C#、.net等语言常使用。 PostgreSQL 开源免费中小型的数据库。 DB2 IBM公司的大型收费数据库产品。 SQLite 嵌入式的微型数据库。如:作为Android内置数据库 MariaDB 开源免费的中小型的数据库。
1.5.2. 思考
-
现在学习MySQL数据库,以后在公司上班如果用到的是Oracle、SQL Server、DB2等这些数据库怎么办?
-
关系型数据库:
-
不用担心,因为以上介绍的这些数据库都是属于关系型数据库,要操作
关系型数据库
,都是通过SQL
语句来操作的。 -
而SQL语句又是操作关系型数据库的
统一标准
。 -
因此只要学会SQL语句,就可以通过SQL语句来操作关系型数据库中的任意数据库产品软件。
-
1.6. 课程学习
- 目前阶段学习主要先达成数据库设计、操作方面的能力。
- 对于数据库优化目前阶段先讲解数据库当中优化最重要的一个手段:索引。
- 具体的数据库优化实践还需要结合项目阶段进行一个有效地锻炼。
- 因此,在后面的阶段还会讲解数据库优化以及分布、分表等相关内容。
2. 概述
2.1. 安装 & 配置
-
MySQL官方提供了两种不同的版本:
-
我们采用的是MySQL的最新社区版(MySQL Community Server 8.0.31)。
(1) 下载
-
① 点开下面的链接:MySQL下载
-
点击Download 就可以下载对应的安装包了, 安装包如:
(2) 解压
-
① 下载完成后我们得到的是一个压缩包,将其解压,我们就可以得到MySQL 8.1.0的软件本体了(就是一个文件夹),我们可以把它放在你想安装的位置 (最好是全英文无空格路径)。
(3) 配置
- 添加环境变量:
- 环境变量里面有很多选项,这里我们只用到Path这个参数。为什么在初始化的开始要添加环境变量呢?
- 在黑框(即CMD)中输入一个可执行程序的名字,Windows会先在环境变量中的Path所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录找,如果还没找到,就报错。我们添加环境变量的目的就是能够在任意一个黑框直接调用MySQL中的相关程序而不用总是修改工作目录,大大简化了操作。
① 右键此电脑→属性,点击高级系统设置
② 点击环境变量
③ 在系统变量中新建MYSQL_HOME
④ 在系统变量中找到Path ,点击编辑
- 最后点击确定。
(4) 验证
如何验证是否添加成功?
- ① 点击开始菜单(就是屏幕左下角),搜索命令提示符,以管理员身份打开,敲入mysql,回车。
- ② 如果提示==Can’t connect to MySQL server on ‘localhost’==则证明添加成功;
- ③ 如果提示mysql不是内部或外部命令,也不是可运行的程序或批处理文件则表示添加添加失败,请重新检查步骤并重试。
2.2. 初始化MySQL
- ① 以管理员身份,运行命令行窗口:
-
② 在刚才的命令行中,输入如下的指令:
mysqld --initialize-insecure
-
③ 稍微等待一会,如果出现没有出现报错信息,则证明data目录初始化没有问题,此时再查看MySQL目录下已经有data目录生成。
- tips:如果出现如下错误
是由于权限不足导致的,以管理员方式运行 cmd
2.3. 注册MySQL服务
-
① 命令行(注意必须以管理员身份启动)中,输入如下的指令,回车执行:
mysqld -install
-
现在你的计算机上已经安装好了MySQL服务了。
2.4. 启动MySQL服务
-
① 在黑框里敲入net start mysql,回车。
net start mysql // 启动mysql服务 net stop mysql // 停止mysql服务
2.5. 修改默认账户密码
-
在黑框里敲入mysqladmin -u root password 1234,这里的1234就是指默认管理员(即root账户)的密码,可以自行修改成你喜欢的。
-
学习阶段不建议设置太难记的密码。
mysqladmin -u root password 1234
2.6. 登录-退出-卸载MySQL
-
① 右键开始菜单,选择命令提示符,打开黑框。
-
在黑框中输入,mysql -uroot -p1234,回车,出现下图且左下角为mysql>,则登录成功。
mysql -uroot -p1234
-
到这里你就可以开始你的MySQL之旅了!
- 退出mysql:
exit 或 quit
-
登录参数:
mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
- -u:指定用户
- -p:指定密码
- -h:指定要连接的mysql服务器的ip地址,如果不指定则默认是本机(127.0.0.1)
- -P:指定端口号,如果不指定则默认是3306
如果你想卸载MySQL,也很简单。
-
① 点击开始菜单,选择 “命令提示符”,选择右侧的 “以管理员身份运行”。
-
② 敲入net stop mysql,回车。
net stop mysql
-
③ 再敲入mysqld -remove mysql,回车。
mysqld -remove mysql
-
④ 最后删除MySQL目录及相关的环境变量。
-
至此,MySQL卸载完成!
2.7. MySQL-企业开发使用方式
(1) MySQL连接
-
语法:
mysql -u用户名 -p密码 [ -h数据库服务器IP地址 -P端口号 ]
-
这种方式也仅限于我们的学习阶段,以后进入到企业工作了,根本不需要我们在自己的电脑上安装MySQL数据库
-
因为开发中,这台MySQL数据库中所存储的数据是需要多个开发人员共享的,如果安装在自己的电脑上,你一关机,别的开发人员无法访问了
-
企业中,MySQL数据库是需要安装在一台专门的服务器上的
-
这个服务器如果是公司的核心业务服务器,一般不会放在公司里,需要托管在专业的机房中;
-
因为要保证服务器中的应用软件是在一个恒温、恒湿、无尘,并且配备有完善的网络及电力系统的环境中稳定运行的。
-
那要众多的开发人员应如何访问这个MySQL数据库?
- 需要通过MySQL的客户端来远程连接这个MySQL服务器
- 需要通过MySQL的客户端来远程连接这个MySQL服务器
(2) 模拟企业开发使用方式
-
我们在学习阶段想提前体验一下企业开发的使用方式,但是没有对应的服务器该如何?
-
可以使用一款虚拟机软件:VMware
-
通过它,可以虚拟出一台计算机(服务器)
-
在自己的电脑上安装VMware
-
接着通过它虚拟出一台服务器
-
然后就可以在这台服务器上安装我们需要的各种软件
-
① 下载-安装-配置VMware
-
前往教程:VMware下载-安装-配置教程
-
配置静态网络:CentOS 7 网络配置(静态网络)
② CentOS7安装-配置MySQL
③ 连接服务器数据库
-
进一步测试:
2.8. 数据模型
2.8.1 关系型数据库
(1) RDBMS
-
关系型数据库(RDBMS): 建立在关系模型基础上,由多张相互连接的二维表组成的数据库。
-
非关系型数据库:不是通过表结构来存储数据的,比如后面要学习的redis
(2) RDBMS特点
-
使用这种二维表来存储数据有很多的优点:
- 使用表存储数据,格式统一,便于维护
- 使用SQL语言操作,标准统一,使用方便,可用于复杂查询:
- 例如:以下两张表通过部门这一列连接起来查询了
- 除了在多张表之间使用复杂查询以外,还可以在一张表中进行一些统计、分析、排序分页等复杂操作
2.8.2 MySQL数据模型
-
我们之前已经在自己的计算机上安装好了MySQL数据库,可以说我们的计算机是一台MySQL数据库服务器
-
要操作这台MySQL数据库就需要通过MySQL的客户端来连接上这台MySQL数据库,之后才可以操作里面的数据
-
MySQL数据库服务器中已经内置了软件:数据库管理系统(DBMS)
-
通过客户端来发送一条SQL语句给数据库管理系统,告诉它我们要创建一个数据库1
-
此时数据库管理系统会根据我们的指令创建出数据库1
-
这个数据库在计算机磁盘文件中是以文件夹的形式体现的
-
当然,我们还可以再创建很多很多的数据库,因为在一个数据库服务器中可以创建多个数据库的,多个数据库之间是相互独立的,互不影响
-
在数据库下,可以创建表结构来存储数据,而一个数据下是可以创建多张表结构的,而表结构中存储的就是一条一条的数据:
-
表是以磁盘文件的形式体现的,文件中存储的就是表结构中的数据,当我们查询这张表中数据的时候,数据库服务器就会把磁盘文件中的数据加载出来,最后以二维表形式呈现给我们。
2.9. SQL简介
- SQL:一门操作关系型数据库的编程语言,定义操作所有关系型数据库的统一标准。
2.9.1 语法
-
SQL语句可以单行或多行书写,以分号结尾。
-
例如:
show databases;
-
-
SQL语句可以使用空格/缩进来增强语句的可读性。
-
例如:
show databases;
-
-
MySQL数据库的SQL语句不区分大小写。
-
例如:
SHOW DATABASES;
-
-
注释:
-
单行注释:– 注释内容 或 # 注释内容(MySQL特有)
-- show databases;
-
多行注释: /* 注释内容 */
/* show databases;*/
-
2.9.2 SQL分类
- SQL语句通常被分为四大类:
分类 | 全称 | 说明 |
---|---|---|
DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段) |
DML | Data Manipulation Language | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
- DCL:作为java开发人员很少用得到,因为只有企业中的数据库管理员经常用
2.9.3 小结
- SQL通用语法
- SQL语句可以单行/多行书写,以分号结束。
- SQL语句中可以增加缩进/空格来增强可读性。
- SQL语句中的关键字不区分大小写。
- SQL语句注释:单行注释(-- 注释),多行注释(/* 注释 */)
- SQL分类
- DDL
- DML
- DQL
- DCL