MySQL数据库概述以及环境搭建(Windows)

mysql数据库

第一部分、MySQL数据库基础篇

一、数据库概述与MySQL安装篇

第一章:数据库概述
1、为什么要使用数据库

数据库可以实现数据的持久化
持久化:把数据保存到可掉电式储存设备中以供之后使用,实现数据的持久化
持久化的主要作用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、xml文件中。

2、数据库与数据库管理系统
2.1、数据库的相关概念

DB:数据库(Database)
即存储数据的“仓库”,其本质上是一个文件系统,它保存了一系列有组织的数据

DBMS:数据库管理系统
是一种操作和管理数据库的大型软件,用于建立,使用和维护数据库,对数据库进行同意管理和控制,用户通过数据库管理系统访问数据库中表内的数据

SQL:结构化查询语言
专门用来与数据库通信的语言

2.2、数据库与数据库管理系统的关系

数据库管理系统DBMS可以管理多个数据库,一般开发人员会针每一个应用创建一个数据库,为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体用户的数据
在这里插入图片描述

2.3、常见的数据库管理系统排名(DBMS)

Orcal
MySQL
SQl Sever
PostgreSQL
Redis
DB2
。。。。。。

2.4、常见的数据库介绍

Orcal:他是第一个商用的RDBMS(关系型数据库管理系统

SQL Server:SQL Server是微软开发的大型商业数据库。

DB2:IBM公司的数据库产品,收费的,常应用在银行系统中

PostgreSQL;稳定性极强,最符合SQL标准,开放源码,具备商业级DBMS质量,PG对数据量大的文本以及SQL处理较快

SyBase:已经退出历史舞台,提供了一个非常专业的建模工具PowerDesigner

SQLite:嵌入式的小型数据库,应用在手机端,零配置,SQlite3不用安装,不用启动,关闭或配置数据库实例。当系统崩溃后不用做任何恢复操作,再次使用数据库时会自动恢复

infomax:IBM公司出品,第一个被移植到linux平台的商业数据库产品,仅运行与unix/linux平台,命令行操作,性能较高,支持集群,适用于安全性要求极高的系统,尤其时运行银行,证券系统的应用。

3、MySQL介绍
3.1、概述
  • MySQL是一个开放源代码的关系型数据库管理系统
  • 2008被sun收购,2009年sun被Oracle收购。MariaDB应运而生
  • MySQL6.x版本之后分为社区版和商业版
  • MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据存放在一个大仓库内,这样就增加了速度并提高了灵活性
  • MySQL是开源的,所以不需要支付额外费用
  • MySQl是可以定制的,采用了GPL协议,可以修改源码来开发自己的MySQL系统
  • MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB。64位系统最大可支持8TB
  • MySQL使用标准的SQL语言形式
  • MySQL可以允许应用于多个系统上,并且支持多种语言,这些变成语言包括c,c++、Python、Java、Perl、php和Ruby等
3.2、MySQL发展史
3.3、关于MySQL8.0
3.4、为什么选择MySQL
  1. 开放源代码
  2. 性能卓越,服务稳定
  3. 软件体积小,使用简单,并且易于维护
  4. 历史悠久,社区用户非常活跃
  5. 许多互联网公司再用,经过了时间的验证
3.5、Oracle vs MySQL

Oracle更适合大型企业使用,对性能要求以及安全性有更高的要求

MySQL由于体积小,速度快,总体拥有成本低,可处理上千万条记录的大型数据库,尤其是开放源码这一特点,使得很多互联网公司,中小型网站选择了MySQL作为网站数据库。

4、RDBMS与非RDNBMS
4.1、关系型数据库

实质
这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格模式)

关系型数据库以行(row)和列(column)的形式存储数据,以便于用户理解,这一系列的行为和列被称为表(table),一组表组成了一个库(database)
表与表之间的数据记录有关系。现实世界中的各种实体以及实体之间的各种联系均用
关系模型
**来表示。关系型数据,就是建立在关系模型基础上的数据库。
SQL就是关系型数据库的查询语言。
优势
**复杂查询:**可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
**事务支持:**使得对于安全性能很高的数据访问要求得以实现

4.2、非关系型数据库(非RDBMS)

介绍
非关系型数据库可看成传统关系型数据库的功能阉割版本,基于键值对存储数据,不需要经过SQL层的解析,性能非常高。同时,通过减少不常用的功能,进一步提高性能
目前基本上大部分主流的分关系型数据库都是免费的

