当前位置: 首页 > news >正文

MySQL 01 02 章——数据库概述与MySQL安装篇

一、数据库概述

(1)为什么要使用数据库

  1. 数据库可以实现持久化,什么是持久化:数据持久化意味着将内存中的数据保存到硬盘上加以“固化”
  2. 持久化的主要作用是:将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中

(2)数据库与数据库管理系统

1.2.1数据库的相关概念

  1. DB,数据库(Database):即存储数据的仓库,其本质是一个文件系统。它保存了一系列有组织的数据
  2. DBMS,数据库管理系统(Database Management System):是一种用于操纵和管理数据的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据
  3. SQL,结构化查询语言(Structured Query Language):专门用来与数据库通信的语言

1.2.2数据库与数据库管理系统的关系

  1. 数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体用户的数据

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

  1. 目前互联网上常见的数据库管理软件有:Oracle、MySQL、MS SQL Server、DB2、PostgreSQL、Access、Sybase、Informix这几种

1.2.4常见的数据库介绍

(3)MySQL介绍

1.3.1概述

  1. MySQL是一个开放源代码的关系型数据库管理系统
  2. MySQL6.x版本之后分为社区版(免费)和商业版(收费)
  3. MySQL可以运行于多个系统上,并且支持多种语言

1.3.2MySQL发展史重大事件

1.3.3关于MySQL 8.0

  1. MySQL从5.7版本直接跳跃发布了8.0版本

1.3.4Why choose MySQL?

  1. 开放源代码,使用成本低
  2. 性能卓越,服务稳定
  3. 软件体积小,使用简单,并且易于维护
  4. 历史悠久,社区用户非常活跃,遇到问题可以寻求帮助
  5. 许多互联网公司在用,经过了时间的验证

1.3.5Oracle vs MySQL

  1. Oracle更适合大型跨国企业的使用。因为他们对费用不敏感,但是对性能要求以及安全性有更高的要求
  2. MySQL由于其体积小、速度快、总体拥有成本低,可处理上千万条记录的大型数据库,尤其是开放源码这一特点,使得很多互联网公司、中小型网站选择了MySQL作为网站数据库

(4)RDBMS与非RDBMS

从排名中我们能看出来,关系型数据库绝对是DBMS的主流,其中使用最多的DBMS分别是Oracle、MySQL和SQL Server。这些都是关系型数据库(RDBMS)

1.4.1关系型数据库(RDBMS)

  1. 关系型数据库模型是把复杂的数据结构归结为简单的二维表格形式
  2. 关系型数据库以行(row)和列(column)的形式存储数据。这一系列的行和列被称为表(table),一组表组成了一个库(database)
  3. 表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系型数据库,就是建立在关系模型基础上的数据库
  4. SQL就是关系型数据库的查询语言
  5. 优势:
    1. 可以用SQL语句方便地在一个表以及多个表之间做非常复杂的数据查询
    2. 使得对于安全性能很高的数据访问要求得以实现

1.4.2非关系型数据库(非RDBMS)

  1. 非关系型数据库,可以看成传统关系型数据库的功能阉割版本,基于键值对存储数据,不需要经过SQL层的解析,性能非常高。同时,通过减少不常用的功能,进一步提高性能
  2. 有哪些非关系型数据库:键值型数据库(Redis)、文档型数据库(MongoDB)、搜索引擎数据库(Elasticsearch)、列式数据库、图形数据库

1.4.3小结

(5)关系型数据库设计规则

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

1.5.1表、记录、字段

  1. E-R(entity-relationship,实体-联系)模型中有三个主要概念是:实体集、属性、联系集
  2. 一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应于数据库表中的一行(row),也称为一条记录(record)。一个属性(attribute)对应于数据库表中的一列(column),也称为一个字段(field)
  3. ORM思想(Object Relational Mapping):
    1. 数据库中的一个表→Java或Python中的一个类
    2. 表中的一条数据→类中的一个对象(实体)
    3. 表中的一个列→类中的一个属性(field)

