当前位置: 首页 > news >正文

【MySQL】多表操作 —— 外键约束

目录

  • 多表关系
    • 一对一关系
    • 一对多/多对一关系
    • 多对多关系
  • 外键约束
    • 基本概念
    • 一对多/多对一
      • 创建外键约束
      • 外键约束下的数据操作
        • 数据插入
        • 数据删除
      • 删除外键约束
    • 多对多
      • 创建外键约束
      • 外键约束下的数据操作
        • 数据插入
        • 数据删除
      • 删除外键约束

多表关系

MySQL 多表之间的关系可以概括为:

  • 一对一
  • 一对多/多对一
  • 多对多

一对一关系

例子:一个学生只有一张身份证,一张身份证只能对应一学生

在任一表中添加唯一外键,指向另一方主键,确保一对一关系

一般一对一关系较少见,遇到一对一关系的表最好是合并表

在这里插入图片描述

一对多/多对一关系

例子:一个部门有多个员工,一个员工只能对应一个部门

实现原则:在多的一方建立外键,指向一的一方的主键

在这里插入图片描述

多对多关系

例子:一个学生可以选择很多门课,一门课也可以被很多学生选择

原则:多对多关系实现需要借助第三张中间表,中间表至少包含两个字段,将多对多的关系,拆成一对多的关系,中间表至少要有两个外键,这两个外键分别指向原来两张表的主键

在这里插入图片描述

外键约束

基本概念

MySQL 外键约束(foreign key)是表的一个特殊字段,经常与主键一起使用,对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)

外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、桃子、李子、西瓜这 4 种水果,那么来到水果摊买水果就只能选择苹果、桃子、李子、西瓜,其他水果无法购买

在这里插入图片描述

定义一个外键时,需要遵守下列规则:

  • 主表必须已经存在于数据库中,或者是当前正在创建的表
  • 必须为主表定义主键
  • 主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的
  • 在主表的表名后面指定列名或列名的组合,这个列或列的组合必须是主表的主键或候选键。
  • 外键中列的数目必须和主表的主键中列的数目相同
  • 外键中列的数据类型必须和主表主键中对应列的数据类型相同

一对多/多对一

创建外键约束

方式 1:创建表时设置

在 create table 语句中,通过 foreign key 关键字来指定外键

格式如下:

[constraint 外键名] foreign key (外键字段名[,外键字段名2,...]) references 主表名(主键字段名[,主键字段名2,...])

代码示例:

create table if not exists dept(deptno varchar(20) primary key , -- 部门号name varchar(20) -- 部门名称
);
create table if not exists emp(eid varchar(20) primary key , -- 员工编号ename varchar(20) , -- 员工名字age int , -- 员工年龄dept_id varchar(20) , -- 员工所属部门constraint emp_fk foreign key (dept_id) references dept(deptno)
);

结果如下:

在这里插入图片描述

方式 2:创建表后设置

外键约束也可以在修改表时添加,但是添加外键约束的前提是:从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据

格式如下:

alter table 从表名 add constraint 外键名 foreign key (外键字段名) references 主表名(主键字段名)

代码示例:

create table if not exists dept(deptno varchar(20) primary key , -- 部门号name varchar(20) -- 部门名称
);
create table if not exists emp(eid varchar(20) primary key , -- 员工编号ename varchar(20) , -- 员工名字age int , -- 员工年龄dept_id varchar(20) -- 员工所属部门
);
alter table emp add constraint dept_fk foreign key (dept_id) references dept(deptno);

结果如下:

在这里插入图片描述

外键约束下的数据操作

数据插入

代码示例:

insert into dept values ('1001','研发部'),('1002','销售部');
insert into emp values ('1','张三',20,'1001'),('2','李四',20,'1001'),('3','王五',21,'1002'),('4','赵六',22,'1002'),('5','孙七',24,'1003');

结果如下:

在这里插入图片描述

由于 emp 表的外键列插入了 dept 表主键列中没有的数据,导致报错

