文章目录
mysql的数据类型
什么是数据类型?
数据类型是指数据列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
如何选择数据类型?
根据数据的需要选择数据类型。
整型
TINYINT 有符号值:-128-127 字节:1
无符号值:0-255
SMALLINT 有符号值:-2*15到2*15-1 字节:2
无符号值:0到2*16-1
MEDIUMINT 有符号值:-2*23到2*23-1 字节:3
无符号值:0到2*24-1
INT 有符号值:-2*31到2*31-1 字节:4
无符号值:0到2*32-1
BIGINT 有符号值:-2*63到2*63-1 字节:8
无符号值:0到2*64-1
浮点数和定点数类型
mysql中使用浮点数和定点数来表示小数。
1、浮点数类型:
FLOAT[(M,D)] 字节:4
M(精度=整数位数+小数位数);小数点之前的位数加上小数点之后的位数之和;D(标度)是小数点后的位数
DOUBLE[(M,D)] 字节:8
2、定点数类型:
DECIMAL[(M,D)] 用来存放要求精度比较高的数值
如:一个图书借阅管理系统:
业务需求:
图书管理系统主要提供图书信息和读者基本信息的维护和借阅等功能;
读者借阅图书的押金为200 ,读者账户余额不能低于200元,每借阅一本图书为图书价格的5%。
数据需求:
图书类别表
图书信息表
读者信息表
借阅信息表
表中的数据有数字、字符串、日期等
日期时间型
列类型 | 字节数 | 取值范围 | 表示形式 |
---|---|---|---|
YEAR | 1 | 1901~2155 | YYYY |
TIME | 3 | -838:59:59~838:59:59 | HH:MM:SS |
DATE | 4 | 1000-01-01~9999-12-31 | YYYY-MM-DD |
DATETIME | 8 | 1000-01-01 00:00:00~9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS |
TIMESTAMP | 4 | 19700101080001~20380119111407 | YYYY-MM-DD HH:MM:SS |
TIMESTAMP时间戳,范围比DATETIME小
字符串类型
字符串类型用来存储字符串数据,除了可以存储字符串数据之外还可以存储其他数据,比如图片和声音的二进制数据。
1、CHAR(M)是定长类型,存储需求:0<=M<=255,用空格补齐
2、VARCHAR(M)是变长类型,存储需求:L+1个字节,其中L<=M且0<=M<=65535,M是最大字节
注意:一个字节可以存储一个汉字
TEXT 直接存储一个比较大的文本
包括TINYTEST 存储需求:0~2^8-1
TEST 存储需求:0~2^16-1
MEDIUMTEST 存储需求:0~2^24-1
LONGTEST 存储需求:0~2^32-1
3、枚举类型:取值范围在创建表时以列表的形式给出
ENUM(‘value1’,‘value2’,…) 存储需求:取决于枚举值的个数(最多65535个值)eg:enum('男‘,‘女’)
4、SET(‘value1’,‘value2’,…) 存储需求:取决于set成员的个数(最多64个成员)
如果只能选择列表中的一个则用ENUM类型,选择列表中多个值的组合则用SET类型。