数据库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,点击运行就能建好表并插入数据了。

2 exam

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 表了。
相关推荐
阿成学长_Cain9 小时前
Linux ipcs 命令超全详解:查看共享内存 / 消息队列 / 信号量,IPC 运维必备
linux·运维·服务器·网络·数据库
OceanBase数据库官方博客11 小时前
OceanBase AI 时代,数据库的变与不变(技术解析与实践)
数据库·人工智能·oceanbase
阿成学长_Cain12 小时前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
ywl47081208712 小时前
Mysql 平衡二叉树、红黑树、B树、B+树区别以及应用场景(五)
数据库·b树·mysql
IvorySQL13 小时前
IvorySQL Agent 探索与实践
数据库·人工智能·postgresql·oracle·ivorysql
SelectDB14 小时前
美团数十 PB 规模 Apache Doris 实践:从统一 OLAP 到 AI-Native 数据基座
大数据·数据库·性能优化
Database_Cool_14 小时前
阿里云RDS主从延迟解决方案_只读实例半同步复制最佳实践
数据库·人工智能
KaMeidebaby15 小时前
卡梅德生物技术快报|小 RNA 适配体合成 + 多方法亲和力表征全流程标准化操作手册
前端·网络·数据库·人工智能·算法
卓怡学长15 小时前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea
ClouGence15 小时前
MySQL 到 StarRocks 数据迁移同步:同步方案与实践指南
数据库·mysql