序言
今天去健身了,感觉把身体练好还是不错的,闲话不多说,把这个数据库所遇到的数据类型今天统统在这里讲清楚了,以后在看到什么数据类型,咱度应该认识,对我来说,最不熟悉的应该就是时间类型这块了。但是通过今天的学习,已经解惑了。下面就跟着我的节奏去把这个拿下吧。
---WH
一、数据类型
MySQL的数据类型有大概可以分为5种,分别是 整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型。现在可以来看看你对这5种类型的熟悉程度,哪个看起来懵逼了,那就说明自己哪个不熟悉,不理解。
注意:整数类型和浮点数类型可以统称为数值数据类型,这不难理解。
数值数据类型
整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT
浮点数类型:FLOAT、DOUBLE
定点小数:DECIMAL
日期/时间类型
YEAR、TIME、DATE、DATETIME、TIMESTAMP
字符串类型
CHAR、VARCHAR、TEXT、ENUM、SET等
二进制类型
BIT、BINARY、VARBINARY、BLOB
1、整数类型
不管你学什么语言,在基础方面,都应该知道 1个字节= 8位二进制数。 每个类型的取值范围也就能够知道,比如 TINYINT占用1个字节,也就是8位,2的8次方减1等于255,也就是说如果代表没符号的整数,该取值范围为0~255,如果是有符号的,最高位为符号号位,也就是2的7次方减1,也就是127,取值范围为-128~127, 为什么需要减1,这个问题就需要考虑临界值的问题了。而考虑临界值问题又有需要讨论原码补码反码的知识,这些度不是我们讨论的重点,所以在这就自行百度。给出一张范围表,给大家做参考。
不同整数类型的取值范围
根据自己所需去选取不同的类型名称,
例如:
CREATE TABLE aaa( id INT(10) PRIMARY KEY, age INT(6) ); |
这个例子中INT(10)、INT(6) 括号中的数字表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数。这里要注意:显示宽度和数据类型的取值范围是无关的,显示宽度只是指明MySQL最大可能显示的数字个数,注意是可能。通俗点讲就是,比如这个age字段,显示宽度为6,但是如果你插入的数据大于6,达到了8,6666 6666,那也没关系,只要插入的数值的位数不超过该类型整数的取值范围,就行,如果插入的数值长度是4,或者3,数值的位数小于指定的宽度,后面的位数就会由空格填空,5555插入age字段,存的就是"5555 "后面用空格补齐。还有一点,这个显示宽度没限制,你写100度没问题,但是插入数据时,实际起控制作用的还是数据类型的取值范围。如果不写显示宽度,就会用系统默认的,比如,INT的默认显示宽度是11,看上面表,最高也就能表示10位大小的数值,但是要注意,有符号的,也就是负数时,符号位也占一位。
新闻热点
疑难解答