首页 > 数据库 >MySQL 设计数据表

MySQL 设计数据表

时间:2024-10-14 10:18:45浏览次数:8  
标签:DEFAULT 数据类型 UNSIGNED 数据表 MySQL 设计 NULL id

一个数据表主要包含信息有 : 表名、主键、字段、数据类型、索引,本节主要介绍表的命名规范、字段命名、字段的数据类型选择。

新建的表都是新建在 “item_name” 数据库中的,新建 “item_name” 数据库命令如下 :

CREATE DATABASE item_name;

新建数据库之后选择数据库:

USE item_name;

1. 数据表命名规范

数据表命名是小写字母和下划线 _ 组成,用来分割不同单词之间的含义,例如 “student_course” 表示学生选课关联表,实际命名需要根据具体功能而定,好的命名规范在实际工作中也是很重要的。

2. 新建学生信息表 student

2.1 确定字段
在这里插入图片描述

学生信息表包含的字段可以有很多,本小节选择学生姓名、年龄、身份证号介绍字段的选择,字段的确定是根据实际业务需求来新增或减少的,例如想要存储学生籍贯信息可新增 “address” 字段。

2.2 选择字段的数据类型

在这里插入图片描述

Tips:实际业务中一般要将年龄字段设置为可变,通常会使用时间戳(距离1970-01-01 00:00:00的秒数)来表示年龄相关的信息,在这里为了方便演示直接使用了 UNSIGNED INT

一般来说姓名字段的长度为 2-4 个字符,但是考虑到少数民族的学生姓名比较长,所以将姓名字段的长度设置为 50,适当的给的大一点。身份证号同样使用字符串类型来存储,因为有的身份证号中有字母。身份证的长度统一都是 18 位不变,直接在这里写死就好。

2.3 新建数据表

命令 : 
CREATE TABLE `student`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL DEFAULT '无名',
  `age` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `id_number` varchar(18) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
);

Tips:其中 “student” 为表名称,“id”、“name”、“age”、“id_number” 为字段名称,跟在字段名称后面的是字段的数据类型,“UNSIGNED” 表示无符号,“AUTO_INCREMENT” 表示自增,"PRIMARY KEY (id)"表示设置 “id” 为业务主键,,"NOT NULL DEFAULT ‘无名’ " 表示默认不为空,且默认值为 “无名”

执行结果如下图:

在这里插入图片描述

查看当前数据库中所有的数据表:

命令:show tables;

可以看到 item_name 数据库中已经有了 student 这张数据表。

3.新建教师信息表 teacher

3.1 确定字段
在这里插入图片描述

同样教师信息的字段可选择也很多,这里选择教师姓名、教师年龄、教师身份证号,可自行选择感兴趣的字段,并参照新建学生表的步骤选择字段,如教师邮箱、教师博客地址。

3.2 选择字段的数据类型
在这里插入图片描述

3.3 新建数据表

命令 : 
CREATE TABLE `teacher`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL DEFAULT '教师名',
  `age` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `id_number` varchar(18) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
);

Tips: 其中 “teacher” 为表名称,“id”、“name”、“age”、“id_number” 为字段名称,跟在字段名称后面的是字段的数据类型,“UNSIGNED” 表示无符号,“AUTO_INCREMENT” 表示自增,“PRIMARY KEY (id)” 表示设置 “id” 为业务主键,"NOT NULL DEFAULT 教师名’ "表示默认不为空,且默认值为 “教师名”

执行结果如下图:

在这里插入图片描述

Tips: 这里展示了使用 Navicat 来执行 sql 语句,选择数据库只需点击相应的数据库名称,然后选择新建查询即可。

4.新建课程表 course

4.1 确定字段
在这里插入图片描述

4.2 选择字段的数据类型
在这里插入图片描述

4.3 新建数据表

命令 : 
CREATE TABLE `course`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `course_name` varchar(50) NOT NULL DEFAULT '',
  `teacher_id` int(10) UNSIGNED NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
);

执行结果如下图:
在这里插入图片描述

5.新建学生选课关联表 student_course

5.1 确定字段
在这里插入图片描述

5.2 选择字段的数据类型
在这里插入图片描述

5.3 新建数据表

