MySQL数据库入门

MySQL数据库概述

  • 1,为什么要使用数据库
  • 2,数据库的相关概念
  • 3,常见的数据库管理系统
  • 4,MySQL介绍
  • 5,关系型数据库和非关系型数据库
  • 6,关系型数据库的设计规则
  • 7,表的关联关系
    • 7.1,一对一
    • 7.2,一对多
    • 7.3,多对多
    • 7.4,自我引用

1,为什么要使用数据库

使用数据库是为了对数据进行持久化。 若数据只存储在内存中,断电即失效。因此需要对数据进行持久化,常见的持久化方式如下:

  • 存储数据到文件(如:.doc、.java…)
  • 存储数据到数据库
  • 其他(如XML文件)

数据库可以存储海量的数据,并且可以存储很复杂的数据,因此具有突出优势。


2,数据库的相关概念

  • DB:数据库(DataBase)即存储数据的仓库,保存了一系列有组织的数据;
  • DBMS:数据库管理系统(DataBase Management System)是一种操纵和管理数据库的大型软件;
  • SQL:结构化查询语言(Structured Query Language),专门用来与数据库通信的语言。

3,常见的数据库管理系统

常见的主流数据库管理系统有:Oracle,MySQL,Microsoft SQL Server,Redis,MongoDB…

