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.mzph.cn/news/665232.shtml

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

相关文章

短剧小程序开发:打造高效、便捷的娱乐体验

随着移动互联网的普及和用户需求的多样化,短剧小程序作为一种新型的应用形态,逐渐受到了广大用户的青睐。短剧小程序开发旨在为用户提供一种高效、便捷的娱乐体验,让用户在忙碌的生活中轻松享受到精彩的短剧内容。本文将探讨短剧小程序开发的…

0203-2-输入输出系统

第六章:输入输出系统 I/O系统的功能,模型和接口 I/O系统管理的对象是I/O设备和相应的设备控制器。 I/O系统的基本功能 隐藏物理设备的细节与设备的无关性提高处理机和I/O设备的利用率对I/O设备进行控制确保对设备的正确共享错误处理 I/O软件的层次结…

Vite与Webpack打包内存溢出问题优雅处理方式

Vite与Webpack打包内存溢出问题处理 文章目录 Vite与Webpack打包内存溢出问题处理1. Vite1. 打包错误提示2. 命令行方式解决3. 配置环境变量方式解决1. 设置变量2. 配置系统的环境变量 2. Webpack1. 打包错误提示2. 命令行方式解决3. 配置环境变量方式解决1. 设置变量2. 配置系…

【DDD】学习笔记-什么是模型

从领域驱动的战略设计进入战术设计,简单说来,就是跨过系统视角的限界上下文边界进入它的内部,从分层架构的逻辑分层进入到每一层的内部。在思考内部的设计细节时,首先需要思考的问题就是:什么是模型(Model&…

NETX90-多协议通讯芯片

随着作为信息物理系统核心技术的工业物联网的发展,Hilscher 基于 netX 51/52成功开发了新一代网络控制器netX90,其安全性是产品的核心价值。可实现更高性能的集成,并提高功率效率等级,凭借其较小的外形尺寸能够满足规格尺寸更小的…

css新手教程

css新手教程 课程:14、盒子模型及边框使用_哔哩哔哩_bilibili 一.什么是CSS 1.什么是CSS Cascading Style Sheet 层叠样式表。 CSS:表现(美化网页) 字体,颜色,边距,高度,宽度&am…

Linux信号详解~

目录 前言 一、初识信号 二、信号的概念 三、信号的发送与捕捉 3.1 信号的发送 3.1.1 kill 命令 3.1.2 kill 函数 3.1.3 raise函数 3.1.4 abort函数 3.2 信号的捕捉 3.2.1 signal函数 3.2.2 sigaction函数 3.2.3 图示 四、信号的产生 4.1 硬件异常产生信号 4.2 …

CMake Msys2 搭配vscode

(一)MSYS2介绍 MSYS2(Minimal SYStem 2)是一个集成了大量的GNU工具链、工具和库的开源软件包集合。它提供了一个类似于Linux的shell环境,可以在Windows系统中编译和运行许多Linux应用程序和工具。 MSYS2基于MinGW-w64平台,提供了…

Linux---进程间通信 | 管道 | PIPE | MKFIFO | 共享内存 | 消息队列

管道 管道是UNIX中最古老的进程间通信的形式,我们把从一个进程连接到另一个进程的数据流称为一个管道。 一个文件,可以被多个进程打开吗?可以,那如果一个进程打开文件,往文件里面写数据,另一个进程打开文…

MySQL 中 int(1) 和 int(10) 会影响存储的长度吗

一、MySQL 中 int(1) 和 int(10) 在MySQL数据库设计中,经常会遇到 int 类型的字段,并会习惯性的指定长度,比如: int(1) 和int(10),而一些新手可能会误解它们之间的关系,认为 int(10) 能够存储更多的数据。…

Android Camera2 API 后台服务

最近在搞CameraAPP需要将Camera2弄成一个后台服务,发现跟预览的Activity没多大变动只是加了Service,和一些简单的修改。之前的公司也用到Camera2,发现用到的时候还是蛮多的所以记录一下,代码在文章末尾 camera2的结构如下&#x…

Peter算法小课堂—Dijkstra最短路算法

大家好,我们人见人爱、花见花开、车见车爆胎的Peter Pan来啦,hia~hia~hia。今天,我们今天来学习毒瘤的最短路算法啦。啊这……什么是Dijkstra算法?长文警告⚠ 正经点啊 手算样例 大家思考一下,你在手算样例的时候&am…

企业申请sectigo ip https证书

Sectigo(原名Comodo,在整合https证书业务后改名为Sectigo)是一家知名的数字证书提供商,拥有多种类型的数字证书,例如单域名https证书、多域名https证书、通配符https证书、IP https证书和代码签名证书等满足各类用户的…

2024022期传足14场胜负前瞻

2024022期赛事由英超4场,德甲2场、意甲4场、西甲4场组成。售止时间为2月4日(周日)19点00分,敬请留意: 本期中深盘较多,1.5以下赔率3场,1.5-2.0赔率7场,其他场次是平半盘、平盘。本期…

TCP 协议的相关特性

1. TCP格式 TCP特性:有连接,全双关,面向字节流,可靠传输。(TCP安身立命的本钱,初心就是解决“可靠传输”问题) 其实TCP的特征有很多这里我就简单的介绍几个。 2. 确认应答 其实用来确保可靠性&…

Java并发基础:CountDownLatch全面解析!

内容概要 CountDownLatch的优点在于能够简洁高效地协调多个线程的执行顺序,确保一组线程都完成后才触发其他线程的执行,适用于资源加载、任务初始化等场景。它提供了清晰的等待/通知机制,易于理解和使用,是提升多线程程序性能和可…

面试数据结构与算法总结分类+leetcode题目目录【基础版】

🧡🧡🧡算法题目总结: 这里为大家总结数据结构与算法的题库目录,如果已经解释过的题目会标注链接更新,方便查看。 数据结构概览 Array & String 大家对这两类肯定比较清楚的,同时这也是面试…

Java基础—反射

Java基础-反射 前置知识动态语言JVM堆Java引用变量类型编译时类型运行时类型举栗特殊情况 RRTI概念为什么需要RTTI例子 Class类对象前置知识类加载器概念作用 Class类对象的概念Class类对象的总结 总结一下前置知识 反射基础概念为什么要学反射我需要学到什么程度 反射的基础内…

GMT绘图笔记

(1)图框设置。在利用GMT绘制图件时,需要设置边框的类型,字体的大小,标记距离边框的距离。主要涉及的参数有: gmt set MAP_FRAME_TYPE plain/fancy 可以调整边框为火车轨道或者线段。 (2)调整图框的粗细:主要是包含有…