1.5.2表的关联关系

  1. 表与表之间的数据记录有关系。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示
  2. 表的关联关系有四种:一对一关联、一对多关联、多对多关联、自我引用
  3. 一对一关联:
    1. 在实际的开发中应用不多,因为一对一可以创建成一张表
    2. 举例:设计学生表:学号、姓名、手机号码、班级、系别、身份证号码、家庭住址、籍贯、紧急联系人、......(1)拆为两个表:两个表的记录是一一对应关系(2)基础信息表(常用信息):学号、姓名、手机号码、班级、系别(3)档案信息表(不常用信息):学号、身份证号码、家庭住址、籍贯、紧急联系人、......
  4. 一对多关联:
    1. 常见实例场景:客户表和订单表、分类表和商品表、部门表和员工表
    2. 举例:(1)员工表:员工编号、姓名、...、所属部门(2)部门表:部门编号、名称、简介
  5. 多对多关联:
    1. 要表示多对多关系,必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中
    2. 举例1:学生——课程(1)学生信息表:一行代表一个学生的信息(学号、姓名、手机号码、班级、系别)(2)课程信息表:一行代表一个课程的信息(课程编号、授课老师、简介)(3)选课信息表:一个学生可以选多门课,一门课可以被多个学生选择
    3. 举例2:产品——订单(1)产品表:产品表中的每条记录表示一个产品(2)订单表:订单表中的每条记录表示一个订单(3)订单明细表:每个产品可以与订单表中的多条记录对应,即出现在多个订单中。一个订单可以与产品表中的多条记录对应,即包含多个产品
  6. 自我引用

二、MySQL环境搭建

(1)MySQL的卸载

  1. 步骤一:停止MySQL服务。在卸载之前,先停止MySQL的服务。按键盘上的“Ctrl+Alt+Delete”组合键,打开“任务管理器”对话框,可以在“服务”列表找到MySQL的服务,如果处于“正在运行”状态,可以右键单击它,选择“停止”选项来停止MySQL的服务
  2. 步骤二:软件的卸载(使用控制面板的软件卸载,去卸载MySQL DBMS软件的安装位置D:\MySQL\MySQL Server 8.0)
  3. 步骤三:手动删除数据库文件C:\ProgramData\MySQL\MySQL Server 8.0\Data
  4. 步骤四:清理注册表(win+R,输入regedit)
  5. 步骤五:删除环境变量配置,并重启电脑

(2)MySQL的下载、安装、配置

2.2.1MySQL的四大版本

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

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

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

  4. MySQL Cluster CGE 高级集群版:需付费

2.2.2软件的下载

  1. 下载地址:http://www.mysql.com
  2. 点击DOWNLOADS,下滑,点击MySQL Community (GPL) Downloads
  3. 点击MySQL Community Server
  4. 选择想要下载的版本,点击Go to Download Page超链接
  5. 下载它

2.2.3MySQL8.0版本的安装

  1. 双击下载好的msi(msi下载和配置是一起完成的,如果下载的是zip,还要再进行配置)
  2. 选择Custom,点击next
  3. 选择自己要安装的服务器版本
  4. 选择安装位置,点击Advanced Options超链接
  5. 一直点next,然后点击Execute

2.2.4配置MySQL8.0

  1. 在该界面点击next,再点击next
  2. 加密规则可以不用修改
  3. 设置root用户的密码(比如:123456),设置完点击next
  4. Start the MySQL Server at System Startup表示开机自启,然后一直点next
  5. 点击Execute
  6. 可以看到软件已经安装完成

2.2.5配置MySQL8.0环境变量

  1. 如果不配置MySQL环境变量,就不能在命令行直接输入MySQL登陆命令
  2. 步骤一:右击此电脑,点击属性
  3. 步骤二:在系统窗口中选择高级系统设置
  4. 步骤三:点击环境变量
  5. 步骤四:编辑Path变量
  6. 步骤五:将MySQL应用程序的bin目录添加到变量值中

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

  1. 步骤几乎和8.0版本一致。因为已经下载过8.0版本,此时还想下载5.7版本,我们点击Add。端口号改为13306
  2. 一个电脑中可以下载安装多个MySQL,只要保证进程端口号不同即可
  3. 如果下载了多个MySQL,环境变量只要配一个。如果我们配的是8.0版本,那么
  4. 如果想连接8.0版本
  5. 如果想连接5.7版本

(3)MySQL的登录

2.3.1服务的启动与停止

MySQL安装完毕之后,需要启动服务器进程,不然客户端无法连接数据库

在前面的配置过程中,已经将MySQL安装为Windows服务,并且勾选当Windows启动、停止时,MySQL也自动启动、停止

  1. 方式一:使用图形界面工具(1)右击此电脑,选择“管理”(2)服务和应用程序→服务
  2. 方式二:使用命令行工具(以管理员身份运行)。必须先启动服务,才能登录成功

2.3.2自带客户端的登录与退出

  1. 登陆方式1:MySQL自带客户端
  2. 登陆方式2:windows命令行
  3. -u后面可以有空格,-p后面不能有空格
  4. windows命令行登录mysql还可以这么写(推荐使用该方式):
  5. 不加-P端口号时,默认登陆的是环境变量配置的MySQL版本

2.3.3退出登录和查看版本信息

  1. 退出登录:quit或exit
  2. 查看版本信息(两种方式:先登录再查看,直接查看): 

(4)MySQL演示使用