(当前排名如图所示,链接: https://db-engines.com/en/ranking)
在这里插入图片描述


4,MySQL介绍

请添加图片描述

  • MySQL是一个开源的关系型数据库管理系统,有体积小、速度快、成本低的优点;
  • MySQL两个里程碑式版本是5.7和8.0,目前5.7应用较为广泛;
  • MySQL 8.0是继5.7之后的又一里程碑版本,在功能上做出了显著的改进和增强;

5,关系型数据库和非关系型数据库

数据库管理系统可分为 关系型(RDBMS)非关系型(非RDBMS)。从数据库排名中可以看出关系型是DBMS的主流类型。
在这里插入图片描述

理解关系型数据库和非关系型数据库:

关系型数据库: 将复杂的数据结构归结为简单的二元关系(即二维表格形式),使用行和列的形式存储数据,以便用户理解;一系列的行和列被称为表(表与表之间的数据记录有关系),一组表组成一个库。SQL就是是关系型数据库的查询语言。

非关系型数据库:可以看作关系型数据库的阉割版本,通过减少一些不常用的功能,进一步提高性能。


6,关系型数据库的设计规则

  • 关系型数据库的典型数据结构是数据表,这些数据表的组成都是结构化的;
  • 数据放到表中,表再放到库中;
  • 数据库中多个表通过表名进行区分,数据库表名具有唯一性

  • 此外, 数据库表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和python中的 “类” 的设计。如下图:
    在这里插入图片描述
    ① 数据库中的一个表(table)对应Java或Python中的一个实体集(class);
    ② 数据库表中的一行(row)对应Java或Python中的一个实体(instance)或对象;
    ③ 数据库表中的一列(column),对应Java或Python中的一个属性(field)或字段;

    此即为编程领域著名的的ORM(对象关系映射)思想的体现。


7,表的关联关系

表与表之间的数据记录有关系。可分为四种:一对一、一对多、多对多、自我引用。


7.1,一对一

一对一关联,即表A中的一条记录对应表B中的一条记录。

举例:设计学生表:学号、姓名、手机号、班级、身份证号、住址、籍贯、紧急联系人…

  • 分为两个表,两个表中的记录为一一对应的关系。
  • 基础信息表 存放常用信息:学号、姓名、手机号、班级;
  • 档案信息表 存放不常用信息:学号、身份证号、住址、籍贯、紧急联系人…

一对一关联在实际开发中应用较少,因为分成两张表存在冗余信息,根据具体情况可以聚合所有字段创建成一张表。


7.2,一对多

一对多关联,即表A中的一条记录对应表B中的多条记录。

举例:客户表和订单表,分类表和商品表、部门表和员工表。

  • 一个客户可以对应多个订单;一个分类下可以有多种商品;一个部门里可以有多个员工;
  • 员工表:员工编号、姓名、…所属部门;
  • 部门表:部门编号、部门名称、部门简介;

7.3,多对多

要表示多对多关系,必须创建第三个表,该表通常称为联接表,联接表将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。如下图所示:
在这里插入图片描述

举例1:学生-课程 关系

  • 学生信息表:一行代表一个学生的信息(学号、姓名、手机号、班级);
  • 课程信息表:一行代表一个课程的信息(课程编号、授课老师、课程简介)
  • 选课信息表:此表作联接表。一个学生可以选择多门课程,一门课程可以对应被多个学生选择。
    在这里插入图片描述

举例2:产品-订单 关系

  • 订单表和产品表有一种多对多的关系。这种关系是通过与订单明细表建立两个一对多关系来定义的。一个订单可以有多个产品,每个产品可以出现在多个订单中。
  • 产品表中每条记录对应一个产品;订单表中每条记录对应一个订单;
  • 订单明细表:每个产品可以与订单表中的多条记录对应,即出现在多个订单中。一个订单可以与产品表中的多条记录对应,即包含多个产品。
    在这里插入图片描述

7.4,自我引用

如下图例子所示,104号和105号员工的主管是103号员工(103号员工是员工,也担任主管)。
在这里插入图片描述

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

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

相关文章

【c/python】GtkBox

一、GtkBox及C语言示例 GtkBox是一个容器部件,用于在GTK(GIMP Toolkit)应用程序中水平或垂直地排列多个子部件。以下是一个简单的例子,展示了如何在一个基本的GTK应用程序中使用GtkBox来垂直排列两个按钮: 首先&#…

网络安全全栈培训笔记(60-服务攻防-中间件安全CVE复现WeblogicJenkinsGlassFish)

第60天 服务攻防-中间件安全&CVE复现&Weblogic&Jenkins&GlassFish 知识点: 中间件及框架列表: lIS,Apache,Nginx,Tomcat,Docker,Weblogic,JBoos,WebSphere,Jenkins, GlassFish,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Sprng,Flask,jQuery 1、中间件-Web…

Python 数据分析(PYDA)第三版(二)

原文:wesmckinney.com/book/ 译者:飞龙 协议:CC BY-NC-SA 4.0 四、NumPy 基础知识:数组和向量化计算 原文:wesmckinney.com/book/numpy-basics 译者:飞龙 协议:CC BY-NC-SA 4.0 此开放访问网络版…

混合攻击流量对系统安全性的综合评估

很多针对安全设备的测试仅仅针对安全设备本身的防护,比如防御的漏洞攻击行为、恶意代码是否足够多,能否抵御大流量的L23层DDoS或者应用层的DDoS攻击,却没有考虑是否防御攻击时,一并阻止了正常的业务流量。以下图为例,当…

【动态规划】【C++算法】1335 工作计划的最低难度

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 LeetCode1335. 工作计划的最低难度 你需要制定一份 d 天的工作计划表。工作之间存在依赖,要想执行第 i 项工作,你必须完成全部 j 项工作&am…

STM32控制DHT11温湿度传感器模块获取温湿度数据

时间记录:2024/1/29 一、DHT11引脚介绍 (1)VCC:电源引脚,3.3-5.5V (2)DATA:数据输入输出引脚 (3)NC:保留引脚,悬空即可 (…

思科交换机调试流程介绍(主要适用于OEM的思科的浪潮FS6700)

文章目录 1、光纤交换机配置流程2、交换机初始化 2-1、 默认管理地址 2-2、 更改默认管理地址 2-3、 远程登录模式 2-4、 更改用户名 3、VSAN 3-1、什么是VSAN 3-2、关于 VSAN 的一些主意事项 3-3、配置VSAN 3-4、配置验证…

获取真实 IP 地址(二):绕过 CDN(附链接)

一、DNS历史解析记录 DNS 历史解析记录指的是一个域名在过去的某个时间点上的DNS解析信息记录。这些记录包含了该域名过去使用的IP地址、MX记录(邮件服务器)、CNAME记录(别名记录)等 DNS 信息。DNS 历史记录对于网络管理员、安全研…

Multisim14.0仿真(四十四)基于74LS148的8路呼叫器设计

一、74LS148简介: 74LS148是一款具有扩展功能的8-3线优先编码器,有8个信号输入端、3个二进制码输出端、1个输入使能源端、1个选择输出端和1个扩展端。 二、74LS148工作原理 74LS148有8个信号输入端,3个二进制码输出端、输入使能EI、输出使能EO和优先代码工作状态标志GS。EI…

matlab|【EI复现】日前日内多阶段多时间尺度源荷储协调调度

目录 一、模型 二、程序运行 三、下载链接 多阶段多时间尺度的协调调度的优势是考虑新能源出力的波动性与随机性,减少需求响应负荷的不确定性对电网制定的日前调度计划准确性造成的影响,也就是能够更加精准的进行调度和分析,优化结果的可用…

vio参数文件内相机imu参数的修改

imu标定工具 https://github.com/mintar/imu_utils网络上有各种IMU校准工具和校准教程,曾经花费了巨大精力跟着各种教程去跑校准。 然而,标定使用的数据都是在静止状态下录制的,我们在使用vio或者imu-cam联合标定的时候,imu确是处…

机器学习_14_多分类及多标签分类算法

文章目录 1 单标签二分类问题1.1 单标签二分类算法原理1.2 Logistic算法原理 2 单标签多分类问题2.1 单标签多分类算法原理2.2 Softmax算法原理2.3 ovo2.4 ovr2.5 OvO和OvR的区别2.6 Error Correcting 3 多标签算法问题3.1 Problem Transformation Methods3.1.1 Binary Relevan…