MySQL数据库基础知识002
一、My yS SQ QL L 支 持 的 数 据 类
1、对于整型数据,MySQL 还支持在类型名称后面的小括号内指定显示宽度,例如 int(5)表
示当数值宽度小于 5 位的时候在数字前面填满宽度,如果不显示指定宽度则默认为 int(11)。
一般配合 zerofill 使用,顾名思义,zerofill 就是用“0”填充的意思,也就是在数字位数不够
的空间用字符“0”填满。
create table t1 (id1 int,id2 int(5)); insert into t1 values(1,1); alter table t1 modify id1 int zerofill;
2、设置了宽度限制后,如果插入大于宽度限制的值,会不会截断或者插不进去报错?
不会对插入的数据有任何影响,还是按照类型的实际精度进行保存
3、
浮点数如果不写精度和标度,则会按照实际精度值显示,如
果有精度和标度,则会自动将四舍五入后的结果插入,系统不会报错;定点数如果不写精度
和标度,则按照默认值 decimal(10,0)来进行操作,并且如果数据超越了精度和标度值,系统
则会报错。
4、字符串类型
MySQL 中提供了多种对字符数据的存储类型,不同的版本可能有所差异。以 5.0 版本为例,
MySQL 包括了 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等多种
字符串类型
CHAR 和 VARCHAR 很类似,都用来保存 MySQL 中较短的字符串。二者的主要区别在于存储
方式的不同:CHAR 列的长度固定为创建表时声明的长度,长度可以为从 0~255 的任何值;
而 VARCHAR 列中的值为可变长字符串,长度可以指定为 0~255 (5.0.3以前)或者 65535 (5.0.3
以后)之间的值。在检索的时候,CHAR 列删除了尾部的空格,而 VARCHAR 则保留这些空格。
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串
而不包含非二进制字符串。