找回密码
 立即注册
查看: 48|回复: 0

创建数据库表结构以及表字段类型,根据产品原型/需求创建表设计合理的数据类型

[复制链接]

73

主题

3

精华

77

金币

技术维护QQ:515138

积分
165
发表于 2025-11-15 08:47:13 | 显示全部楼层 |阅读模式
创建数据库表结构以及表字段类型,根据产品原型/需求创建表设计合理的数据类型
  1. create table tb_user (
  2.     id int primary key auto_increment comment 'ID,唯一标识', #主键自动增长
  3.     username varchar(20) not null unique comment '用户名',
  4.     name varchar(10) not null comment '姓名',
  5.     age int comment '年龄',
  6.     gender char(1) default '男' comment '性别'
  7. ) comment '用户表';
复制代码
MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。
1). 数值类型
类型
大小
有符号(SIGNED)范围
无符号(UNSIGNED)范围
TINYINT
1byte
(-128,127)(0,255)
SMALLINT
2bytes
(-32768,32767)(0,65535)
MEDIUMINT
3bytes
(-8388608,8388607)(0,16777215)
INT/INTEGER
4bytes
(-2147483648,2147483647)(0,4294967295)
BIGINT
8bytes
(-2^63,2^63-1)(0,2^64-1)
FLOAT
4bytes
(-3.402823466 E+38,3.402823466351 E+38)0 和 (1.175494351 E-38,3.402823466 E+38)
DOUBLE
8bytes
(-1.7976931348623157 E+308,1.7976931348623157 E+308)0 和 (2.2250738585072014 E-308,1.7976931348623157 E+308)
DECIMAL

依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度)的值
2). 字符串类型
类型
大小
描述
CHAR
0-255 bytes定长字符串(需要指定长度)
VARCHAR
0-65535 bytes变长字符串(需要指定长度)
TINYBLOB
0-255 bytes不超过255个字符的二进制数据
TINYTEXT
0-255 bytes短文本字符串
BLOB
0-65 535 bytes二进制形式的长文本数据
TEXT
0-65 535 bytes长文本数据
MEDIUMBLOB
0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT
0-16 777 215 bytes中等长度文本数据
LONGBLOB
0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT
0-4 294 967 295 bytes极大文本数据
char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些。
3). 日期时间类型
类型
大小
范围
格式
描述
DATE
3
1000-01-01 至 9999-12-31YYYY-MM-DD日期值
TIME
3
-838:59:59 至 838:59:59HH:MM:SS时间值或持续时间
YEAR
1
1901 至 2155YYYY年份值
DATETIME
8
1000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP
4
1970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳


表结构设计-案例


需求:根据产品原型/需求创建表((设计合理的数据类型、长度、约束)
1.png

  1. create table emp(
  2.     id int unsigned primary key auto_increment comment 'ID,主键',
  3.     username varchar(20) not null unique comment '用户名',
  4.     password varchar(32) not null comment '密码',
  5.     name varchar(10) not null comment '姓名',
  6.     gender tinyint unsigned not null comment '性别, 1:男, 2:女',
  7.     phone char(11) not null unique comment '手机号',
  8.     job tinyint unsigned comment '职位, 1:班主任,2:讲师,3:学工主管,4:教研主管,5:咨询师',
  9.     salary int unsigned comment '薪资',
  10.     image varchar(255) comment '头像',
  11.     entry_date date comment '入职日期',
  12.     create_time datetime comment '创建时间',
  13.     update_time datetime comment '修改时间'
  14. ) comment '员工表';
复制代码
综合项目:
JavaWeb(SpringBoot3+vue3)开发+教学管理系统项目实战

网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2025-12-1 07:02

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表