2.4.1MySQL的使用演示

  1. 显示数据库
  2. 创建数据库
  3. 创建表,必须在库之下
  4. 查看表中的数据
  5. 向表中插入数据
  6. 在5.7版本中添加中文会报错,但是在8.0版本中添加中文不会报错(因为8.0版本的字符集是utf8)

2.4.2MySQL的编码设置

  1. 查看编码命令:
  2. 修改mysql的数据目录下的my.ini配置文件,修改完以后要重启服务才会生效
  3. 可以看到修改成功,此时在5.7版本下,也可以添加中文数据

(5)MySQL图形化管理工具

2.5.1MySQL Workbench

  1. 下载地址:http://dev.mysql.com/downloads/workbench/
  2. 连接MySQL
  3. 以登录5.7版本为例

2.5.2Navicat

  1. 下载地址:http://www.navicat.com/

2.5.3SQLyog

2.5.4dbeaver

  1. 下载地址:https://dbeaver.io/download/

(6)MySQL目录结构与源码

2.6.1主要目录结构

  1. MySQL的主要目录结构:
    MySQL的目录结构说明
    bin目录所有MySQL的可执行文件。如:mysql.exe
    MySQLInstanceConfig.exe数据库的配置向导,在安装时出现的内容
    data目录系统数据库所在的目录
    my.ini文件MySQL的主要配置文件
    C:\ProgramData\MySQL\MySQL Server 8.0\Data\用户创建的数据库所在的目录

2.6.2MySQL源代码获取

该笔记根据尚硅谷的MySQL课程整理

相关文章:

MySQL 01 02 章——数据库概述与MySQL安装篇

一、数据库概述 (1)为什么要使用数据库 数据库可以实现持久化,什么是持久化:数据持久化意味着将内存中的数据保存到硬盘上加以“固化”持久化的主要作用是:将内存中的数据存储在关系型数据库中,当然也可以…...

运行framework7

安装 framework7 下载地址https://gitcode.com/gh_mirrors/fr/framework7-vue node 下载 https://nodejs.cn/#ionic 配置npm 的镜像源 npm config set registry https://registry.npmmirror.com 下载nvm 进行nvm管理https://www.downza.cn/soft/352547.html 我一开始使用node…...

【Web】软件系统安全赛CachedVisitor——记一次二开工具的经历

明天开始考试周,百无聊赖开了一把CTF,还顺带体验了下二开工具,让无聊的Z3很开心🙂 CachedVisitor这题 大概描述一下:从main.lua加载一段visit.script中被##LUA_START##(.-)##LUA_END##包裹的lua代码 main.lua loca…...

实现自定义集合类:深入理解C#中的IEnumerable<T>接口

文章目录 介绍主要成员示例代码约束常见的约束类型示例代码介绍 在C#中,IEnumerable<T> 是一个泛型接口,用于表示可以被枚举的集合。它定义了用于遍历集合中元素的方法和属性。IEnumerable<T> 是 IEnumerable 的泛型版本,提供了类型安全的枚举功能。 当我们实…...

Compression Techniques for LLMs

Compression Techniques for LLMs 随着大型语言模型&#xff08;LLMs&#xff09;的迅速发展&#xff0c;提高其计算效率和存储效率成为研究的重要方向。为了实现这一目标&#xff0c;诸多压缩技术应运而生。本文将深入探讨几种有效的压缩技术&#xff0c;这些技术不仅能够降低…...

Nexus Message Transaction Services(MTS)

Nexus 系列交换机遇到以下情形时&#xff0c;可以尝试查看是否是 MTS 消息卡在缓冲区过多&#xff0c;因为 MTS 负责处理模块内以及跨模块&#xff08;包括跨管理引擎&#xff09;的各服务之间的消息路由和排队。 • CPU 高 • 命令行无响应、响应慢 • 控制平面中断 • 流量问…...

2025年Stable Diffusion安装教程(超详细)

StableDiffusion的安装部署其实并不困难&#xff0c;只需简单点击几下&#xff0c;几分钟就能安装好&#xff0c;不管是windows还是苹果mac电脑&#xff0c;关于StableDiffusion的各种安装方式&#xff0c;这片文章一一来给大家讲明白。&#xff08;所有安装资料都给大家整理好…...

力扣【SQL连续问题】

180. 连续出现的数字 SELECT DISTINCT if(a.num b.num AND b.num c.num,a.num,null) AS ConsecutiveNums FROM Logs a LEFT OUTER JOIN Logs b ON a.id1 b.id LEFT OUTER JOIN Logs c ON a.id2 c.id WHERE if(a.num b.num AND b.num c.num,a.num,null) IS NOT NULL603. 连…...

深圳市-地铁线路和站点名称shp矢量数据(精品)2021年-2030最新arcmap含规划路线内容测评分析

