Mysql——文字类
Mysql数据库存储类型:
存储引擎:
myisam
1. 15.5版本及以下默认存储方式
2. 存储的文件为:表结构,数据,索引。
3. 支持表级锁
适合做读,插入数据比较频繁的,对修改和删除涉及少的。不支持失误、行级锁和外键。
innodb
1. 15.6版本以上默认存储方式
2. 存储的文件为:结构,数据(索引和数据存在一起)
3. 支持行级锁,事务,外键,表级锁
适合并发比较高,对事务一致性要求高的,相对更适应频繁的修改和删除操作。
memory
1. 数据存在内存中
2. 表结构存在硬盘上
3. 查询速度快
4. 重启后数据丢失
行级锁:
能够更好的处理并发同时修改数据问题,将表中的能某一行数据进行锁定,确保数据在修改是没有被提取,没有脏数据产生(不准确的数据)
事务:
将几句mysql语句进行一个合并,合并后统一进行处理,不可以拆分,如中间中断将全部不生效。
外键:
将表之间进行关联,并进行数据的连接。像游戏中每个账号有多个角色,而每个角色的背包内容都不一样。需要一一的关联。
数值类型:
整数:
- 创建时,创建长度不生效(只是显示长度)
- 不能超过其范围值,超过就只保存最后一位(127为规定最长长度看,写129,也会成为127)
- 默认是有符号的,unsigned进行负值的取消。
小数:
- FLOAT和DOUBLE不会非常准确,会存在2进制与十进制之前转换的错误可能性。DECIMAL为非常准确。
- 在设置完小数点位数后,加入多的数值将会进行四舍五入。
- 单精度默认为小数点后五位,双精度默认为小数点后16位
- DECIMAL默认为只存整数,需要指定位数。
类型 |
大小 |
范围(有符号) |
范围(无符号)unsigned约束 |
特点 |
TINYINT |
1 字节 |
(-128,127) |
(0,255) |
小整数值 常用语年龄等确认不超过255的数值 存储字节非常小 |
SMALLINT |
2 字节 |
(-32 768,32 767) |
(0,65 535) |
大整数值 |
MEDIUMINT |
3 字节 |
(-8 388 608,8 388 607) |
(0,16 777 215) |
大整数值 |
INT或INTEGER |
4 字节 |
(-2 147 483 648,2 147 483 647) |
(0,4 294 967 295) |
大整数值 常用的类型字段 默认是有符号的 只能约束显示宽度 |
BIGINT |
8 字节 |
(-9 233 372 036 854 775 808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) |
极大整数值 |
FLOAT |
4 字节 float(255,30) 255表示一共多少位数值,30表示占用255内小数点后多少位。 |
(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) |
0,(1.175 494 351 E-38,3.402 823 466 E+38) |
单精度 最常用 |
DOUBLE |
8 字节 double(255,30),同上 |
(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
双精度 |
DECIMAL |
对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 double(65,30) |
依赖于M和D的值 |
依赖于M和D的值 |
小数值 非常精准 长度略有不足 默认只存整数 使用字符类进行存储 |
日期与时间类型:
- 写入数据时,使用now()为写入当前的数据库时间。
-
NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,在datetime后加上后,可以使值在不赋值使自动生成当前时间进行插入。
- 可以以数字形态:20191230210000 也可以以字符串形式:'2019-12-30 21:00:00'书写
类型 | 大小 (字节) |
范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 年月日 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时分秒 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 年月日时分秒 |
TIMESTAMP | 4 |
1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 |
YYYYMMDD HHMMSS |
混合日期和时间值,时间戳 默认不写也会进行传值。 |
字符串类型:
- char设置长度后,不足将会以空格形式自动补齐
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255字节 |
定长字符串 常用 定长单位 浪费空间 存取效率相对较高 长度较为固定,幅度不会太多(手机,身份证号等) |
VARCHAR | 0-65535 字节 |
变长字符串 常用 变长单位 节省空间 存储效率相对低 长度不一,幅度较大(评论,说说等) |
TINYBLOB | 0-255字节 | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255字节 | 短文本字符串 |
BLOB | 0-65 535字节 | 二进制形式的长文本数据 |
TEXT | 0-65 535字节 | 长文本数据 |
MEDIUMBLOB | 0-16 777 215字节 | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295字节 | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295字节 | 极大文本数据 |
- enum单选,只能选择以设置值中的一个值。比如(选择性别)
- set多选,能选择多个以设置的值。比如(选择爱好)
- 如果不在范围内,将会不输入。
- set自动去重,
创建格式:

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)