数据库列类型
数据库列类型
数值
tinyint 十分小的数据 1个字节
smallint 较小的数据 2个字节
mediumint 中等大小的数据 3个字节
int 标准的整数 4个字节 常用的int
bigint 较大的数据 8个字节
float 浮点数 4个字节
double 浮点数 8个字节―(精度问题!)
decimal 字符串形式的浮点数﹐金融计算的时候,一般是使用decimal
字符串
char 字符串固定大小的0~255o
varchar 可变字符串0~65535 常用的变量String
tinytext 微型文本(2^8)-1
text 文本串 (2^16)-1保存大文本
时间日期
date YYYY-MM-DD, 日期格式.
time HH: mm: ss 时间格式
datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式
timestamp 时间戳,1970.1.1到现在的毫秒数!也较为常用!
year年份表示
null
null 未知,一般不用null进行计算,结果会使null
数据库字段属性(列属性)
Unsigned:
- 无符号的整数
- 声明了该列不能声明为负数
zerofill:
- 0填充的
- 不足的位数,使用0来填充,int(3),5 ---> 005
自增:
- 通常理解为自增,自动在上一条记录的基础上+1(默认)
- 通常用来设计唯一的主键~ index,必须是整数类型
- 可以自定义设计主键自增的起始值和步长
非空NUll not null
- 假设设置为not null ,如果不给它赋值,就会报错!
- NUII,如果不填写值,默认就是null !
每一个表,都必须存在以下五个字段!未来做项目用的,表示一个记录存在意义!
id主键
`version` 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt__update 修改时间
建表
-- 目标:创建一个school数据库
-- 创建学生表(列,字段) 使用SQL创建
-- 学号int登录密码varchar(20) 姓名,性别varchar(2),出生日期(datatime) ,家庭住址, email
-- 注意点,使用英文(),表的名称和字段尽量使用`` 括起来
-- AUTO_ INCREMENT 自增
-- 字符串使用单引号括起来!
CREATE TABLE IF not EXISTS `student`(
`ID` int(4) not NULL COMMENT'学号',
`name` VARCHAR (20) not NULL DEFAULT'匿名' COMMENT'姓名',
`psw` VARCHAR(20) not NULL DEFAULT'123456' COMMENT'密码',
`sex` VARCHAR(2) not NULL DEFAULT'女' COMMENT'性别',
`birthday` datetime not null COMMENT'生日',
`address` VARCHAR(100) DEFAULT null COMMENT'家庭住址',
`email` VARCHAR(50) DEFAULT null COMMENT'邮箱',
PRIMARY KEY (`ID`)
)ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
格式
CREATE TABLE IF not EXISTS `student`(
`字段名` 列类型 [属性] [索引] [注释],
.....
`字段名` 列类型 [属性] [索引] [注释],
)[表类型][字符集设置][注释]
-- 常用命令
SHOW CREATE DATABASE school -- 查看创建数据库的语句
SHOW CREATE TABLE student -- 查看student数据表的定义语句
DESC student -- 显示表的结构
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~