MySQL设计数据表
一个数据表主要包含信息有 : 表名 、 主键 、 字段 、 数据类型 、 索引 ,本节主要介绍表的 命名规范 、 字段命名 、 字段的数据类型选择 。
本节内容新建的表都是新建在 "item_name" 数据库中的,新建 "item_name" 数据库命令如下 : CREATE DATABASE item_name;
新建数据库之后选择数据库: USE item_name;
你也可以自行新建一个数据库,自己命名就好。 1. 数据表命名规范
数据表命名是小写字母和下划线 _ 组成,用来分割不同单词之间的含义,例如 "student_course" 表示学生选课关联表,实际命名需要根据具体功能而定,好的 命名规范 在实际工作中也是很重要的。 2. 新建学生信息表 student2.1 确定字段
字段名称
含义
id
自增主键
name
学生姓名
age
学生年龄
id_number
身份证号
学生信息表包含的字段可以有很多,本小节选择学生姓名、年龄、身份证号介绍字段的选择,字段的确定是根据实际业务需求来新增或减少的,例如想要存储学生籍贯信息可新增 "address" 字段。 2.2 选择字段的数据类型
字段名称
数据类型
id
无符号整型(UNSIGNED INT)
name
VARCHAR(50)
age
UNSIGNED INT
id_number
VARCHAR(18)
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.新建教师信息表 teacher3.1 确定字段
字段名称
含义
id
自增主键
name
教师姓名
age
教师年龄
id_number
身份证号
同样教师信息的字段可选择也很多,这里选择教师姓名、教师年龄、教师身份证号,可自行选择感兴趣的字段,并参照新建学生表的步骤选择字段,如教师邮箱、教师博客地址。 3.2 选择字段的数据类型
字段名称
数据类型
id
无符号整型(UNSIGNED INT)
name
VARCHAR(50)
age
UNSIGNED INT
id_number
VARCHAR(18) 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.新建课程表 course4.1 确定字段
字段名称
含义
id
自增主键
course_name
课程名称
teacher_id
教师id 4.2 选择字段的数据类型
字段名称
数据类型
id
无符号整型(UNSIGNED INT)
course_name
VARCHAR(50)
teacher_id
无符号整型(UNSIGNED INT) 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_course5.1 确定字段
字段名称
含义
id
自增主键
student_id
学生id
course_id
课程id 5.2 选择字段的数据类型
字段名称
数据类型
id
无符号整型(UNSIGNED INT)
student_id
无符号整型(UNSIGNED INT)
course_id
无符号整型(UNSIGNED INT) 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`) );
执行结果如下图: