MySQL数据类型和公共字段属性摘要

前言

像C++,多少字节需要定义int类型,多少字节定义双型,和MySQL将严格控制每一列的数据,这对数据驱动的应用成功的关键。M Preface

像C++,多少字节需要定义int类型,多少字节定义双型,和MySQL将严格控制每一列的数据,以数据驱动的application.mysql成功的关键,提供了一组可以分配给每一个表的列的数据类型。每个类型强制数据以满足为数据类型预定的一组规则,如大小、类型和格式。

这里是数据类型的总结。MySQL中的数据类型可以分为两类:日期和时间、值和字符串。

日期和时间数据类型






MySQL数据类型
意义


日期
3个字节,日期,格式:2014-09-18


时间
3 bytes, time, format: 08:42:30


日期时间
8个字节,日期和时间格式:2014-09-18 08:42:30


时间戳
4字节,自动存储时间来记录更改。



1字节,年





数字数据类型



整数



MySQL数据类型
意义(签字)


Tinyint
1字节,范围(- 128~127)


smallint
2字节,范围(- 32768~32767)


MEDIUMINT
3字节,范围(- 8388608~8388607)


int
4字节,范围(- 2147483648~2147483647)


bigint
8字节,范围(18倍+ + 9.22 * 10)






上面的定义是符号,当然,您也可以添加无符号关键字,定义为无符号类型,然后对应于读的范围,例如:

无符号的字段的取值范围为0 ~ 255。

浮动



MySQL数据类型
意义


浮子(M,D)
4字节,单精度浮点型,m,D小数总数


双(m,d)
8字节,双精度浮点类型,总的M,D,十进制数


十进制(m,d)
十进制是一个以字符串形式存储的浮点数。






我在MySQL中设置了一个浮动列表(5, 3);下面的实验完成了:

1。插入123.45678,最终结果是99.999。

2。插入123.456,最终查询结果为99.999。

三.插入12.34567,最终查询结果为12.346。

因此,在使用浮点类型时,应注意陷阱并将实际结果插入数据库中。

字符串数据类型



MySQL数据类型
意义


查尔(N)
固定长度,最多255个字符


varchar(n)
可变长度,最多65535个字符


tinytext
可变长度,最多255个字符


文本
可变长度,最多65535个字符


mediumtext
可变长度,最多2个24平方- 1个字符


单引号字符
可变长度,最多2个32平方- 1个字符




在1.char(N)和varchar(n),括号中的字符数是不是字节数,所以用中文UTF8意味着我可以插入M,但实际上以m×3字节。

2,同时,焦炭和varchar之间最大的区别是,字符将不顾实际价值占N个字符的空间。varchar只会占据空间+ 1,实际字符应该占据,与真实空间+ 1 <= N.

三.当N是在CHAR和VARCHAR,字符串被截断。

对4.char上限为255个字节,varchar的上限是65535字节,和文本的上限是65535。

5.char将截断的空间在商店而VARCHAR和文本不结束。

6.varchar使用1-3个字节存储的长度,和文字不。

其他类型

(一1.enum member65535 )

枚举数据类型被定义为一个枚举包含多达65535个不同的成员。当一列枚举的定义,该列的值限制列中的值定义。如果列声明包含空性,空会被认为是一种有效值和默认值。如果无效的宣告,列表中的第一个成员的默认值。

2.set(会员,member64 member2 )

集合数据类型为一组预定义值中的一组零或多个值提供了一种方法,该方法至多包含64个成员。

数据类型属性

MySQL中的数据类型概述如下。当然,上述总结并不全面。如果我们要全面总结这些内容,有几篇文章是不够的,下面是一些常用的属性。

1.auto_increment

auto_increment可以分配标识符到新插入的行唯一的整数。列指定此属性为每个新插入的行+ 1插上一次ID。

MySQL需要的auto_increment属性使用一个列作为主键。此外,只有一个auto_increment列允许为每个表。例如:

复制代码代码如下所示:

不空auto_increment主键ID smallint



2.binary

二进制属性仅用于CHAR和VARCHAR值。当该属性指定的列,这样的一种情况是敏感案件排序。相反,当二进制属性将被忽略,这样的一种情况是不区分大小写排序。例如:

复制代码代码如下所示:

主机名(25)二进制非空字符



3.default

默认属性确保如果某个值可用,则必须给出一个常量值。该值必须是常量,因为MySQL不允许插入函数或表达式的值。此外,这个属性不能用于BLOB或文本列。如果为空的属性已为该列指定,默认值为NULL时,默认值是不指定或默认值将取决于这个字段的数据类型,例如:

复制代码代码如下所示:

订阅枚举(0,1)不为空的默认'0'



4.index

如果所有其他因素都相同,加快数据库的查询,使用索引通常是最重要的一步。索引列创建一个有序数组的键列,其中每个点对应的表格线。在未来,键的有序阵列可以搜索输入条件,这将大大提高性能相比整个表没有索引的搜索。

复制代码代码如下所示:

创建表的员工



varchar(9)不为空的ID,

(15)firstName varchar不空,

lastName varchar(25)不为空,

varchar(45)不为空的邮件,

varchar(10)不为空的电话,

指数LastName(姓),

主键(id)

);



在创建表之后,我们还可以使用mysql创建索引命令来增加索引:

复制代码代码如下所示:

创建员工指标姓(姓氏(7));



这一次,只有名称的前7个字符被索引,因为可能没有其他字母来区分不同的名称。由于使用较小索引的性能更好,因此在实践中应该尽可能使用小索引。

5.not空

如果一个列被定义为非空,则该列将不允许插入null值。建议在重要情况下总是使用非null属性,因为它提供了基本验证,以确保所有必要的值都已传递给查询。

6.null

当为列指定null属性时,不管列中的其他列是否已经填充,列都可以保持为空。记住,NULL的确切语句不是,不是空字符串或0。

7.primary关键

主键属性是用来确保指定行的唯一性。在一个列指定为主键的值,不能重复,也不是空的。这是很常见的分配auto_increment属性指定为主键的列,因为这一栏没有列数据任何关系,但作为一个唯一的标识符。主要分为以下两种:

(1)单域主键

如果每一行输入数据库有一个inmodifiable唯一标识符,单字段主键是普遍使用。请注意,一旦这个主键的设置,就不能再次修改。

(2)多字段主键

如果在记录中的字段不能保证唯一性,你可以使用多字段主键。在这一点上,多个字段的组合来保证唯一性。如果发生这种情况,最好是指定一个auto_increment整数作为主键。

8.unique

给定唯一属性的列将确保所有值都有不同的值,但可以重复null值。通常指定列为唯一,以确保列的所有值都是不同的:

复制代码代码如下所示:

电子邮件varchar(45)独特的



9.zerofill

的补零属性可以用于任何数字类型和填充剩余的所有领域空间0。例如,对unsigned int的默认宽度是10;因此,当零填充的int值是4,它将被表示为000000000个4。例如:

复制代码代码如下所示:

int unsigned补零不为空的行



总结!!!!