类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
tinyint | 1字节 | (-128,127) | (0,255) | 小整数值 |
smallint | 2字节 | (-32768,32767) | (0,65535) | 大整数值 |
int | 4字节 | (-2147483648, 2147483647) | (0,4294967295) | 大整数值 |
float | 4字节 | 单精度浮点型 | ||
double | 8字节 | 双精度浮点型 | ||
decimal | decimal(m,d)如果m>d为m+2否则为d+2 | 依赖于m和d的值 | 依赖于m和d的值 | 小数值(更加精准) |
创建表语句
mysql> create table testnum(
-> ttinyint tinyint,
-> tsmallint smallint,
-> tint int,
-> tfloat float(6,2),
-> tdouble double(6,2),
-> tdecimal decimal(6,2)
-> );
创建表的主体结构:
create table if not exists 表名(
字段名称 字段类型 约束条件 字段说明,
字段名称 字段类型 约束条件 字段说明,
...
主键索引,
唯一索引,
常规索引
)
表插入数据语句
指定字段名称插入值
insert into 表名(字段1,字段2...) values(值1,值2...)
不指定字段插入之
insert into 表名 values(值1,值2...)
注意:
类型 | 大小(字节) | 范围 | 格式 | 用途 |
---|---|---|---|---|
date | 3 | 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/2038 | YYYYMMDDHHMMSS | 混合日期和时间值 |
建表语句
mysql> create table if not exists testtime(
-> tdate date,
-> ttime time,
-> tyear year,
-> tdatetime datetime default now(),
-> ttimestamp timestamp
-> );
日期类型注意事项:
类型 | 大小 | 用途 |
---|---|---|
char | 0-255字节 | 定长字符串 |
varchar | 0-255字节 | 变长字符串 |
tinyblob | 0-255字节 | 不超过255个字符的二进制字符串 |
tinytext | 0-255字节 | 短文本字符串 |
blob | 0-65535字节 | 二进制形式的长文本数据 |
text | 0-65535字节 | 长文本数据 |
mediumblob | 0-16777215字节 | 二进制形式的中等长度文本数据 |
mediumtext | 0-16777215字节 | 中等长度文本数据 |
loneblob | 0-4294697295字节 | 二进制形式的极大文本数据 |
lonetext | 0-4294697295字节 | 极大文本数据 |
enum(成员1,成员2...) | 65535个成员 | 枚举:可赋予某个枚举成员 |
set(成员1,成员2...) | 64个城院 | 集合:可赋予多个集合成员 多个集合成员使用逗号隔开 |
字符串类型注意事项:
1) char和varchar的区别
2) enum和set的区别
3) blob和text类型
创建表语句
mysql> create table if not exists teststr(
-> tchar char(11),
-> tvarchar varchar(5),
-> ttext text,
-> tenum enum('w','m'),
-> tset set('1','2','3','4')
-> );
插入数据
insert into teststr values(15611833906,123,'我是内容','w',1)