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

数据库2表设计

1 student

student表的 MySQL 创建语句,包含建表 + 插入示例数据,你可以直接复制到 Navicat 里运行:

sql

-- 1. 创建学生信息表 CREATE TABLE student ( name VARCHAR(50) NOT NULL COMMENT '姓名', code VARCHAR(10) PRIMARY KEY COMMENT '学号' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表'; -- 2. 插入表中的数据 INSERT INTO student (name, code) VALUES ('张三', '001'), ('李四', '002'), ('马五', '003'), ('甲六', '004');

补充说明

  • code设为主键,确保学号唯一且非空,符合业务逻辑。
  • 字符集用utf8mb4,可以兼容所有中文和特殊字符。
  • 表和字段都加了COMMENT注释,方便后续维护。

你直接在 Navicat 的「新建查询」里粘贴这段 SQL,点击运行就能建好表并插入数据了。

2exam

exam表的完整 MySQL 建表语句,包含建表 + 插入数据,和你之前的student表可以完美关联起来:

sql

-- 1. 创建考试信息表 exam CREATE TABLE exam ( code VARCHAR(10) NOT NULL COMMENT '学号', subject VARCHAR(20) NOT NULL COMMENT '学科', score INT NOT NULL COMMENT '成绩', -- 复合主键:学号 + 学科,保证同一个学生同一门课不会有重复记录 PRIMARY KEY (code, subject), -- 外键关联 student 表的学号,保证数据一致性 FOREIGN KEY (code) REFERENCES student(code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='考试信息表'; -- 2. 插入表中的数据 INSERT INTO exam (code, subject, score) VALUES ('001', '数学', 80), ('002', '数学', 75), ('001', '语文', 90), ('002', '语文', 80), ('001', '英语', 90), ('002', '英语', 85), ('003', '英语', 80), ('004', '英语', 70);

🔍 关键设计说明

  1. 复合主键PRIMARY KEY (code, subject)保证了「同一个学生同一门学科只能有一条成绩记录」,避免重复数据。
  2. 外键关联FOREIGN KEY (code) REFERENCES student(code)exam表和你之前创建的student表关联起来,保证只有student表里存在的学号才能插入成绩,避免脏数据。
  3. 字段类型
    • scoreINT类型,因为成绩是整数,且范围合理。
    • subjectVARCHAR(20)足够存储常见的学科名称。

✅ 使用步骤

  1. 先确认你之前的student表已经创建并插入了数据(否则外键会报错)。
  2. 把这段 SQL 复制到 Navicat 的查询窗口,点击「运行」即可。
  3. 执行完成后,刷新一下左侧的Test数据库,就能看到exam表了。
http://www.jsqmd.com/news/767075/

相关文章:

  • 电压监控器原理与Microchip选型指南
  • 在 Ubuntu 上对接 Claude Code 编程助手并配置 Taotoken 作为后端
  • 基于MCP协议构建跨平台广告AI管理中枢:策略感知与自动化实战
  • 视频生成模型提升机器人操作泛化能力
  • 掌控散热:7个步骤彻底解决Windows风扇噪音与温度平衡难题
  • 探路者转型数据压缩核心赛道,辅助存储打开全新成长空间
  • 告别MAX6675?聊聊STM32热电偶测温的几种替代方案与选型思考
  • AI编程助手如何突破项目记忆盲区:codebase-intel实战指南
  • 基于视觉语言模型的UI设计稿自动代码生成实践
  • 利用 taotoken 为内部知识库问答系统提供多模型后备支持
  • 9块9的合宙1.8寸ST7735S彩屏,用ESP32C3驱动避坑全记录(附代码)
  • 别再录屏了!用MATLAB的getframe和imwrite函数,5分钟搞定论文里的动态图
  • 基于区块链的频谱共享智能合约【附代码】
  • 超分算法实战:用Real-ESRGAN+Pytorch训练你自己的动漫增强模型(避坑环境配置指南)
  • 别再死记硬背公式了!用大白话和Python模拟,带你搞懂激光的‘增益’与‘损耗’
  • Java游戏服务器框架ioGame:高性能架构与实战开发指南
  • 3步解锁B站视频下载神器:DownKyi全功能指南
  • 树莓派RP2350以太网开发板W5100S与W5500对比评测
  • Tailwind CSS如何自定义响应式断点_修改tailwind.config配置文件
  • PolyForge开源工具:基于QEM算法的3D模型网格简化实战指南
  • Java+AI<AI的使用与Java的基础学习-数组>
  • 【马聊】策划谈论
  • 网页3D重建与WebVR技术实践指南
  • 彻底解决Windows更新故障:Reset Windows Update Tool专业修复指南
  • 2026年宾馆床上用品公司最新排行榜:民宿床上用品/酒店床上用品 - 品牌策略师
  • 深度解析:如何将网页视频无缝推送到MPV播放器实现专业级观影体验
  • VISA通信避坑指南:从*IDN?到截图,那些官方文档没告诉你的细节
  • Python 文本文件与二进制文件基础区别
  • 多模态 Agent 一接浏览器截图就开始看错状态:从 Visual Grounding 到 DOM Cross-Check 的工程实战
  • FOC 三相三电阻采样,为何仅选择 PWM 周期末尾(OC4REF 下降沿)采样