数据定义类型总汇
1、整数型:
整数类型 | 字节 | 有符号范围 | 无符号范围 | 用途 |
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 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 超大整数 |
bigint | 8 | (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数 |
2、字段定义方法:
Tinyint(宽度)
Unsigned无符号整数。
Zerofill左侧补0,必须为正数。
[null/not null]是否允许为NULL。
dfault 值默认值。
Auto_increment自动增量
Primary key主键
宽度不代表限制取值范围。
3、主键:
一般主键为整数,主键是索引的一种。
一个表只能有一个主键,主键可由一列或多列组成(复合主键)。
Primary key = not null + unique
主键存在的方式:
1.唯一主键。如用户ID和学生学号......
2.复合主键。如主机地址+端口号 = 主键。
3.增加一个ID字段作为主键。如ID = (0 , +∞)
4、浮点数:
浮点数类型 | 字节 | 特点 | 定义(M=有效位数,D=小数位数) |
Float | 4 | 单精度 | Float(M,D) |
Double | 8 | 双精度 | Double(M,D) |
Decimal | [M/D]+2 | 严格浮点数 | Decimal(M,D) |
5、字符串:
不能插入超过L长度的字符串,L是字符数不是字节数。
定长字符串:设输入数为N,N<=L。
Char(L)L<=255当N<L时,用空格补齐,实占空间为L。速度快
边长字符串:
Varchar(L)L<=65535(ascii)=22000(utf8)N<L时,实占空间为N+(1~2)字节。
6、大文本类型:
字节根据编码去换算课存多少汉字。
utf8/3=?Gbk/2=?
类型名 | 字节 |
tinytext | 0 ~ 255 |
Text | 0 ~ 65535 |
mediuntext | 0 ~ 2^24-1 |
longtext | 0 ~ 2^32-1 |
7、二进制大对象类型:
Blob
保存二进制内容,如 图片、视频、音乐 .......等等。
8、枚举类型:
Enum (‘值1’,‘值2’,......)
保存单选数据,只能选定义过的数据。
9、集合类型:
不支持NULL
Set 成员 max 64个
格式:set (‘a’,‘b’,‘c’,......)not null;
10、时间类型:
类型 | 字节 | 范围 | 格式 | 用途 |
datetime | 4 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
time | 3 | -838:59:59/838:59:59 | HH:MM:SS | 时间值 |
year | 1 | 1901/2155 | YYYY | 年份值 |
datetime | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 年份时间值 |
timestamp | 4 | 1970-01-01 00:00:00/2037 年某时 | YYYYMMDD HHMMSS | 时间戳 |
转载于:https://blog.51cto.com/chenhaolinux/1710780