美文网首页
2018-12-28 Mysql 中字段的正确定义

2018-12-28 Mysql 中字段的正确定义

作者: rub1cky | 来源:发表于2019-01-07 22:35 被阅读0次

    mysql SQL语句中的含义

    1. unsigned
      整型的每一种都分有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据

    1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是

    -128到127

    1.BIT[M]

    位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1

    2.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4

    很小的整数。带符号的范围是-128到127。无符号的范围是0到255。

    1. BOOL,BOOLEAN

    是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。

    4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6

    小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。

    5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9

    中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

    1. INT[(M)] [UNSIGNED] [ZEROFILL] M默认为11

    普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

    7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20

    大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。

    注意:这里的M代表的并不是存储在数据库中的具体的长度,以前总是会误以为int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是大错特错的。

    tinyint(1) 和 tinyint(4) 中的1和4并不表示存储长度,只有字段指定zerofill是有用,
    如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充。

    char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是:

    char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它的右边用空格字符补足.

    (在检索操作中那些填补出来的空格字符将被去掉)

    在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节)

    相关文章

      网友评论

          本文标题:2018-12-28 Mysql 中字段的正确定义

          本文链接:https://www.haomeiwen.com/subject/ypkslqtx.html