版权声明:由于作者水平有限,文中难免有误,欢迎各位业界同仁斧正! https://blog.csdn.net/UserPython/article/details/82776681
数据类型是指数据列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型
整型
数据类型 | 取值范围 | 说明 | 字节 |
---|---|---|---|
TINYINT | 有符号值:-127~127 无符号值:0~255 |
最小的整数 | 1字节 |
BIT | 有符号值:-127~127 无符号值:0~255 |
最小的整数 | 1字节 |
BOOL | 有符号值:-127~127 无符号值:0~255 |
最小的整数 | 1字节 |
SMALLINT | 有符号值:-32 768 ~32 767 | 小型整数 | 2字节 |
MEDIUMINT | 有符号值:-8 388 608~8 388 607 无符号值:0~16 777 215 |
中型整数 | 3字节 |
INT | 有符号值:-2 147 683 648~2 147 683 647 无符号值:0~4 294 967 295 |
标准整数 | 4字节 |
BIGINT | 有符号值:-9 223 372 036 854~9 223 372 036 854 775 807 无符号值:0~18 446 744 073 709 551 615 |
大整数 | 8字节 |
浮点型和定点数
- MySQL中使用浮点数和定点数来表示小数
数据类型 | 取值范围 | 说明 | 字节 |
---|---|---|---|
FLOAT | -3.402823464E+38到1.175494351E-38 、0和 1.175494351E-38到3.402823466E+38 |
单精度浮点数 | 4字节 |
DOUBLE | +(-) 1.797 693 134 862 315 7E+308、0和 +(-) 2.225 073 858 507 201 4E+308 |
双精度浮点数 | 8字节 |
DECIMAL(n, m) | 表示树脂中共有n位数,其中整数n-m位,小数m位 例:decimal(10, 6), 数值中共有10位数,其中整数占4位,小数占6位 |
定点数类型 | 自定义长度 |
日期时间型
类型 | 取值范围 | 表达形式 | 字节 |
---|---|---|---|
YEAR | 1901~2155 | YYYY | 1 |
TIME | -838:59:59~838:59:59 | HH:MM:SS | 3 |
DATE | 1000-01-01~9999-12-31 | YYYY-MM-DD | |
DATETIME | 1000-01-01 00:00:00~9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 8 |
TIMESTAMP | 1970010180001~20380119111407 | YYYY-MM-DD HH:MM:SS | 4 |
字符型
- 字符串类型用来存储字符串数据,除了可以存储字符串数据之外,还可以存储其他数据,比如图片和声音的二进制数据
类型 | 存储需求 | 说明 |
---|---|---|
CHAR(M) | M 个字节, 0 <= M <= 255 | M是定长,在创建时就固定长度(一个字节存储一个汉字) |
VARCHAR(M)1 | L + 1个字节,其中L<=M且0<=M<=65535 | L为实际使用字符的范围 |
TINYTEXY | 0~255 | 一般储存比较大的文本,如一篇文章 |
TEXT | 0~65535 | |
MEDIUMTEXT | 0 - 224 -1 | |
LONGTEXT | 0 - 223 - 1 | |
ENUM(‘value1’, ‘value2’, …) | 取决于枚举值得个数(最多65,535)例:性别 enum(男,女) | 只能选择一个值 |
SET(‘value’, ‘value2’, …) | 取决于set成员的数目(最多64个成员) | 可以取多个值 |
假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。 假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。
当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。
VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要.
虽然VARCHAR使用起来较为灵活,但是从整个系统的性能角度来说,CHAR数据类型的处理速度更快,有时甚至可以超出VARCHAR处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡。 ↩︎