admin管理员组文章数量:1530074
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
- 开放源代码
- 性能卓越,服务稳定
- 软件体积小,使用简单,并且易于维护
- 历史悠久,社区用户非常活跃
- 许多互联网公司再用,经过了时间的验证
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
社区免费版传送门
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、常见问题解决
课后题
版权声明:本文标题:MySQL数据库概述以及环境搭建(Windows) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1726552681a1075169.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论