有哪些非关系型数据库

相比于SQL,NoSQL泛指非关系型数据库,包括文档型数据库,键值型数据库,搜索引擎和列储存等,除此以外还包括图形数据库。也只有NoSQL一词才能将这些技术囊括进来

键值型数据库
键值型数据库通过Key-Value键值的方式来存储数据,其中Key和Value可以是简单的对象,也可以是复杂的对象,Key作为唯一的标识符,优点是查找速度快。在这方面明显优于关系型数据库,缺点是无法像关系型数据库一样使用条件过滤(比如Where),如果你不知道去哪里找数据,就要遍历所有的键,这就会消耗大量的计算。
键值型数据库典型的使用场景是作为内存缓存,Redis是最流行的键值型数据库

文档型数据库
此类数据库可存放并获取文档,可以是XML,JSON等格式,在数据库中文档做为处理信息的基本单位,一个文档就相当于一条记录,文档数据库所存放的文档,就相当于键值数据库所存放的“值”,MongoDB是最流行的文档型数据库。此外,还有CouchDB等。

搜索引擎数据库
虽然关系型数据库采用了索引提升检索效率,但是针对全文索引i效率较低,搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。核心原理是“倒排索引”。
典型产品:Solr Elasticsearch Splunk等

列式数据库
列式数据库是相对于行式数据库存储的数据库。Oracle MySQL,SQL Server 等数据都是采用的行式存储,而列式数据库是将数据按照列存储到数据库中,这样做的好处是可以大量降低系统的I/O,适合于分布式文件系统,不足在于功能相对有限,典型产品:HBase等

图形数据库
图形数据库,利用了图这种数据结构存储了实体(对象)之间的关系。图形数据库最典型的例子就是社交网络中人与人的关系,数据模型主要是以节点和边来实现,特点在于能高效的解决复杂的关系问题

图形数据库顾名思义,就是一种存储图形关系的数据库,它利用了图这种数据结构存储了实体对象之间的关系。关系型数据库用于存储明确关系的数据,但对于复杂关系的数据存储结构却有些力不从心。

演变

1970:NoSQL = We have no SQL
1980:NoSQL = Know SQL
2000:NoSQL = Not only SQL
2005:NoSQL = Not only SQL
2013:NoSQL = No,SQL

NoSQL 对SQL做出了很好的补充。比如实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能九足够使用了。这种情况下,使用性能更高,成本更低的非关系型数据库当然是更明智的选择,比如:日志收集,排行榜,定时器等。

4.3、小结

NoSQL的分类很多。即便如此,在DBMS排名中,还是SQL的阵营的比重要大,所以说掌握SQL是必要的

5、关系型数据库设计规则

关系型数据库的典型数据就是数据表,这些数据表的组成都是结构化的
将数据放到表中,表再放到苦中
一个数据库可以有多张表,每一个表都有一个名字,用来标识自己,表明具有唯一性
表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和Python中“类”的设计

5.1、表、记录、字段
  • E-R(实体-联系)模型中有三个主要的概念是实体集、属性、联系集
  • 一个实体集对应于数据库中的一个表,一个实体则对应与数据库表中的一行,也成为一条记录,一个属性对应于数据库表中的一列,也称为一个字段
5.2、表的关联关系

表与表之间的数据记录有关系,现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示
四种关系:一对一关联,一对多关联、多对多关联、自我引用

5.2.1 一对一关联

两种建表原则
外键唯一:主表的主键和从表的外键(唯一)形成主外键关系,外键唯一
外键是主键:主表i的主键和从表的主键,形成主外键关系

5.2.2 一对多关联
5.2.3 多对多关联

要表示多对多关系,必须创建三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系,将这两个表的主键都插入到第三个表中。

5.2.4 自我引用关联
第二章:MySQL环境搭建

和数据库有关的位置
1、数据库安装文件
2、数据库数据文件(数据库中的表等等数据)一般是在系统盘中
3、系统服务中
4、环境变量

1、MySQL的卸载
步骤一:停止MySQL服务

在系统服务中找到mysql服务将其停止

步骤二:软件的卸载

(1)控制面板卸载软件(通用方式)
流程
1、有关mysql的软件需要全部卸载
2、数据文件需要手动删除
3、环境变量删除
4、服务卸载(8.0之前版本在控制面板中卸载时不会自动卸载,需要去注册表中卸载)
(2)通过电脑管家等第三方软件进行卸载
(3)通过安装包提供的卸载方式进行卸载