注意事项:

  • 必须先给主表添加数据
  • 从表添加数据时,外键列的值不能随便写,必须依赖主表的主键列
数据删除

代码示例:

delete from dept where deptno = '1001';

结果如下:

在这里插入图片描述

由于 dept 表中主键列中的 1001 被 emp 表中的外键列依赖,所以删除会报错

注意事项:

  • 删除表要先删除从表才能删除主表

  • 主表的数据被从表依赖时,不能删除,没有被依赖的数据则可以删除

  • 从表的数据可以随便删除

删除外键约束

当一个表中不需要外键约束时,就需要从表中将其删除,外键一旦删除,就会解除主表和从表间的关联关系

格式如下:

alter table 从表名 drop foreign key 外键约束名;

代码示例:

alter table emp drop foreign key dept_fk;

结果如下:

在这里插入图片描述

多对多

在多对多关系中,A 表的一行对应 B 表的多行,B 表的一行对应 A 表的多行,需要新增加一个中间表,来建立多对多关系

在这里插入图片描述

student 表和 course 表都是主表,student_course 表是从表,也就是说,在多对多关系中,可以有多个主表

创建外键约束

从表对每个主表都设置一个外键约束

代码示例:

create table if not exists student(sid int primary key auto_increment, -- 学生学号name varchar(20), -- 学生姓名age int -- 学生年龄
);
create table if not exists course(cid int primary key auto_increment, -- 课程编号cname varchar(20) -- 课程名
);
create table if not exists student_course(sid int ,cid int,score double -- 分数
);
alter table student_course add foreign key (sid) references student(sid);
alter table student_course add foreign key (cid) references course(cid);

结果如下:

在这里插入图片描述

外键约束下的数据操作

多对多中的外键约束其实跟一对多/多对一中的外键约束没什么区别,这里就直接给出正确代码

数据插入

代码示例:

insert into student values (1,'张三',20),(2,'李四',20);
insert into course values (001,'语文'),(002,'数学'),(003,'英语');
insert into student_course values (1,001,99),(2,001,97),(1,002,100),(2,002,90),(1,003,79),(2,003,99);

结果如下:

在这里插入图片描述

注意事项:

  • 必须先给主表添加数据
  • 从表添加数据时,外键列的值不能随便写,必须依赖主表的主键列
数据删除

代码示例:

delete from student_course;

结果如下:

在这里插入图片描述

注意事项:

  • 删除表要先删除从表才能删除主表

  • 主表的数据被从表依赖时,不能删除,没有被依赖的数据则可以删除

  • 从表的数据可以随便删除

删除外键约束

代码示例:

alter table student_course drop foreign key student_course_ibfk_1;
alter table student_course drop foreign key student_course_ibfk_2;

结果如下:

在这里插入图片描述

相关文章:

【MySQL】多表操作 —— 外键约束

目录 多表关系一对一关系一对多/多对一关系多对多关系 外键约束基本概念一对多/多对一创建外键约束外键约束下的数据操作数据插入数据删除 删除外键约束 多对多创建外键约束外键约束下的数据操作数据插入数据删除 删除外键约束 多表关系 MySQL 多表之间的关系可以概括为&#…...

自己动手打造AI Agent:基于DeepSeek-R1+websearch从零构建自己的Manus深度探索智能体AI-Research

