更多优质内容
请关注公众号

Mysql基础教程(二) Mysql数据表设计之字段类型和字段属性-张柏沛IT博客

正文内容

Mysql基础教程(二) Mysql数据表设计之字段类型和字段属性

栏目:数据库 系列:Mysql基础教程系列 发布时间:2019-11-06 15:31 浏览量:2144

数据表是数据库中的基本对象元素,以记录(行)和字段(列)组成的二维结构用于存储数据。数据表由表结构和表内容两部分组成,先建立表结构,然后才能输入数据。

数据表结构设计主要包括字段名称、字段类型和字段属性的设置。 通常情况下,同一个数据库中可以有多个数据表,但表名必须是唯一的,表中每一条记录描述了一个相关信息的集合,每一个字段必须为唯一的,每个字段都需要指定数据类型。

 

字段类型:

1.数字类型

数据列类型

存储空间

说明

取值范围

TINYINT

1字节

非常小的整数

带符号值:-128~127

无符号值:0~255

SMALLINT

2字节

较小的整数

带符号值:-32768~32767

无符号值:0~65535

MEDIUMINT

3字节

中等大小的整数

带符号值:-8388608~8388607

无符号值:0~16777215

INT

4字节

标准整数

带符号值:-2147483648~2147483647

无符号值:0~4294967295

BIGINT

8字节

大整数

带符号值:-263~263-1

无符号值:0~264-1

FLOAT

4或8字节

单精度浮点数

最小非零值:+- 1.175494351E-38

最大非零值:+- 3.402823466E+38

      DOUBLE   

8字节

双精度浮点数

最小非零值:+- 2.225073E-308

最大非零值:+- 1.797693E+308

DECIMAL

自定义

以字符串形式表示的浮点数

取决于存储单元字节数

整型注意事项: INT(3)、SMALLINT(3)等整型后面的数字不会影响数值的存储范围,只会影响显示 整型后面的数字只有配合零填充的时候才有实际意义。 整型后面的数字可以省略

浮点型注意事项: 浮点型后面的数字会将存入的数字四舍五入,例如:把一个1.234存入FLOAT(6,1)数据列中,结果是1.2,6代表显示长度,1代表小数位长度,会四舍五入。

 

2.字符串类型

数据列类型

存储空间

说明

取值范围

CHAR[(M)]

M字节

定长字符串

M字节

VARCHAR[(M)]

L+1字节

可变字符串

M字节

TINYBLOB,TINYTEXT

L+1字节

非常小的BLOB(二进制大对象)和文本串

28-1字节

BLOB,TEXT

L+2字节

小BLOB和文本串

216-1字节

MEDIUMBLOB,

MEDIUMTEXT

L+3字节

中等的BLOB和文本串

224-1字节

LONGBLOB,

LONGTEXT

L+4字节

大BLOB和文本串

232-1字节

ENUM(‘value1’,’value2’…)

1或2字节

枚举:可赋予某个枚举成员

65535个成员

SET(‘value1’,‘value2’…)

1,2,3,4或8字节

集合:可赋予多个集合成员

64个成员

 

字符串类型注意事项:

CHAR和VARCHAR类型的长度范围都在0~255之间

在使用CHAR和VARCHAR类型时,当我们传入的实际的值的长度大于指定的长度,字符串会被截取至指定长度

在使用CHAR类型时,如果我们传入的值的长度小于指定长度,实际长度会使用空格补至指定长度

在使用VARCHAR类型时,如果我们传入的值的长度小于指定长度,实际长度即为传入字符串的长度,不会使用空格填补

CHAR要比VARCHAR效率更高,当占用空间较大

BLOB和TEXT类型是可以存放任意大数据的数据类型

BLOB区分大小写,TEXT不区分大小写

ENUM和SET类型是特殊的的串类型,其列值必须从固定的串集中选择

ENUM只能选择其中一个值,SET可以选择多个值

 

3.日期和时间类型

数据列类型

存储空间

说明

取值范围

DATE

3 字节

“YYYY-MM-DD”格式表示的日期值

1000-01-01~9999-12-31

TIME

3 字节

“hh:mm:ss”格式表示的时间值

-838:59:59-838:59:59

DATETIME

8 字节

“YYYY-MM-DD hh:mm:ss”格式

1000-01-01 00:00:00~9999-12-31

TIMESTAMP

4 字节

“YYYYMMDDhhmmss”格式表示的时间戳

19700101000000-2037年的某个时刻

YEAR

1 字节

“YYYY”格式的年份值

1901~2155

 

日期类型注意事项:

存储日期时,我们可以使用整型 int 来进行存储时间戳,这样做便于我们进行日期的计算

 

NULL值注意事项:

NULL意味着“没有值”或“未知值”

可以测试某个值是否为NULL

不能对NULL值进行算术计算

对NULL值进行算术运算,其结果还是NULL

0或NULL都意味着假,其余值都意味着真

 

和PHP类似,在MySQL的表达式中,如果某个数据值的类型与上下文所要求的类型不相符,MySQL则会根据将要进行的操作自动地对数据值进行类型转换。

 

字段属性

UNSIGNED

只能用于设置数值类型,不允许出现负数

最大存储长度会增加一倍

 

ZEROFILL

只能用于设置数值类型,在数值之前会自动用0补齐不足的位数

 

AUTO_INCREMENT

用于设置字段的自动增长属性,每增加一条记录,该字段的值会自动加1

NULL和NOT NULL

默认为NULL,即插入值时没有在此字段插入值,默认为NULL值,如果指定了NOT NULL,则必须在插入值时在此字段填入值

 

DEFAULT

可以通过此属性来指定一个默认值,如果没有在此列添加值,那么默认添加此值




更多内容请关注微信公众号
zbpblog微信公众号

如果您需要转载,可以点击下方按钮可以进行复制粘贴;本站博客文章为原创,请转载时注明以下信息

张柏沛IT技术博客 > Mysql基础教程(二) Mysql数据表设计之字段类型和字段属性

热门推荐
推荐新闻