MySQL的数据类型大致分为:数值、时间和字符串
二进制
bit [(M)]
二进制位(10001),m表示二进制位的长度(1-64),默认m=1
tinyint
小整数,数据类型用于保存一些小范围的整数值范围
有符号:-128~127(默认是有符号)
无符号:0~255
特别的:MySQL中无布尔值,使用 tinyint(1) 构造。
整数
smallint
int
bigint
// 验证默认int是否是有符号create table userinfo( num int);insert into userinfo(num) values(-9); // 操作成功,说明默认是有符号的
// 设置int是无符号的create table userinfo( num int unsigned; );insert into userinfo(num) values(-1); // 操作失败
浮点型
decimal
十进制小数,是精确的
内部是按字符串存取的,存入什么东西,拿出来还是什么东西
create table userinfo( num decimal(6), // 表示一共6位有效数字 nid decimal(6,2) // 6位有效数字中,其中有两位小数);
float
是不靠谱的,数值越大,越不精准,一般不使用
double
也是不靠谱,数值越大,越不精准,但是相对于float会是稍微精准点,一般不使用
字符串
char
定长,设定长度之后,无论存入值长度,最终的值都会是一个定长。最大可包含255个字符。
性能相对 varchar较高。主要体现在存取值。定长无需计算。
会存在浪费空间
create table userinfo( name char(7) // 会在存储的时候开辟7个位置);insert into userinfo(name) values('we'); // 记录的是 we ,后面有5个空格insert into userinfo(name) values('12345678'); // 记录的是 1234567,超过部分舍弃
varchar
变长,设定长度之后,是一个最长长度。值会小于等于这个长度。最大可包含255个字符。
性能相对char 低一些
好处就是可以节省空间。
create table userinfo( name varchar(7), // 最多会占7个位置);insert into userinfo(name) values('we'); // 记录的是 we,后面有5个空格insert into userinfo(name) values('12345678'); // 记录的是 1234567,超过部分舍弃
text
变长,用于保存较大的字符串。最多可以 65535(2**16-1)个字符
mediumtext
变长
longtext
变长
二进制
tinyblob
blob
mediumblob
longblob
应用场景相对较少
例如上传图片视频等,可以使用二进制形式。但是一般做法是存到本地硬盘,数据库中记录的是一个本地地址。
时间
date
YYYY-MM-DD (1000-01-01/9999-12-31)
create table userinfo( birthday date );insert into userinfo(birthday) values('1998-01-22 18:37'); // 只会存入 1998-01-22
time
HH:MM:SS ('-838:59:59'/'838:59:59')
year
YYYY (1901/2155)
datetime
YYYY-MM-DD HH:MM:SS (1000-01-01 00:00:00/9999-12-31 23:59:59)
timestamp
YYYYMMDD HHMMSS (1970-01-01 00:00:00/2037 年某时)
枚举(enum)
只能在其中取一个值
create table shirts( name varchar(10), size enum('x-small','mall','medium','large','x-large'));insert into shirts(name,size) values('dress shirt','large'),('t-shirt','medium'),('polo shirt','small');
集合(set)
可以取多个值
create table myset( col set('a','b','c','d'));insert into myset(col) values('a,b'),('d,a'),('a,,d,a'),('d,a,d');
作者:白日梦大爷
链接:https://www.jianshu.com/p/f3f4f2be4726
共同学习,写下你的评论
评论加载中...
作者其他优质文章