步骤三:残余文件的清理

1、有关mysql的软件需要全部卸载
2、数据文件需要手动删除
3、环境变量删除
4、服务卸载(8.0之前版本在控制面板中卸载时不会自动卸载,需要去注册表中卸载)

步骤四:清理注册表(5.7版本需要手动清理)

在系统搜索框中输入regedit
。。。。。

步骤五:删除环境变量

之后需要重启电脑

2、MySQL的下载,安装,配置
2.1、MySQL的四大版本

MySQL Community Server 社区版本:开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户

MySQL Enterprise Edition 企业版本:需付费,不能在线下载,可以试用30天。提供了更多的功能和完备的技术支持,更适合与对数据库功能和可靠性要求较高的企业客户

MySQL Cluster 集群版:开源免费,用于架设集群服务器,可将几个MySQL Server 封装成一个Server 需要在社区版或企业版的基础上使用

MySQL Cluster CGE 高级集群版:收费

2.2、软件的下载

官网www.mysql.com
社区免费版传送门

2.3、MySQL8.0版本的安装

双击已经下载好的安装包进行安装
在这里插入图片描述
将会出现以下画面
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置界面如下
在这里插入图片描述
位置均可以自行选择,但是不可以有中文路径,会导致安装失败

配置完后成功之后点击ok,将会返回到主界面,点击next进行继续安装
在这里插入图片描述
点击next
会弹出下图警告
在这里插入图片描述
选择Yes进行下一步

在这里插入图片描述
在这里插入图片描述

2.4、配置MySQL8.0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待安装完成
在这里插入图片描述
点击next —>finish完成安装
在这里插入图片描述
现在安装完毕,我们需要配置以下环境变量

2.5、配置环境变量

找到安装位置中的bin文件,这是配置环境变量必须知道的文件路径
在这里插入图片描述
在这里插入图片描述

接下来去配置

在这里插入图片描述
在这里插入图片描述
点击确定后环境变量配置完成
打开cmd命令行进行测试是否安装完成并且配置好环境变量
在这里插入图片描述

如图所示为安装成功且配置好环境变量。

2.6、MySQL5.7版本的安装、配置

一台电脑可以安装多个版本的mysql
安装多个版本的时候端口号不可以使用相同的

2.7、安装失败问题

(1)之前电脑上没有安装过mysql
(2)之前电脑上安装过mysql
卸载之前安装的mysql之后安装新的mysql失败,极有可能是因为之前的mysql卸载不完全(比如没有删除注册表内容)。
(3)如何在Windows系统删除之前的未卸载干净的MySQL服务列表
在cmd命令行中输入 scdelete MySQL 回车即可,然后重启。

3、MySQL的登陆
3.1、服务的启动与停止

MySQL安装完毕之后,需要启动服务器进程,不然客户端无法连接数据库。
方式1
使用图形界面工具
在这里插入图片描述
方式2
使用命令行工具

#启动MySQL服务命令
net start MySQL服务名
#关闭MySQL服务命令
net stop MySQL服务名

说明:1.start和stop后面的服务名应与之前配置时指定的服务名一致

2.如果输入命令后,提示拒绝服务,请以管理员身份打开命令提示符界面重新尝试

3.2、自带客户端的登陆与退出

登陆方式1:自带客户端登录
在这里插入图片描述
登陆方式2:windows命令行

退出登录
exit或quit

4、MySQL演示
4.1、使用演示

在这里插入图片描述

4.2、mysql 5.7编码设置

步骤一:查看编码

show variables like 'character_%';
show variables like 'collation_%';

步骤二:修改mysql数据库目录下的my.ini配置文件

[mysql]#大概在63行左右,在其底下添加
...
default-character-set=utf8 #默认字符集

[mysqld]#大概在76行左右,在其下添加
...
character-set-server=utf8
collation-server=utf8_general_cl

步骤三:重启服务

步骤四:重新查看编码

使用5.7版本安装完成之后直接修改编码

show create table tablename
show create database databasename

在这里插入图片描述

5、MySQL图形化管理工具

MySQL Workbench

phpMyAdmin
Navicat Preminum
MySQLDumper
SQLyog
dbeaver
MySQL ODBC Connector

6、常见问题解决

在这里插入图片描述课后题
在这里插入图片描述

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值