MySQL数据类型
2023-12-13 15:00:08
数据类型(
data_type
)是指系统中所允许的数据的类型。
MySQL
数据类型定义了列中可以存储什么数据以及
该数据怎样存储的规则。
数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据。例如,列中存储的为数字,
则相应的数据类型应该为数值类型。
如果使用错误的数据类型可能会严重影响应用程序的功能和性能,所以在设计表时,应该特别重视数据列所用
的数据类型。更改包含数据的列不是一件小事,这样做可能会导致数据丢失。因此,在创建表时必须为每个列
设置正确的数据类型和长度。
MySQL
的数据类型有大概可以分为
3
种,分别是数值类型、日期和时间类型、字符串类型等
数值类型?
?
在
int
(
integer
) 系列中,只能存储整型值,且可以在后面用括号指定显示的尺寸(
M
),如果不指定则会默认分配。如果实际值的显示宽度大于设定值,将会显示实际值而不会截断以适应显示尺寸。
如
smallint(3)
中的
3
即为显示尺寸,即显示三位的数值(不包括
-
号)
int
类型可以指定
UNSIGNED
属性,即无符号(非负),所以存储范围有两种
在
float
、
double
及
decimal
类型中,不能指定
UNSIGNED
属性,其显示尺寸包含了小数点精度
(
D
),即
float(3,1)
保存范围为
-99.9
至
99.9
decimal
必须指定显示尺寸(
M
)和小数点精度(
D
),
float
和
double
都是可选的
在可能涵盖取值范围的基础上,尽可能选择较小的类型以提高效率和节约存储空间,如年龄,就选
择
tinyint(3)
。该原则对于字符类型同样适用
字符串(文本)类型
char与varchar的区别?
char (15)
长度固定, 如
'www.javazx.com'
存储需要空间
14
个字符
varchar(15)
可变长 如
'www.javazx.com'
需要存储空间
15
字符
,
char(10)
如果你存
abc
,需要空间为
10
,
3
个存
abc
,
7
个存空字符,因为
char
是固定长度
varchar(10)
如果你存
abc
,需要空间为
4
,
3
个存
abc
,
1
个存长度,
varchar
是可变长度,超过
10
的部分,都会被截断
从上面可以看得出来
char
长度是固定的,不管你存储的数据是多少他都会都固定的长度。而
varchar
则处 可变长度但他要在总长度上加1
字符,这个用来存储位置。所以实际应用中用户可根据自己的数据类型 来做。
由于某种原因
char
固定长度,所以在处理速度上要比
varchar
快速很多,但是对费存储空间,所以对存储不大,但在速度上有要求的可以使用char
类型,反之可以用
varchar
类型来实例。
个人建意:
myisam
存储引擎 建议使用固定长度,数据列代替可变长度的数据列。
memory
存储引擎 目前都使用固定数据行存储,因此无论使用
char varchar
列都没关系,
innodb
存储引擎 建意使用
varchar
类型
MySQL 5.0以上的版本:
1.
一个汉字占多少长度与编码有关:
UTF
-
8
:一个汉字=
3
个字节
GBK
:一个汉字=
2
个字节
2.varchar(n)
表示
n
个字符,无论汉字和英文,
Mysql
都能存入
n
个字符,仅是实际字节长度有所区别
3.MySQL检查长度,可用SQL语言: select length(字段名) from tablename 来查看
varchar类型的均按照字符数截断
时间日期类型
?温馨提示:在 PHP 中,一般情况下对于时间都是按照 UNIX 时间戳以 int 类型存储于表中,再根 据实际需要用 PHP 的时间函数进行处理,但不完全都是这样
文章来源:https://blog.csdn.net/2301_79265530/article/details/134964982
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!