【MySQL】2.0 数据类型

MySQL的学习笔记:数据类型

实例:
Teacher(Teacher_id, Teacher_name, age, Enter_time ,professional)

Teacher_id Teacher_name age Enter_time professional
10101 潘多拉 35 1998-7-2 副教授
10102 吉米 27 2013-7-5 讲师
10103 郝本 45 1995-8-10 副教授
10201 田野 42 1994-7-15 副教授
10202 赵瑾 32 2012-7-12 讲师
20201 钱多多 50 1996-7-2 教授

MySQl数据类型

数据类型
数值类型
字符串类型
日期-时间类型
复合类型
二进制类型
小数类型
整数类型
enum类型
set类型

数值类型

整数类型

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 字节 (-128,127) (0,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 字节 (-9223372036854775808,9223372036854775 807) (0,18 446 744 073709 551 615) 极大整数值

例如:定义年龄字段age为无符号数,可以使用SQL片段:
age tinyint unsigned
其中用unsigned约束年龄age的取值不能为负数

小数类型

类型 大小 范围(有符号) 范围(无符号) 用途
FLOAT 4 字节 -3.402 823 466 E+38~-1.175 494 351 E-38 0和1.175 494 351 E-38~3.402 823 466 E+38 单精度浮点数值
DOUBLE 8 字节 -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 7E+308 双精度浮点数值
DECIMAL DECIMAL(length,precision) length决定小数的最大位数precision用于设置小数位数 length决定小数的最大位数precision用于设置小数位数 小数值

decimal(length, precision)用于表示精度确定(小数点后数字的位数确定)的小数类型,length决定该小数的最大位数,precision用于设置精度(小数点后数字的位数)。
例如:
decimal (5,2)表示小数取值范围:-999.99~999.99
decimal (5,0)表示: -99999~99999的整数。

日期类型

类型 字节大小 范围 格式 用途
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’ YYYY-MM-DD HH:MM:SS 混合日期和时间值,时间戳

字符串类型

类型 大小 用途
CHAR(n) 0-255字节 定长字符串
VARCHAR(n) 0-65535 字节 变长字符串
TINYTEXT 0-255字节 短文本字符串
TEXT 0-65 535字节 长文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据
  1. char是定长,无论实际字段多长,占用空间总为n
  2. varchar是变长,只要实际字段长度小于n,那么长度为实际长度

复合类型

类型 最大值 说 明 备注
Enum (“value1”,“value2”, …) 65535 该类型的列只可以容纳所列值之一或为NULL 类似单选框
Set (“value1”,“value2”, …) 64 该类型的列可以容纳一组值或为NULL 类似复选框

二进制类型

类型 大小 用途
Binary(n) 0-255字节 较短的二进制
VARBinary(n) 0-65535 字节 较长的二进制
Bit(n) 0-64字节 短二进制
TINYBLOB 0-255字节 较短的二进制
BLOB 0-65 535字节 图片、声音等文件
MEDIUMBLOB 0-16 777 215字节 图片、声音、视频等文件
LONGBLOB 0-4 294 967 295字节 图片、声音、视频等文件

一般规则

  1. 在符合应用要求(取值范围、精度)的前提下,尽量使用“短”数据类型
  2. 数据类型越简单越好
  3. 在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储日期和时间。
  4. 尽量采用精确小数类型(例如decimal),而不采用浮点数类型。
  5. 尽量避免NULL字段,建议将字段指定为NOT NULL约束。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章