数据类型:
-
整数
类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4 字节 BIGINT 8 字节 注意事项:
-
默认情况,整数是有符号的,(可通过unsigned去设置为无符号整型)
-
存入的数据值 超过数据类型表示的最大范围时,会自动取最大值。
-
查看局部环境变量,即当前连接的环境变量。@@,例如:select @@sql_mode;
-
查看全局环境变量,即所有连接的环境变量。@ ,例如:select @sql_mode;
-
解决办法:设置严格模式(可写入配置文件)。
set sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
指定长度:int(长度)
-
-
-
浮点
类型 大小 范围(有符号) 范围(无符号) 用途 FLOAT 4 字节 可以精确到大约5位 单精度
浮点数值DOUBLE 8 字节 比float更精确 双精度
浮点数值DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2。M最大为65,D最大为30 小数值 -
字符串
类型 大小 特点 优点 用途 CHAR 0-255字节 定长 效率高,消耗空间 定长字符串 VARCHAR 0-65535 字节 可变长度 效率低,节省空间 变长字符串 BLOB 0-65 535字节 二进制形式的长文本数据 TEXT 0-65 535字节 长文本数据 LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据 LONGTEXT 0-4 294 967 295字节 极大文本数据 mysql一般不存储大型的多媒体数据,一般都存储媒体数据的地址指向其他服务器的地址。
PS:char(10) 表示存储10个字符;int(10) 表示显示的数据长度。如下示例:
# 创建t9表 mysql> create table t9 (age int(3)); Query OK, 0 rows affected (0.46 sec) mysql> insert into t9 values(1); Query OK, 1 row affected (0.04 sec) mysql> insert into t9 values(1111); Query OK, 1 row affected (0.29 sec) # 能插入大于3位的整数 mysql> select * from t9; +------+ | age | +------+ | 1 | | 1111 | +------+ 2 rows in set (0.00 sec) # 更改age字段的属性 mysql> alter table t9 modify age int zerofill; Query OK, 2 rows affected (0.79 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from t9; +------------+ | age | +------------+ | 0000000001 | | 0000001111 | +------------+ 2 rows in set (0.00 sec) # 更改age字段的属性 mysql> alter table t9 modify age int(4) zerofill; Query OK, 0 rows affected (0.30 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> select * from t9; +------+ | age | +------+ | 0001 | | 1111 | +------+ 2 rows in set (0.00 sec) # 由此可见,int(4)表示显示4位长度数据时,不足的部分是被填充了,再我们使用zerofill约束之后,观点得到了验证
-
日期和时间和时间戳
类型 大小 范围 格式 用途 YEAR 1 1901/2155 YYYY 年份 DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 年月日 TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间 DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值 TIMESTAMP 4 混合日期和时间值,时间戳 TIMESTAMP类型,同列的字段被更改之后,类型为TIMESTAMP的字段时间会被更新
-
枚举和集合
集合
类型 大小 最大成员数量 范围(无符号) 用途 set 1/2/3/4/8,取决与集合成员的数量 64 特点:
可一选多
枚举
类型 大小 最大成员数量 范围(无符号) 用途 enum 1or2,取决枚举成员的数量 65535 特点:
只能一选一