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

news2025/1/6 8:53:12

一、数据库概述

(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课程整理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2270844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OLED的显示

一、I2C I2C时序:时钟线SCL高电平下:SDA由高变低代表启动信号,开始发送数据;SCL高电平时,数据稳定,数据可以被读走,开始进行读操作,SCL低电平时,数据发生改变&#xff1…

Java高频面试之SE-08

hello啊,各位观众姥爷们!!!本牛马baby今天又来了!哈哈哈哈哈嗝🐶 成员变量和局部变量的区别有哪些? 在 Java 中,成员变量和局部变量是两种不同类型的变量,它们在作用域…

3blue1brow线代笔记

向量 物理:空间中的箭头,长度和方向决定一个向量。只要两者相同,可以任意移动保持不变 计算机:有序的数字列表 (数组) 数学:向量可以是任何东西,只要保证两个向量相加以及数字与向量…

开源的Vue低代码表单设计器 form-create-designer v3.2.9 版本发布,新增10多种功能

form-create-designer 是一款开源的低代码表单设计器,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。并广泛应用于在政务系统、OA系统、ERP系统、电商系统、流程管理等领域。 项目采…

告别编程困惑:GDB、冯诺依曼、操作系统速通指南

🌟 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。🌟 🚩用通俗易懂且不失专业性的文字,讲解计算机领域那些看似枯燥的知识点🚩 目录 前言 一…

Jenkins 中自动化部署 Spring Boot 项目

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的全栈工程师 欢迎分享 / 收藏 / 赞 / 在看…

cesium小知识:常见的20多种property详解

要详细解释 Cesium 中所有的 Property 类,内容确实会非常丰富且详尽。 Property 基础 Property 是 Cesium 中用于表示随时间或条件变化的值的基础类。它允许你定义属性值如何根据时间、用户交互或其他逻辑动态改变。Property 的设计使得你可以创建复杂的动画和交互效果,而…

PCL点云库入门——PCL库点云特征之点云法向量(NormalEstimation)及其可视化

1、PCL点云库中点云特征综述 1.1、点云特征综述 点云特征描述在三维数据处理领域扮演着至关重要的角色,它直接决定了后续的识别、分类以及重建等关键任务的执行效果。在众多的特征描述方法中,我们可以看到基于几何形状的特征、基于统计信息的特征以及…

【《python爬虫入门教程11--重剑无峰168》】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 【《python爬虫入门教程11--selenium的安装与使用》】 前言selenium就是一个可以实现python自动化的模块 一、Chrome的版本查找?-- 如果用edge也是类似的1.chrome…

C++之map和set的模拟实现

目录 引言 红黑树迭代器实现 红黑树元素的插入 map模拟实现 set模拟实现 之前我们已经学习了map和set的基本使用,但是因为map和set的底层都是用红黑树进行封装实现的,上期我们已经学习了红黑树的模拟实现,所以本期我们在红黑树模拟实现…

黑马JavaWeb开发跟学(十四).SpringBootWeb原理

黑马JavaWeb开发跟学 十四.SpringBootWeb原理 SpingBoot原理1. 配置优先级2. Bean管理2.1 获取Bean2.2 Bean作用域2.3 第三方Bean 3. SpringBoot原理3.1 起步依赖3.2 自动配置3.2.1 概述3.2.2 常见方案3.2.2.1 概述3.2.2.2 方案一3.2.2.3 方案二 3.2.3 原理分析3.2.3.1 源码跟踪…

十二、Vue 路由

文章目录 一、简介二、安装与基本配置安装 Vue Router创建路由实例在应用中使用路由实例三、路由组件与视图路由组件的定义与使用四、动态路由动态路由参数的定义与获取动态路由的应用场景五、嵌套路由嵌套路由的概念与配置嵌套路由的应用场景六、路由导航<router - link>…

【C++笔记】红黑树(RBTree)深度剖析和AVL树的对比分析

【C笔记】红黑树(RBTree)深度剖析和AVL树的对比分析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】红黑树(RBTree)深度剖析和AVL树的对比分析前言一.红黑树的定义1.1 红黑树的概念1.2红黑树的规则1.3 红黑树对比A…

grouped.get_group((‘B‘, ‘A‘))选择分组

1. df.groupby([team, df.name.str[0]]) df.groupby([team, df.name.str[0]]) 这一部分代码表示对 DataFrame df 按照 两个条件 进行分组&#xff1a; 按照 team 列&#xff08;即团队&#xff09;。按照 name 列的 首字母&#xff08;df.name.str[0]&#xff09;。 df.name.s…

计算机毕设-基于springboot的食品厂管理系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍&#xff1a;✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围&#xff1a;Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

【Ubuntu20.04】Apollo10.0 Docker容器部署+常见错误解决

官方参考文档【点击我】 Apollo 10.0 版本开始&#xff0c;支持本机和Docker容器两种部署方式。 如果您使用本机部署方式&#xff0c;建议使用x86_64架构的Ubuntu 22.04操作系统或者aarch64架构的Ubuntu 20.04操作系统。 如果您使用Docker容器部署方式&#xff0c;可以使用x…

Java项目实战II基于小程序的驾校管理系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着汽车保有量的不断增长&#xff0c;驾驶培训市场日…

基于STM32F103的USART的原理及应用(一)(实现手机BLE和MCU进行通信)

一&#xff0c;查阅数据手册&#xff0c;找到对应的IO口和外设总线并配置好外设源文件 想了解USART的具体原理的小伙伴请进传送门&#xff1a;&#xff08;总结&#xff09;STM32中USART原理及应用&#xff08;PC、BLE、ESP8266通信实现&#xff09;-CSDN博客 二&#xff0c;打…

C#实现画图,及实现图像运动,C#中GDI+图形图像技术(Graphics类、Pen类、Brush类)C#之快速入门GDI+绘图 C#实现快速画图功能

下载源码 <-------- 在C#的世界里&#xff0c;GDI如同一位多才多艺的艺术家&#xff0c;以其强大的绘图能力&#xff0c;让开发者能够轻松地在应用程序中挥洒创意&#xff0c;绘制出丰富多彩的图形世界。GDI不仅支持基本的几何图形绘制&#xff0c;还能处理复杂的图像处理任…

Python应用指南:高德交通态势数据

在现代城市的脉络中&#xff0c;交通流量如同流动的血液&#xff0c;交通流量的动态变化对出行规划和城市管理提出了更高的要求。为了应对这一挑战&#xff0c;高德地图推出了交通态势查询API&#xff0c;旨在为开发者提供一个强大的工具&#xff0c;用于实时获取指定区域或道路…