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) 无符号值:0到255(0 到28 - 1) |
smallint | 较小整数 | 2 | 有符号值:-32768 到32767(- 215 到215 - 1) 无符号值:0到65535(0 到21 6 - 1) |
mediumint | 中等大小整数 | 3 | 有符号值:-8388608 到8388607(- 22 3 到22 3 - 1 ) 无符号值:0到16777215(0 到22 4 - 1) |
int | 标准整数 | 4 | 有符号值:-2147683648 到2147683647(- 231 到231- 1) 无符号值:0到4294967295(0 到232 - 1) |
bigint | 较大整数 | 8 | 有符号值:-9223372036854775808 到9223373036854775807(- 263到263-1) 无符号值:0到18446744073709551615(0到264 – 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