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补零不为空的行
总结!!!!