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

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

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

相关文章

Vue3 组件

文章目录 Vue3 组件概述根组件定义和使用组件样式控制全局样式局部样式深度样式 Vue3 组件 概述 组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构: 根…

怎么在家访问公司服务器?

在日常工作中,特别是对信息技术从业者而言,工作往往离不开公司的服务器。他们需要定期访问服务器,获取一些关键的机密文件或数据。如果您在家办公,并且需要处理未完成的任务,同时需要从公司服务器获取所需的数据&#…

IP-Guard对SolidWorks PDM 加密授权说明

SolidWorks PDM 加密授权说明 一、简介 该功能主要实现了,在SolidWorks Enterprise PDM环境下,可以正常"检入"和"检出" 加密文件,并可以正常预览加密文件。 二、操作说明 2.1 设置加密授权 安装客户端后,登录控制台,选择客户端计算机或组右键选择“…

AI 助力游戏开发中的常用算法实现

在当今的游戏开发领域,人工智能(AI)技术的应用已经成为推动行业发展的关键力量。AI不仅能够提升游戏的智能化水平,还能够增强玩家的沉浸感和游戏体验。随着技术的进步,AI在游戏设计、开发和测试中的应用越来越广泛&…

重现ORA-01555 细说Oracle Undo 数据管理

1. 概述 1.1. Undo 数据应用 undo数据是: 原始的、修改之前的数据副本 是针对更改数据的每个事务处理所捕获的 至少保留到事务处理结束 用于支持: 回退操作 读取一致性查询 闪回查询、闪回事务处理和闪回表 从失败的事务处理中进行恢复 1.2. 事…

Java 集合 Collection、List、Set

一. Collection 单列集合 1. Collection代表单列集合,每个元素(数据)只包含一个值 2. Collection集合特点 ① List系列集合:添加的元素是有序、可重复、有索引。 ArrayList、LinekdList:有序、可重复,有索引 ② Set系列集合&…

wamp php7.4 运行dm8

背景 1、电脑安装了dm8,具体参照官网dm8安装 2、安装好了wamp,我当前的php版本切换成了7.4的,我wamp的安装路径d:\wamp64\ 操作 3、查看phpinfo,如果Thread Safet为enabled,则选择pdo74_dm.dll,否则选择…

linux 系统 mysql :8.4.3 主从复制 教程及运维命令

一、环境准备 硬件配置CPU2 核 CPU内存2 GB 内存硬盘30 GB 硬盘容量外网访问服务器可以访问外网软件环境操作系统Anolis OS 7.9MySQL版本8.4.3 二、服务器清单 Master192.168.153.221Node192.168.153.222 三、安装mysql (两台机器都要下载) # 下载 …

UE5材质节点Camera Vector/Reflection Vector

Camera Vector相机向量,输出像素到相机的方向,结果归一化 会随着相机移动而改变 Reflection Vector 反射向量,物体表面法线反射到相机的方向,x和y和camera vector相反 配合hdr使用

复合机器人正以其高效、精准、灵活的特点,逐渐在汽车装配线上崭露头角

随着全球汽车制造业的快速发展,汽车装配线已成为衡量企业生产效率和技术水平的重要标准。传统的装配方式往往依赖于大量的人工操作,这不仅效率低下,还面临着质量不稳定、安全隐患等问题。然而,随着智能科技的飞速进步,…

导致启动nacos报错Caused by: java.lang.IllegalStateException: No DataSource set 的两种原因

Java资深小白,不足之处,或者有任何错误欢迎指出。 --蓝紫报错代码如下: C:\Windows\System32>cd D:\nacos-server-2.2.3\nacos\binC:\Windows\System32>d:D:\nacos-server-2.2.3\nacos\bin>startup.cmd -m standalone "nacos is starting…

LinuxUbuntu打开VSCode白屏解决方案

解决方法是 以root权限打开VSCode sudo /usr/share/code/code --no-sandbox --unity-launch

C语言期末复习笔记(下)

目录 九、指针 1.指针变量的定义和初始化 2.间接寻址符* 3.按值调用和按址调用 4.实例 5.函数指针 6.指针变量和其它类型变量的对比 十、字符串 1.字符串常量 2.字符串的存储 3.字符指针 4.字符串的访问和输入/输出 5.字符串处理函数 (1)str…

1、蓝牙打印机环境搭建

本项目采用stm32f103c8T6芯片,通过库函数实现打印功能,并配置有小程序蓝牙通信上位机。 1、创建文件夹目录 core文件夹存放核心库文件 LIB文件夹存放标准库函数文件 这里可以删减,用不到的可以不要。 obj存放编译后的文件 project存放项目…

多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测

多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入…

Leecode刷题C语言之切蛋糕的最小总共开销②

执行结果:通过 执行用时和内存消耗如下: typedef struct {int *booked;int bookedSize; } MyCalendar;#define MAX_BOOK_SIZE 1001MyCalendar* myCalendarCreate() {MyCalendar *obj (MyCalendar *)malloc(sizeof(MyCalendar));obj->booked (int *)malloc(siz…

力扣-数据结构-10【算法学习day.81】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关…

Vue 全局事件总线:Vue 2 vs Vue 3 实现

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

基于Spring Boot的电影网站系统

一、技术架构 后端框架:Spring Boot,它提供了自动配置、简化依赖管理、内嵌式容器等特性,使得开发者可以快速搭建起一个功能完备的Web应用。 前端技术:可能采用Vue.js、JS、jQuery、Ajax等技术,结合Element UI等组件库…

DeepSpeed训练得到checkpoint如何像Huggingface模型一样评测evaluation?zero_to_fp32.py有什么用?怎么用?

DeepSpeed训练得到checkpoint如何像Huggingface模型一样评测evaluation? 具体步骤 首先看一个样例: 这是我用open-instruct框架,使用DeepSpeed训练1728个steps得到的一个checkpoint。请注意,下文我演示用的例子是基于step_1152&…