命令 : 
CREATE TABLE `student_course`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `student_id` int(10) UNSIGNED NOT NULL DEFAULT 0,
  `course_id` int(10) UNSIGNED NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`)
);

执行结果如下图:
在这里插入图片描述

6.小结

新建学生选课相关数据表,熟悉如何合理选择字段数据类型,需要注意的是每一张表都必须有一个主键,一般建议选定为无符号整型 id 作为主键,并且 id 一般作为主键一般设置为自增的(特殊情况可使用其他非自增 id 作为主键),实际业务中数据库优化第一步即为合理的设计数据表,其中选择合适的数据类型显得尤为重要。

标签:DEFAULT,数据类型,UNSIGNED,数据表,MySQL,设计,NULL,id
From: https://blog.csdn.net/weixin_51705943/article/details/142173041

相关文章

  • MySQL 的 JDBC 编程
    MySQL的JDBC编程使用java代码操作数据库jdbc统一了各种数据库的api准备阶段首先要准备编辑语言的安装:javajdk1.8数据库数据库驱动包:在中央仓库下载搜索MySQL第一个就是MySQLConnector/j下载完成后在IDEA中导入这个包打开IDEA新建一个java项目新建......
  • 毕业论文(设计)题目+毕设选题代码+paper+教程-计算机选题大集合-计算机视觉实战项目集
    选题(包括但不限于下列)基于YOLOv8的道路缺陷检测系统设计基于YOLOv5的手部关节骨龄预测系统设计基于CNN的雨雾天气下车辆检测和颜色识别系统基于YOLOv5算法的智慧零售商品识别系统设计基于YOLOv5的输电线路鸟巢检测系统设计基于深度学习的车型检测系统设计基于CNN的行......
  • MySql数据库---存储过程(带in、out、inout参数,),变量定义,if,case判断,循环结构,游标,handler
    思维导图 存储过程概念MySQL5.0版本开始支持存储过程。简单的说,存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法,类似Python中的函数;存储过就是数据库SQL语言层面的代码封装与重用入门案例语法:delimiter自定义结束......
  • 基于YOLOv8的道路缺陷检测系统设计(代码+教程+pyqt)
    路面裂缝检测是计算机视觉在基础设施维护中的一个重要应用。使用YOLOv8进行路面裂缝检测的过程与绝缘子检测类似,包括数据准备、模型训练和部署。下面是一个详细的流程,包括代码示例。YOLOv8是YouOnlyLookOnce(YOLO)系列目标检测算法的最新版本,它以其快速和准确的目标......
  • java计算机毕业设计办公系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和企业管理的日益精细化,传统的办公模式已难以满足现代企业的需求。在竞争激烈的市场环境中,企业为了提高工作效率、优化资源配......
  • java计算机毕业设计采购系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着企业规模的扩大和市场竞争的加剧,采购管理已成为企业运营中不可或缺的一环。传统的采购方式往往依赖于人工操作,不仅效率低下,还容易出错。为了应对......
  • 毕业设计-基于Java+SSM+JSP的校园心理健康网站系统的设计与实现(源码+文档+部署视频)
    文章目录1.前言2.详细视频演示3.论文参考4.项目运行截图5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue6.选题推荐优秀毕设案例展示8.系统测试8.1系统测试的目的8.2系统功能测试9.代码参考10.为什么选择我?11.获取源码1.前言......
  • 基于Java中的SSM框架实现学校访客登记系统项目【项目源码+论文说明】计算机毕业设计
    基于java中的SSM框架实现学校访客登记系统演示【内附项目源码+LW说明】摘要伴随着学生基数的不断的扩大和增长,各大高效也面临着巨大的困难和考验,这不仅是对于高校的考验也是对于高校在学生管理上的一个巨大的考验。其中在位重要的就是校园的安全管理,学校不仅要给学生创造......
  • MySQL数据的导出
    有时需要将MySQL数据库中的数据导出到外部存储文件中,MySQL数据库中的数据可以导出成sql文本文件、xml文件或者html文件。本节将介绍数据导出的常用方法。11.4.1 使用SELECT…INTOOUTFILE导出文本文件MySQL数据库导出数据时,允许使用包含导出定义的SELECT语句进行数据的导出操......
  • SpringBoot&Mybatis的苏果超市商品销售管理系统 毕业设计源码93704
                            摘 要在网络信息的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,超市只能以用户为导向,按品种小批量组织生产,以产品的持续创新作为超市最......