1.1 mysql的简介
1.1.1 基础总体框架
- 数据库概述与mysql的安装
- SQL之SELECT的使用
- SQL之DDL,DML,DCL的使用
- 其他数据库对象
- MySQL8.0其他新特性
1.1.2 为什么使用数据库
- 持久化: 数据存储在内存中不靠谱,因为一断电就没了.所以需要存储在可掉电式存储设备中以供之使用.数据持久化就意味着将内存中的数据保存到硬盘上加以"固化".(其实现过程就需要通过各种关系数据库来完成)
- 数据持久化的作用:就是将内存中的数据存储在关系型数据库中.你可以存储在一些介质中,比如文件中,像是word文件等,也可以存储在数据库当中,存储在数据库当中,你可以存储各种各样的大量的数据.
1.1.3 数据库的相关概念
- 数据库(database): 即数据存储的仓库,本质上是一个文件系统.他保存了一系列有组织的数据
- 数据库管理系统(database managment system): 也称之为DBMS.是一种操纵和管理数据库的大型软件,用于建立,使用和维护数据库,对数据库进行统一管理和控制.用户通过数据库管理系统访问数据库中表内的数据.
- 结构化查询语言(structured query language): 也称之为SQL.专门用来与数据库通信的语言
1.1.4 数据库与数据库管理系统的关系
数据库管理系统可以管理多个数据库,一般开发人会针对每一个应用创建一个数据库.为保存应用中实体的数据.一般会在数据库创建多个表,以保存程序中实体用户的数据.
1.1.5 常见的数据库介绍
- MySql已经被Oracle收购.
- Oracle是第一个商用的RDBMS(关系型数据库管理系统)
- SQL Sever 大型商业数据库
- DB2 IBM公司的数据库产品,常用在银行系统中
- PostagreSQL 稳定性极强,开源,关系型数据库
- SQLife 嵌入型的小型数据库,应用在手机端
1.1.6 MySQL的详细介绍
- 是一个开放源代码的关系型数据库管理系统
- 是一种关系型数据库管理系统,将数据库存储在不同的表中.而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.
- 支持大型的数据库,可以处理拥有上千万记录的大型数据库
- 64位系统支持最大的表文件为8TB
1.1.7 MySQL的优点
- 体积小,速度快,总体拥有成本低
- 可以处理千万条记录的大型数据库
- 开放源码
1.1.8 RDBMS与非RDBMS
RDBMS实质
- 最古老的数据库类型.关系型数据库模型是把复杂的数据结构归结为简单的二元关系,即二维表格形式.
- 以行(row)和列(column)的形式存储数据,以便于用户理解.这一系列的行和列被称为表(table).一组表组成了一个库(database).
- 表与表之间的数据记录有关系(relationship).现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示.关系型数据库,就是建立在关系模型基础上的数据库.
- SQL就是关系型数据库的查询语言.
RDBMS优势 - 便于复杂查询: 可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询
- 事务支持: 使得对于安全性能很高的数据访问要求得以实现.
非RDBMS实质
可以看成是传统数据库的阉割版本.不需要经过SQL层的解析,性能非常高.同时,通过减少不常用的功能,进一步提高性能.
1.2 关系型数据库设计规则
- 关系型数据库的典型数据结构是
数据表
,这些数据表的组成都结构化的.(Structured) - 将数据放到表中,表再放到库中
- 一个数据库中可以有多个表,每个表都有一个名字.用来标识自己.表名具有唯一性
- 表具有一些特性,这些特性定义了数据在表中如何存储,类似java和python中"类"的设计
1.2.1 表,记录,字段
- E-R(entity-relationship,实体-联系)模型中有三个主要概念:
实体集,属性,联系集
- 一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应数据库表中的一行(row),也称为一条记录(record),一个属性(attribute)对应于数据库表中的一列(column),也称为一个字段(field)
ORM思想(Object Relational Mapping 对象关系映射):
- 数据库中的一个表,与java或Python中的一个类是存在对应关系
- 表中的一条数据和类中的一个对象(实体)对应
- 表中的一个列与类中的一个字段(field)/属性对应
1.2.2 表的关联关系
- 表与表之间的数据记录有关系(relationship).现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示
- 四种;一对一关联,一对多关联,多对多关联,自我引用
一对一关联(one-to-one)
- 在实际开发中应用不多,因为一对一可以创建成一张表
- 举例:设计
学生表
:学号,姓名,手机号,班级,籍贯,家庭住址,紧急联系人.这其中可以进一步拆分成两个表(两个表的记录是一一对应关系).- 拆分为基础信息表和档案信息表.
基础信息表
包括学号,姓名,手机号,班级等.档案信息表
包括学号,身份证号,家庭住址,籍贯等- 在实际开发中,如果一张表涉及到非常多的字段,有些是常用的有些是不常用的,这就需要把一张表拆成两张表,一张表存储常用的字段,另一张表存储不常用的字段
- 两种建表原则.
- 外键唯一,主表的主键和从表的外键(唯一),形成朱外键关系,外键唯一
- 外键是主键:主表的主键和从表的主键,形成主外键关系.
一对多关系(ont-to-many)
- 使用场景:
客户表与订单表
,分类表和商品表
,部门表和员工表
- 举例
- 员工表:编号,姓名…所属部门
- 部门表:编号,名称,简介
- 一对多建表原则:在从表(多放)创建一个字段,字段作为外键指向主表(一方)的主键
多对多(many-to-many)
要表示多对多关系,必须创建第三个表.也称之为链接表
,它将多对关系划分为两个一对多关系,将这两个表的主键都插入到第三个表中.
- 举例:
学生信息表
:一行代表一个学生的信息(学号,姓名,手机号码,班级)课程信息表
:一行代表一个课程的信息(课程编号,授课老师,简介)选课信息表
:一个学生可以选多门课,一门课可以被多个学生选择学生信息表
与课程信息表
就是多对多的关系,他们俩之间本没有关系,但是在第三张表也就是选课信息表
的连接之下,就有了多对多的关系
自我引用(Self reference)
1.3 MySQL的卸载
1.3.1 用cmd看mysql是否安装
基本指令
-
mysql --version
查看版本 -
mysql -uroot -p
进入mysql环境中,由于自己没有设置密码,直接回车进入即可(要将bin加入到环境变量path中) -
show databass
显示可以访问的数据库
安装后有两个位置,一个是软件在你所安装的位置.一个是数据库文件放在了你安装的位置.
其中数据库文件夹的含义
- Data文件夹:对应的就是数据库
- my.ini文件:设置mysql数据库服务器的一些配置信息
1.3.2 设置环境变量
把软件的一直到bin位置的路径添加到环境变量里
1.3.3 查看进程
第一步:右键计算机->点开管理->点开服务和应用程序->查看mysql80
是否在运行
1.3.4 卸载
第一步:停止MySQL服务
在服务里右键把任务停掉
第二步:卸载MySQL文件
通过控制面板,win+R快捷键
输入appwiz.cpl
打开卸载
值得注意的是,数据库文件不会随着软件的删除而删除
第三步:删除数据库文件
找到数据库文件夹所在位置,直接右键删除.(建议先备份.这个就像word文件,照片一样,要备份)
第四步:删除path路径
找到path路径里的MySQL路径,进行删除
(如果还是有问题)第五步:清理注册表
在系统的搜索框里输入regedit
调取注册表.
路径1:\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\MySQL
路径1:\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\eventlog\Application\MySQL
删除整个MySQL文件夹就行了
1.4 MySQL的安装
1.4.1 MySQL的下载
- MySQL community Server 社区版本: 开源免费,自由下载,但不提供官方技术支持.适用于大多数普通用户
- MySQL Enterprise Edition 企业版本: 需付费,不能在线下载,试用三十天.提供了完备的技术支持,适合对数据库的功能和可靠性要求较高的企业客户
- MySQL Cluster 集群版: 开源免费,用于架设集群服务器.可以将几个MySQL Sever封装成一个Sever.需要在社区版或企业版的基础上使用
下载地址: https://www.mysql.com/
最新msi版本路径:
- downloads
- MySQL Community (GPL) Downloads
- MySQL Community Server
- 点击超链接go to download page(不要点下面两个download)
- 里面有两个文件,一个特别小(是在线版),一个很大是离线版文件.下载离线版
- 不需要登录,点击下面的蓝字
历史msi版本路径:
- downloads
- MySQL Community (GPL) Downloads
- MySQL Community Server
- 点击超链接go to download page(不要点下面两个download)
- 点击右侧的Archives
- 选择需要下载的版本进行下载离线版
1.4.2 MySQL的安装
-
双击下载文件
-
选择Custom(自定义)
-
+MySql Servers,再点击+MySQL Sever8.0,再点击+MySQL Sever8.0.33,然后点击→箭头添加
-
点击右侧的MySQL Sever8.0.33- x64文件,然后下面出现蓝色字体Advanced Options,点击
-
(如果c盘没有显示program data这个文件夹,需要点击页面上方的显示隐藏文件夹)设置好安装路径(不要包含中文和中文的空格)
-
然后就是一直next,遇到警告点击yes就可以
-
然后点击excute执行
-
点击next,进行接下来的配置
-
config type类型选择第一个(占用比较少的资源),第二个是占用中等资源,第三个是专门的mysql数据库占用很大的资源
-
tcp/ip 勾选(可以进行远程的服务器连接)
-
port端口号(8.0版本默认的是3306,不要修改)
-
下边的都不用动,next
-
设置root用户的密码(我设置的是abcd1234),点击next
-
因为mysql占用内存非常小,开机自启动勾选上就可以
-
接下来无脑next
1.4.3 配置MySQL的环境变量
- 点击环境变量进行配置
- 点击系统环境变量新建
- 在系统变量里的Path路径下面添加
- 打开cmd,输入
mysql --version
1.4.4 进行登录
输入mysql -uroot -pabcd1234
同一台电脑可以安装不同版本的mysql,但是要注意,端口号不能一样(从0~65535选一个就可以)
1.5 MySQL安装的常见问题
1.5.1 问题一:无法打开MySQL8.0软件安装包或者安装过程中失败
电脑提示: 会提示你缺少了.Net Framework相关软件,如果缺少此软件,将不能正常的安装MySQL8.0软件.
解决方案1: 到他所提供的网址进行下载Microsoft.NetFramework并进行安装,再进行安装MySQL.此外,为了确保windows installer正常安装,windows上安装MySQL8.0需要操作系统提前已经安装好Microsoft Visual C++ 2015~2019
解决方案2: 下载360,对电脑漏洞进行升级也可以(因为这些都是电脑必备的软件)
1.5.2 问题二:卸载重装MySQL失败
问题原因: 通常是因为MySQL卸载时,没有完全清楚相关信息导致的
解决方案: 把之前的安装目录删除.同时删除MySQL的data目录.
1.5.3 问题三:如何在windows系统删除之前的未卸载干净的MySQL服务列表
解决方案: cmd->输入scdelete MySQL服务名
->回车