Mysql——文字类

Mysql数据库存储类型:

存储引擎:

myisam

1. 15.5版本及以下默认存储方式

2. 存储的文件为:表结构,数据,索引。

3. 支持表级锁

适合做读,插入数据比较频繁的,对修改和删除涉及少的。不支持失误、行级锁和外键。

innodb

1. 15.6版本以上默认存储方式

2. 存储的文件为:结构,数据(索引和数据存在一起)

3. 支持行级锁,事务,外键,表级锁

适合并发比较高,对事务一致性要求高的,相对更适应频繁的修改和删除操作。

memory

1. 数据存在内存中

2. 表结构存在硬盘上

3. 查询速度快

4. 重启后数据丢失

行级锁:

能够更好的处理并发同时修改数据问题,将表中的能某一行数据进行锁定,确保数据在修改是没有被提取,没有脏数据产生(不准确的数据)

事务:

将几句mysql语句进行一个合并,合并后统一进行处理,不可以拆分,如中间中断将全部不生效。

外键:

将表之间进行关联,并进行数据的连接。像游戏中每个账号有多个角色,而每个角色的背包内容都不一样。需要一一的关联。

数值类型:

整数:

  1. 创建时,创建长度不生效(只是显示长度)
  2. 不能超过其范围值,超过就只保存最后一位(127为规定最长长度看,写129,也会成为127)
  3. 默认是有符号的,unsigned进行负值的取消。

小数:

  1. FLOAT和DOUBLE不会非常准确,会存在2进制与十进制之前转换的错误可能性。DECIMAL为非常准确。
  2. 在设置完小数点位数后,加入多的数值将会进行四舍五入。
  3. 单精度默认为小数点后五位,双精度默认为小数点后16位
  4. 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的值

小数值

非常精准

长度略有不足

默认只存整数

使用字符类进行存储

 

日期与时间类型:

  1. 写入数据时,使用now()为写入当前的数据库时间。
  2. NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,在datetime后加上后,可以使值在不赋值使自动生成当前时间进行插入。
  3. 可以以数字形态:20191230210000 也可以以字符串形式:'2019-12-30 21:00:00'书写
  4.  
类型 大小
(字节)
范围 格式 用途
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

混合日期和时间值,时间戳

默认不写也会进行传值。

 

字符串类型:

  1. 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类型
  1. enum单选,只能选择以设置值中的一个值。比如(选择性别)
  2. set多选,能选择多个以设置的值。比如(选择爱好)
  3. 如果不在范围内,将会不输入。
  4. set自动去重,

创建格式:

 

 

posted @   新兵蛋Z  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示