深圳市的地铁网络是城市公共交通系统的重要组成部分&#xff0c;随着城市的发展&#xff0c;其规模和覆盖范围也在不断扩大。这份"深圳市-地铁线路和站点名称shp矢量数据&#xff08;精品&#xff09;2021年-2030最新arcmap含规划路线.zip"压缩包提供了全面而详细的信…...

企业级网络运维管理系统深度解析与实践案例

企业级网络运维管理系统深度解析与实践案例 在当今这个信息化时代,企业网络系统的稳定运行和高效管理成为了业务持续发展和创新的关键。企业级网络运维管理系统作为支撑这一目标的基石,其重要性不言而喻。本文将深入探讨企业级网络运维管理系统的构建原则、关键组件、实施步…...

音视频入门基础:MPEG2-PS专题(5)——FFmpeg源码中,解析PS流中的PES流的实现

一、引言 从《音视频入门基础&#xff1a;MPEG2-PS专题&#xff08;3&#xff09;——MPEG2-PS格式简介》中可以知道&#xff0c;PS流由一个个pack&#xff08;包装&#xff09;组成。一个pack 一个pack_header 一个或多个PES_packet。pack_header中还可能存在system header…...

【问题记录】npm create vue@latest报错

1&#xff0c;错误日志 npm error code EPERM npm error syscall mkdir npm error path D:\Program Files\nodejs\node_cache\_cacache npm error errno EPERM npm error FetchError: Invalid response body while trying to fetch https://registry.npmjs.org/create-vue: EP…...

OpenGL材质系统和贴图纹理

上一篇文章当中笔者为大家介绍了风氏光照模型&#xff0c;相信大家也发现了光照着色器当中有设置有很多控制光照强度的参数&#xff0c;而所谓的材质系统就是我们可以人为的去调节这些参数&#xff0c;让一个物体的反光效果能够更加接近我们现实生活当中的一些物体。 材质系统…...

Markdown中类图的用法

Markdown中类图的用法 前言语法详解基本流程图几何图形节点默认的节点分离节点的ID与内容节点形状圆角形节点的语法圆形节点的语法。非对称节点语法菱形节点的语法。六角形节点的语法。平行四边形节点的语法。梯形节点的语法。 连接线基本的连接线语法。无向线段连接线。点状连…...

钓鱼攻击(Phishing)详解和实现 (网络安全)

钓鱼攻击&#xff08;Phishing&#xff09;详解和实现 钓鱼攻击是一种社会工程学攻击&#xff0c;攻击者通过伪装成可信任的实体诱使受害者泄露敏感信息&#xff0c;如用户名、密码、信用卡号等。以下详细介绍钓鱼攻击的原理、种类、实现方式&#xff0c;以及防御措施。 一、钓…...

window11 wsl mysql8 错误分析:1698 - Access denied for user ‘root‘@‘kong.mshome.net‘

&#x1f6a8; 错误分析&#xff1a;1698 - Access denied for user rootkong.mshome.net 这个错误是因为 MySQL 的 root 用户 使用 auth_socket 插件进行身份验证&#xff0c;而不是使用密码。因此&#xff0c;当你尝试从 远程主机 连接时&#xff0c;MySQL 会拒绝访问。 ✅ …...

C++线程同步之条件变量

C线程同步之条件变量 文章目录 C线程同步之条件变量什么是条件变量&#xff08;Condition Variable&#xff09;&#xff1f;条件变量的主要用途常见的应用场景C11中的条件变量condition_variable的使用方法std::condition_variable的使用步骤典型的使用示例&#xff1a;生产者…...

如何实现多条件搜索

我们先来看多条件查询的样式是什么样的&#xff01; 给查询按钮添加点击事件&#xff0c;然后获取到对应输入框中的值 然后通过filter过滤&#xff0c;对获取到的数据进行筛选 &#xff0c;然后调用渲染函数将过滤搜索到的数据在页面中显示出来。 这就是进行多条件搜索出来的效…...

深入MySQL复杂查询优化技巧

在上一篇文章中&#xff0c;我们介绍了 MySQL 的关联关系理论与基础实践。本篇文章将进一步探讨 MySQL 复杂查询的优化技巧&#xff0c;帮助开发者应对大型数据集和高并发场景中的性能挑战。我们将涵盖索引设计、查询计划分析、分区技术以及事务管理的优化。 一、索引优化 索引…...

Fabric环境部署-Git和Node安装

一.安装Git&#xff08;v2.43.0&#xff09; Git 是一个开源的分布式版本管理系统&#xff08;也是全球最大的开源软件存储服务器&#xff09;&#xff0c;用于敏捷高效地处理任何或小或大的项目。搭建区块链需要使用Git&#xff0c;因为区块链的开发和部署需要使用版本控制工…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...