MySQL的数据类型有哪些呢?

5个月前 (10-16 07:16)阅读4回复0
xx
xx
  • 管理员
  • 注册排名6
  • 经验值143590
  • 级别管理员
  • 主题28718
  • 回复0
楼主

  数字类型根据我的分类办法分为三类:整数类、小数类和数字类。

我所谓的“数字类”,就是指 DECIMAL 和 NUMERIC,它们是统一品种型。它严酷的说不是一种数字类型,因为他们现实上是将数字以字符串形式保留的;他的值的每一位 (包罗小数点) 占一个字节的存储空间,因而那品种型消耗空间比力大。

  但是它的一个凸起的长处是小数的位数固定,在运算中不会“失实”,所以比力合适用于“价格”、“金额”如许对精度要求不高但准确度要求十分高的字段。

小数类,即浮点数类型,按照精度的差别,有 FLOAT 和 DOUBLE 两种。它们的优势是切确度,FLOAT 能够暗示绝对值十分小、小到约 1。

  17E-38 (0。000。。。0117,小数点后面有 37 个零) 的小数,而 DOUBLE 更是能够暗示绝对值小到约 2。22E-308 (0。000。。。0222,小数点后面有 307 个零) 的小数。FLOAT 类型和 DOUBLE 类型占用存储空间别离是 4 字节和 8 字节。

  若是需要用到小数的字段,精度要求不高的,当然用 FLOAT 了。可是说句其实话,我们“民用”的数据,哪有要求精度那么高的呢?那两品种型至今我没有用过――我还没有碰到合适于利用它们的事例。

用的最多的,最值得精打细算的,是整数类型。从只占一个字节存储空间的 TINYINT 到占 8 个字节的 BIGINT,挑选一个“够用”而且占用存储空间最小的类型是设想数据库时应该考虑的。

  TINYINT、SMALLINT、MEDIUMINT、INT 和 BIGINT 占用存储空间别离为 1 字节、2 字节、3 字节、4 字节和 8 字节,就无符号的整数而言,那些类型能暗示的更大整数别离为 25

5、6553

5、1677721

5、4294967295 和 18446744073709551615。

  若是用来保留用户的年龄 (举例来说,数据库中保留年龄是不成取的),用 TINYINT 就够了;九城的《纵横》里,各项技能值,用 SMALLINT 也够了;若是要用做一个必定不会超越 16000000 行的表的 AUTO_INCREMENT 的 IDENTIFY 字段,当然用 MEDIUMINT 不消 INT,试想,每行节约一个字节,16000000 行能够节约 10 兆多呢。

0
回帖

MySQL的数据类型有哪些呢? 期待您的回复!

取消