第一章:AI Agent基础与DeepSeek-R1架构解析(1/10) 1.1 AI Agent技术演进与核心价值 人工智能代理(AI Agent)经历了从规则驱动到数据驱动的范式转移。早期基于专家系统的符号主义方法(如MYCIN医疗诊断系统…...

SpringSecurity配置(校验数据库用户信息)

文末有本篇文章的项目源码文件可供下载学习 通过SpringSecurity快速入门案例我们已经实现了基于内存的校验用户信息,但在实际项目中我们需要校验从数据库中获取的用户信息,这里我们主要是两步操作: 1.需要我们实现UserDetailsService的loadUserByUsername方法,在方法中以前端…...

中考语文的考点及相应的解题技巧

1 考点分布 1.1 作文(60 分左右) 考点:立意、选材、结构、语言表达等。要求立意深刻、新颖,选材真实、典型,结构清晰、完整,语言流畅、生动。 解题技巧:认真审题,理解题目要求和限…...

PackageManagerService

首语 PackageManagerService(以下简称PMS)是Android最核心的系统服务之一,它是应用程序包管理服务,管理手机上所有的应用程序,包括应用程序的安装、卸载、更新、应用信息的查询、应用程序的禁用和启用等。 职责 在Android系统启动过程中扫…...

基于大模型的智能客服搭建

引言:智能客服的范式转变 在数字经济浪潮中,客户服务正经历从"人力密集型"向"技术驱动型"的深刻转型。据IDC最新报告,全球智能客服市场规模预计将在2028年突破1200亿美元,年复合增长率达28.6%。这种增长背后…...

Vagrant+VMWare 安装Ubuntu24.04

背景介绍 对于众多 Windows 用户来说, 有时候需要用到 Linux 环境做一些开发或者测试. WSL 目前能覆盖到很大一部分使用场景, 但是仍然有一些场景需要用虚拟机才能解决. 开发者的痛点往往是对于虚拟机环境的配置和管理, 因为手动安装需要很长的时间, 并且每次安装完成之后需要…...

数字化转型 - 数据驱动

数字化转型 一、 数据驱动1.1 监控1.2 分析1.3 挖掘1.4 赋能 二、数据驱动案例2.1 能源工业互联网:绿色节能的数字化路径2.2 光伏产业的数字化升级2.3 数据中心的绿色转型2.4云迁移的质效优化2.5 企业数字化运营的实践2.6数字化转型的最佳实践 一、 数据驱动 从数…...

【软考-架构】11.3、设计模式-新

✨资料&文章更新✨ GitHub地址:https://github.com/tyronczt/system_architect 文章目录 项目中的应用设计模式创建型设计模式结构型设计模式行为型设计模式 💯考试真题题外话 项目中的应用 在实际项目中,我应用过多种设计模式来解决不同…...

leetcode0031 下一个排列-medium

1 题目: 下一个排列 官方标定难度:中等 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一…...

CmBacktrace的cmb_cfg.h

一:宏定义解析 #ifndef _CMB_CFG_H_ #define _CMB_CFG_H_#ifdef CMB_USER_CFG #include "cmb_user_cfg.h" #else /* print line, must config by user */ #define cmb_println(...) /* e.g., printf(__VA_ARGS__);printf("\r\n"…...

Redis监控:从睁眼瞎到千里眼的进化史

各位在Redis迷雾中摸黑的探险家们!今天我们要给Redis装上"天眼系统"——从连自己内存爆了都不知道的睁眼瞎,进化到连每秒哪个键被摸了几次都门儿清的监控狂魔!准备好迎接《Redisの楚门世界》了吗?👁️ 第一幕…...

mac利用“自动操作”扩展添加 Mac 访达右键菜单项

用惯了 Windows 的资源管理器,换到 Mac 的访达,最不习惯的就是不能通过右键菜单创建文件。 虽然 Mac 的 App Store 中有几个可以增加访达右键菜单的工具,但是居然都要收费(就这么一点点活都能卖钱,真是了不起&#xf…...

算法013——水果成篮

水果成篮(点击即可跳转) 这道题其实就是找到一个最长的子数组的长度,子数组中不超过两种类型的水果。 定义两个指针 left 与 right ,固定 left , 当 right 走到一个位置时,left 与 right 之间的种类 kind 2 , 当 ri…...

TCP/IP协议栈----通俗易懂(与OSI七层模型区别)

目录 一、概念 二、模型 对比 ​编辑​(1)OSI的七层模型 (2)TCP/IP的四层模型 三、TCP/IP模型分层 (1)应用层 (2)传输层 (3)网络层 (4&…...

python中print函数的flush如何使用

在 Python 中,print 函数的 flush 参数是一个布尔值,默认值为 False。当设置为 True 时,它会强制将输出缓冲区的内容立即刷新到目标设备(通常是控制台),而不是等待缓冲区满或者程序结束时才输出。 要注意fl…...

python中有几种作用域

在 Python 中,作用域决定了变量的可见性和生命周期。Python 主要有以下四种作用域: 1. 局部作用域(Local Scope): - 在函数或方法内部定义的变量属于局部作用域。 - 这些变量只能在函数或方法内部访问。 def my_f…...

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_13可展开行的固定表头表格

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_13可展开行的固…...

【Java 优选算法】分治 - 快速排序

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 分治算法就是将一个问题划分为多个相同类型的子问题,解决这些子问题即解决该类问题 颜色分类 题目链接 解法 利用三指针, i, left, right,将数组分为4个区间,如下图 …...

Kafka相关的面试题

以下是150道Kafka相关的面试题及简洁回答: Kafka基础概念 1. 什么是Kafka? Kafka是一个分布式、可扩展、容错的发布-订阅消息系统,最初由LinkedIn开发,现为Apache项目。它适用于高吞吐量的场景,如大数据处理和实时数据…...

Java基础面经

Java 基础 面试官:重写与重载的区别? 重载:发生在同一个类中,若多个方法之间方法名相同、参数列表不同,则它们构成重载的关系。重载与方法的返回值以及访问修饰符无关,即重载的方法不能根据返回类型进行…...

Let’s Build AI- 实用AI导航网站

Let’s Build AI Let’s Build AI是一个在线实用AI导航网站,由社区驱动的平台,致力于为 AI 爱好者和开发人员共享资源、工具和知识等等,通过GitHub编辑内容更新,目前包括数据库、模型、开发者工具、ChatGPT提示、图像生成、模型开…...

Spring Boot集成EasyExcel

1. 初始化Spring Boot项目 首先,使用Spring Initializr(https://start.spring.io/)生成一个基本的Spring Boot项目。选择以下依赖项: Spring WebLombok (用于减少样板代码)SLF4J (用于日志记录) 2. 添加依赖 在你的pom.xml文件…...

2024年12月CCF-GESP编程能力等级认证C++编程六级真题解析

CCF-GESP C++六级真题难度与考察范围深度解析 考试定位与整体难度 CCF-GESP C++六级认证属于高阶编程能力考核,难度显著高于五级,接近信息学竞赛提高组水平,重点考察复杂算法设计、面向对象编程(OOP)深度应用及高级数据结构实现能力。试题要求考生具备将数学建模与算法优化…...

网络VLAN技术详解:原理、类型与实战配置

网络VLAN技术详解:原理、类型与实战配置 1. 什么是VLAN? VLAN(Virtual Local Area Network,虚拟局域网) 是一种通过逻辑划分而非物理连接隔离网络设备的技术。它允许管理员将同一物理网络中的设备划分为多个独立的广播…...

深入探讨RAID 5的性能与容错能力:实验与分析(磁盘阵列)

前言—— 本实验旨在探讨 RAID 5 的性能和容错能力。通过创建 RAID 5 阵列并进行一系列读写性能测试及故障模拟,我们将观察 RAID 5 在数据冗余和故障恢复方面的表现,以验证其在实际应用中的可靠性和效率。 首先说明:最少三块硬盘, 使用 4 块…...

如何让ai问答机器人通人性?

领域专用的问答机器人,数据是灵魂。通用模型的问题在于,它们虽然知识广博,但对特定领域的深度理解不足。解决这个问题的第一步,就是构建一个高质量的领域知识库。 数据要精准且全面 想让机器人真正“懂”一个领域,数…...

最新版Chrome浏览器加载ActiveX控件技术--allWebPlugin中间件一键部署浏览器扩展

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…...

重生之我在学Vue--第11天 Vue 3 高级特性

重生之我在学Vue–第11天 Vue 3 高级特性 文章目录 重生之我在学Vue--第11天 Vue 3 高级特性前言一、Teleport:打破组件层级的瞬移术1. 什么是Teleport?2. 核心用法3. 实战技巧 二、Suspense:异步组件的优雅过渡1. 为什么需要Suspense&#x…...

汽车无钥匙启动系统不使用传统机械钥匙启动汽车

汽车无钥匙启动系统 定义 汽车无钥匙启动系统(Keyless Start System),启动车辆时不用掏拧钥匙,只需把钥匙放在包内或口袋里,按下车内按键或拧动导板即可使发动机点火。它无需插入钥匙,通过点按按键或旋转…...

平安养老险深圳分公司积极开展2025年“3·15”金融消费者权益保护教育宣传活动

为深刻把握金融工作的政治性、人民性,帮助社会公众增强维护自身合法权益的意识和能力,平安养老险深圳分公司在2025年3月7日至3月15日期间,以“保障金融权益,助力美好生活”为口号,聚焦“维护权益”主题,全面…...

python 实现 A* 算法

A*算法是一种广泛使用的路径搜索算法,结合了启发式搜索和Dijkstra算法的优点。它通过评估每个节点的代价函数 ( f(n) g(n) h(n) ) 来选择最优路径,其中: ( g(n) ) 是从起点到当前节点的实际代价。( h(n) ) 是从当前节点到目标节点的启发式…...

MyBatis 如何创建 SqlSession 对象的?

MyBatis 创建 SqlSession 对象的过程主要由 SqlSessionFactory 接口及其实现类来完成。以下是详细步骤: 1. SqlSessionFactory 接口: SqlSessionFactory 是 MyBatis 的核心接口之一,它负责创建 SqlSession 对象。 你可以将 SqlSessionFactory 视为 Sql…...

微服务》》四个问题

客户端如何访问 API 网关 如 Core中 Ocelot技术 服务如何治理 服务注册与发现 如 Core中 的 consul技术 服务挂了怎么办 可以利用 重试机制、限流、熔断、降级等 服务之间通信问题 》》同步 1. Http 对外 跨防火墙 【 序列化、反序列化 2 ( 因为http是应用层…...

CockroachDB MCP -cursor适用

CockroachDB MCP 服务器 GitHub仓库置顶 这是一个用于 Cursor 的 CockroachDB MCP 服务器,基于 Model Context Protocol (MCP) 规范实现,可以让你在 Cursor 中直接与 CockroachDB 数据库交互。 功能 连接到 CockroachDB 数据库获取数据库中的所有表获…...

GOC学习

for(int i1;i<5;i){//这里的所有语句都会被执行 5 次 } int main(){pen.a(200,16,1,0).a(200,-16,1,0);pen.rt(16).fd(200).bk(200);pen.lt(32).fd(200).bk(200);///pen.rt(-32).fd(200).bk(200);for(int i1;i<5;i){pen.a(200,16,1,0).a(200,-16,1,0);pen.rt(16).fd(200)…...

【机器学习】基于t-SNE的MNIST数据集可视化探索

一、前言 在机器学习和数据科学领域&#xff0c;高维数据的可视化是一个极具挑战但又至关重要的问题。高维数据难以直观地理解和分析&#xff0c;而有效的可视化方法能够帮助我们发现数据中的潜在结构、模式和关系。本文以经典的MNIST手写数字数据集为例&#xff0c;探讨如何利…...

Vscode工具开发Vue+ts项目时vue文件ts语法报错-红波浪线等

Vscode工具开发Vuets项目时vue文件ts语法报错-红波浪线等 解决方案 问题如题描述&#xff0c;主要原因是开发工具使用的代码检查与项目的中的ts不一致导导致&#xff0c;解决办法&#xff0c;修改 vscode 中&#xff0c; 快捷键&#xff1a;command shift p, 输入&#xff…...

Python在数据处理中的应用:从入门到精通

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…...

vue3实现跨页面缓存

避免频繁向后端发送请求,vue3中,可以用缓存机制,为了实现跨页面缓存,可以把缓存放到localsotrage里面 关键代码: const globalCache JSON.parse(localStorage.getItem(globalCache)) || {}; 然后加一个forceRefresh关键字, const fetchData async (forceRefresh false) …...

YOLO优化之多信息融合MIF

设计背景 在目标检测领域,随着深度学习技术的不断进步,研究者们一直在寻求提高模型性能和效率的方法。其中, 多模态数据融合 作为一种有效的策略,近年来受到了广泛关注。多模态融合旨在将来自不同传感器或模态的数据进行整合,以提供更全面、丰富的信息供模型学习和推断。…...

人工智能与人的智能,改变一生的思维模型【8】逆向思维

逆向偏差思维模型&#xff1a;顶尖高手如何「反常识」破局 &#xff08;斯坦福决策科学中心认证的逆向思考框架&#xff09; 一、直击本质&#xff1a;什么是逆向偏差思维&#xff1f; 定义&#xff1a; 逆向偏差思维是一种主动对抗本能认知倾向的决策模式&#xff0c;通过系…...

Python 科学计算与机器学习入门:NumPy + Scikit-Learn 实战指南

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

深入理解 Qt 系统托盘图标:创建自定义的系统托盘图标类

文章目录 深入理解 Qt 系统托盘图标&#xff1a;创建自定义的系统托盘图标类1. 什么是 QSystemTrayIcon&#xff1f;2. 自定义系统托盘图标类&#xff1a;SysTraylcon3. 代码解析1. **类的定义**2. **构造函数&#xff1a;SysTraylcon::SysTraylcon(QWidget *parent)**3. **ini…...

DeepSeek-R1 面试 -—— GRPO

DeepSeek训练中应用的GRPO算法&#xff0c;它源自于强化学习领域的PPO算法。GRPO与PPO算法之间存在哪些差异&#xff1f;这两种算法各自的优劣何在&#xff1f;为何DeepSeek选择采用GRPO算法而非PPO算法&#xff1f;本文将对这些问题提供解答。 一、PPO算法 PPO&#xff08;Pr…...

AI作曲DiffRhythm原理及本地部署

1.原理简介 最近AI在音乐生成方面的进展引起了极大的关注&#xff0c;但现有的方法面临着严重的限制。一些当前的生成模型只能合成人声或伴奏轨道。虽然一些模型可以生成组合的人声和伴奏&#xff0c;但它们通常依赖于精心设计的多阶段级联架构和复杂的数据管道&#xff0c;阻…...

农业电商|基于SprinBoot+vue的农业电商服务系统(源码+数据库+文档)

农业电商服务系统 目录 基于SprinBootvue的农业电商服务系统 一、前言 二、系统设计 三、系统功能设计 5.1系统功能实现 5.2后台模块实现 5.2.1管理员模块实现 5.2.2商家模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码…...

深度学习有哪些算法?

深度学习包含多种算法和模型&#xff0c;广泛应用于图像处理、自然语言处理、语音识别等领域。以下是主要分类及代表性算法&#xff1a; 一、基础神经网络 多层感知机&#xff08;MLP&#xff09; 最简单的深度学习模型&#xff0c;由多个全连接层组成&#xff0c;用于分类和回…...

鸿蒙开发-一多开发之媒体查询功能

在HarmonyOS中&#xff0c;使用ArkTS语法实现响应式布局的媒体查询是一个强大的功能&#xff0c;它允许开发者根据不同的设备特征&#xff08;如屏幕尺寸、屏幕方向等&#xff09;动态地调整UI布局和样式。以下是一个使用媒体查询实现响应式布局的实例&#xff1a; 1. 导入必要…...

历年华中科技大学计算机考研复试上机真题

历年华中科技大学计算机考研复试上机真题 2022华中科技大学计算机考研复试上机真题 2021华中科技大学计算机考研复试上机真题 2019华中科技大学计算机考研复试上机真题 在线评测&#xff1a;https://pgcode.cn 八进制 题目描述 输入一个整数&#xff0c;将其转换成八进制数…...