【跟着例子学MySQL】多表关联 -- 一对一关系

文章目录

  • 前言
  • 回顾
  • 一对一关系
  • 备份恢复
  • 未完待续


前言

在这里插入图片描述
举例子,是最简单有效的学习方法。本系列文章以一个贯穿始终的场景,结合多个实例讲解MySQL的基本用法。

为什么要写这个系列?

  • 模仿是最好的老师,实践是检验成果的方法。
  • 本系列以实操样例和应用场景为核心,将MySQL基本用法贯穿其中,达到学以致用的效果。

为什么要学习MySQL?

  • MySQL是最常用的数据库之一,具有简单易用的特点,适合初学者学习
  • 数据库的基本用法有相通之处,学会MySQL可以为学习其他数据库打下良好基础

跟别的入门教材有什么不同?

  • 以一个贯穿始终的应用场景为主线,渐进地讲解用法
  • 难度适中,既有基础方法,也有值得注意的关键细节

本系列文章不包含哪些内容?

该系列文章的目标是,将最核心的知识,以最直接的方式,呈现给初学者。因此不包含:

  • MySQL安装方法
  • MySQL系统管理方法,例如备份、恢复、导入导出等
  • 高级主题,例如数据库监控、数据库调优和SQL优化

回顾

上篇文章👉《【跟着例子学MySQL】多表关联 – 多对多关系》 讲了多对多的多表关联。这篇接着讲解一对一的表关联。


一对一关系

假设某些产品有可选数据(例如,照片、评论)。与将这些可选数据保存在产品表中相比,可以创建另一个名为product_details,的表,并将其链接到一对一关系的products表,如图所示。

