MySQL 数据类型
MySQL 数据类型
1、 NULL
①不同于’’,0 ②索引列必须是 not null ③Is null is not null ④order by 时null值最大 ⑤group by 时,null分为一组
⑥is null , is not null运算符 和 IFNULL()函数
⑦NULL值被特殊处理,timestamp类型的列:插入当前的日期和事件;auto_increment:最大值的下一个值。
2、 数字
①整形和浮点数;‘-’号;-32032.13e+10 , -320.34e-10; ②0x开头十六进制 , 经常被ODBC使用
3、 字符串
①单引号或上引号括起来 ② 转义字符:"0—null字符,不同于null值;"n新行符;"t;"b;"" ;"r—回车符;"%--%; "_
4、 时间
①日期:2009-02-22 时间:09:30:22
MySQL 列类型
1、 数字类型列
类型 |
说明 |
存储需求 |
取值范围 |
tinyint |
非常小的整数 |
1 |
有符号值:-128 到127(- 27 到27 - 1) |
smallint |
较小整数 |
2 |
有符号值:-32768 到32767(- 215 到215 - 1) |
mediumint |
中等大小整数 |
3 |
有符号值:-8388608 到8388607(- 22 3 到22 3 - 1 ) |
int |
标准整数 |
4 |
有符号值:-2147683648 到2147683647(- 231 到231- 1) |
bigint |
较大整数 |
8 |
有符号值:-9223372036854775808 到9223373036854775807(- 263到263-1) |
float |
单精度浮点数 |
4 |
最小非零值:±1.175494351e - 38 |
double |
双精度浮点数 |
8 |
最小非零值:±2.2250738585072014e - 308 |
decimal |
一个串的浮点数 |
m字节(mysql< 3.23),m+2字节(mysql> 3.23 ) |
可变;其值的范围依赖于m 和d |
2、 时期和时间类型
类型名 |
取值范围 |
存储需求 |
说明 |
date |
“1000-01-01”到“9999-12-31” |
3字节 |
“yyyy-mm-dd”格式表示的日期值 |
time |
“-838:59:59”到“838:59:59” |
3字节 |
“hh:mm:ss”格式表示的时间值 |
datetime |
“1000-01-01 00:00:00” 到“9999-12-31 23:59:59” |
8字节 |
“yyyy-mm-dd hh:mm:ss”格式 |
timestamp |
19700101000000 到2037 年的某个时刻 |
4字节 |
“yyyymmddhhmmss”格式表示的时间戳值 |
year |
1901 到2155 |
1字节 |
“yyyy”格式的年份值 |
3、 字符型
类型说明 |
最大尺寸 |
存储需求 |
|
char( m) |
m 字节 |
m 字节 |
定长字符串 |
varchar(m) |
m 字节 |
l + 1字节 |
可变长字符串 |
tinyblob tinytext |
28- 1字节 |
l + 1字节 |
非常小的blob(二进制大对象) 非常小的文本串 |
Blob text |
216 - 1 字节 |
l + 2字节 |
小blob 小文本串 |
Mediumblob mediumtext |
224- 1字节 |
l + 3字节 |
中等的blob 中等文本串 |
Longblob longtext |
232- 1字节 |
l + 4字节 |
大blob 大文本串 |
enum(“value1”, “value2”, ...) |
65535 个成员 |
1 或2字节 |
枚举;列可赋予某个枚举成员 |
set (“value1”, “value2”, ...) |
64个成员 |
1、2、3、4 或8字节 |
集合;列可赋予多个集合成员 |
4、 列的属性
①auto_increment(最大值后递增,若不连续仍然递增) ②default ③null not null ④key primary key unique key