mysql> CREATE TABLE product_details (productID INT UNSIGNED NOT NULL,-- 与父表相同的数据类型comment TEXT NULL,PRIMARY KEY (productID),FOREIGN KEY (productID) REFERENCES products (productID));
mysql> DESCRIBE product_details;
+-----------+------------------+------+-----+---------+-------+
| Field     | Type             | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+-------+
| productID | int(10) unsigned | NO   | PRI | NULL    |       |
| comment   | text             | YES  |     | NULL    |       |
+-----------+------------------+------+-----+---------+-------+
mysql> SHOW CREATE TABLE product_details \G
*************************** 1. row ***************************Table: product_details
Create Table: CREATE TABLE `product_details` (`productID` int(10) unsigned NOT NULL,`comment` text,PRIMARY KEY (`productID`),CONSTRAINT `product_details_ibfk_1` FOREIGN KEY (`productID`) REFERENCES `products` (`productID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

备份恢复

备份:运行mysqldump实用程序导出整个数据库。

(Windows)
> cd <path-to-mysql-bin>
> mysqldump -u root -p --databases productsales > "d:\myProject\backup_productsales.sql"
(Macs)
$ cd /usr/local/mysql/bin
$ ./mysqldump -u root -p --databases productsales > ~/Documents/backup_productsales.sql

输出文件包含创建数据库、创建表和插入语句,用于重新创建表。mysqldump实用程序的语法如下:

-- 使用--databases选项,转储选定的数据库
> mysqldump -u username -p --databases database1Name [database2Name ...] > backupFile.sql
-- 使用--all-databases选项,转储服务器中的所有数据库,除了mysql.user表(保证安全)
> mysqldump -u root -p --all-databases --ignore-table=mysql.user > backupServer.sql
-- 转储一个特定数据库的所有表
> mysqldump -u username -p databaseName > backupFile.sql
-- 转储特定数据库的选定表
> mysqldump -u username -p databaseName table1Name [table2Name ...] > backupFile.sql

恢复:实用程序mysqldump生成一个SQL脚本(包括创建表、插入命令,用于重新创建表和加载它们的数据)。你可以通过运行以下脚本从备份中恢复:

  1. 通过交互式客户端中的“source”命令。例如,从已备份的数据库中恢复:
(Windows)
-- 启动MySQL客户端
mysql> source d:/myProject/backup_productsales.sql
-- 提供脚本的绝对或相对文件名——使用Unix样式的正斜杠(/)作为路径分隔符
(Macs)
-- 启动MySQL客户端
mysql> source ~/Documents/backup_productsales.sql
  1. 通过mysql客户端程序的“批处理模式”,通过重新定向来自脚本的输入:
(For Windows)
-- 启动新的“cmd”
> cd <path-to-mysql-bin>
> mysql -u root -p productsales< d:\myProject\backup_productsales.sql
(For Macs)
-- 启动新的“终端”
$ cd /usr/local/mysql/bin
$ ./mysql -u root -p productsales< ~/Documents/backup_productsales.sql

未完待续

下一篇我们介绍多主键、外键和索引的情况。


如果喜欢这篇文章,请不要忘记关注🧡、点赞👍和收藏📔哦!

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

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

相关文章

ABAP 借助公司封装的钉钉URL,封装的RFC给钉钉发送消息

FUNCTION ZRFC_BC_SMSSEND_DINGTALK. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" VALUE(DESTUSRID) TYPE CHAR255 *" VALUE(CONTENT) TYPE CHAR255 *&quo…

【论文解读】Modular Blind Video Quality Assessment

原文下载地址:Modular Blind Video Quality Assessment 时间:2024 年 级别:arxiv 作者与机构:香港城市大学、香港中文大学(深圳)、字节跳动公司 git地址:https://github.com/winwinwenwen77/ModularBVQA 摘要 论文提出了一种模块化的盲视频质量评估(Blind Video Quali…

企业如何实现数据采集分析展示一体化

在当今数字化时代&#xff0c;企业越来越依赖于数据的力量来驱动决策和创新。通过全量实时采集各类数据&#xff0c;并利用智能化工具进行信息处理&#xff0c;企业能够借助大数据分析平台深入挖掘数据背后的价值&#xff0c;从而为企业发展注入新动力。 一、企业痛点 随着数字…

使用uniapp编写的微信小程序进行分包

简介&#xff1a; 由于小程序发布的时候每个包最多只能放置2MB的东西&#xff0c;所以把所有的代码资源都放置在一个主包当中不显示&#xff0c;所以就需要进行合理分包&#xff0c;&#xff0c;但是分包后整个小程序最终不能超过20MB。 一般情况下&#xff0c;我习惯将tabba…

Java实现图片保存到pdf的某个位置

Java实现图片保存到pdf的某个位置 1、依赖–maven <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version></dependency>2、上代码 package com.hxlinks.hxiot.controlle…

【OCPP】ocpp1.6协议第3.16章节Metering Data介绍及翻译

目录 3.16. Metering Data计量数据-概述 计量数据的目的 关键功能 消息类型 MeterValues 消息格式 使用场景 计量数据的准确性和可靠性 总结 3.16. Metering Data计量数据-译文 3.16.1. Charging Session Meter Values 3.16.2. Clock-Aligned Meter Values 3.16.3.…

【JavaScript】call、apply、bind的区别和应用

历史小剧场 其实在大多数时间里&#xff0c;除去超人、蝙蝠侠等不可抗力出来维护正义外&#xff0c;邪是经常胜正的。所谓好人、善人、老实人常常被整得凄惨无比&#xff0c;比如于谦、岳飞等&#xff0c;都是死后很多年才翻身平反。 只有岁月的沧桑&#xff0c;才能淘尽一切污…

【Vue】自动导入组件

1. 下载插件 npm install unplugin-vue-components 2. 修改vite.config.js import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite import vue from vitejs/plugin-vue import Components from unplugin-vue-components/vite // 按需加载自定义组件/…

C#中的事件聚合器实现方法

概述&#xff1a;_对象之间的关系_是使代码库难以理解和难以维护的原因。为了更好地理解它&#xff0c;我们求助于马丁福勒&#xff08;Martin Fowler&#xff09;&#xff1a;事件聚合器是间接的简单元素。在最简单的形式中&#xff0c;您可以让它注册到您感兴趣的所有源对象&…

MapStruct与BeanUtils处理对象属性复制场景对比

MapStruct是什么&#xff1f; MapStruct is a code generator that greatly simplifies the implementation of mappings between Java bean types based on a convention over configuration approach. The generated mapping code uses plain method invocations and thus is…

elastich运维

Elastichsearch是一种高度可扩展的开源全文搜索和分析引擎&#xff0c;可以用来实现快速、高效的数据检索。 集群规划与部署&#xff1a;首先需要根据业务需求规划Elastichsearch集群的节点数量和角色&#xff08;如主节点、副本节点、协调节点等&#xff09;。在部署时&#x…

赎金信-力扣

这道题想到的解法是使用一个哈希表来存储magazine里每个字符出现的次数&#xff0c;然后遍历ransomNote&#xff0c;出现对应的字母则哈希表中对应的值减一&#xff0c;当查找不到某个字符&#xff0c;或者某个字符的值小于0时&#xff0c;则返回false。代码如下&#xff1a; …

ORACLE中递归遍历

--查询全部资源信息 select * from urm_class_info --向上遍历树&#xff0c;找到路径直到根节点&#xff0c;指定的是parentid select distinct classid, parentid, namefrom urm_class_infostart with parentid cmdb0000000000000017 connect by prior parentid classid …

配置Spring Security的身份验证

配置Spring Security的身份验证 在我们登录Spring Security之前&#xff0c;我们将向您展示如何配置Spring Security的身份验证。我们将通过创建一些用户来验证并为它们生成身份验证。在这篇文章中&#xff0c;我们将学习Spring Security的流程是配置Spring Security中的身份验…

代码随想录算法训练营第二十一天 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

530.二叉搜索树的最小绝对差 题目链接&#xff1a;https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 文档讲解&#xff1a;https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF%B9%E…

VMware Workstation 不可恢复错误:(vmui) 错误代码0xc0000094

软件版本 vmware 17 错误情况 VMware Workstation 不可恢复错误&#xff1a;(vmui) Exception 0xc0000094 has occurred. 问题原因 VMware升级到17.0后&#xff0c;将虚拟机环境的【硬件兼容性】升级至Workstation 17.X后&#xff0c;无法修改设备参数。 解决办法 打开需…

企业营收分析难?搞定收入认领月底不加班!

在当今日益激烈的市场竞争中&#xff0c;企业的营收分析不仅是衡量经营成果的关键指标&#xff0c;更是指导企业未来发展的重要依据。然而&#xff0c;对于许多企业来说&#xff0c;营收分析的过程往往繁琐且耗时&#xff0c;尤其是月底结账时&#xff0c;大量的数据和复杂的计…

【Numpy】NumPy基础入门:创建和管理多维数组

NumPy基础入门&#xff1a;创建和管理多维数组 简介 NumPy&#xff08;Numerical Python的简称&#xff09;是Python语言的一个基础科学计算库&#xff0c;广泛应用于数据分析、机器学习、科学计算和工程领域。NumPy的核心是其强大的N维数组对象ndarray&#xff0c;它为Pytho…

医疗图像处理2023:Transformers in medical imaging: A survey

医学成像中的transformer:综述 目录 一、介绍 贡献与安排 二、CNN和Transformer 1.CNN 2.ViT 三、Transformer应用于各个领域 1.图像分割 1&#xff09;器官特异性 ①2D ②3D 2&#xff09;多器官类别 ①纯transformer ②混合架构 单尺度 多尺度 3&#xff09;…

fyne表单布局

fyne表单布局 layout.FormLayout就像一个 2 列网格布局 。 package mainimport ("image/color""fyne.io/fyne/v2/app""fyne.io/fyne/v2/canvas""fyne.io/fyne/v2/container""fyne.io/fyne/v2/layout" )func main() {myApp…