MySql列类型(常用)
一、数值类型
1.整形
使用规范:在满足需求的情况下,尽量选用占用空间小的类型
tinyint[1个字节], samllint[2个字节],mediumint[3个字节],int[4个字节],bigint[8个字节]
#整型的使用
# 没有指定 unsigned ,默认就是有符号的
CREATE TABLE db2(
id TINYINT);
CREATE TABLE db3(
id TINYINT UNSIGNED);
INSERT INTO db2 VALUES(127);
SELECT*FROM db2
INSERT INTO db3 VALUES(255);
SELECT*FROM db3
#bit使用
#bit(n) n在1~64
#添加数据范围按给出的位数来确定
#查询时可以按数来查
CREATE TABLE db4(
num BIT(8));
INSERT INTO db4 VALUES(10);
SELECT*FROM db4;
SELECT*FROM db4 WHERE num = 10;
2.小数类型
float[单精度4个字节], double[双精度8个字节], decimal[M,D](大小不确定·)
#float,double,decimal的使用
CREATE TABLE db5(
num1 FLOAT,
num2 DOUBLE,
num3 DECIMAL(40,20));
INSERT INTO db5 VALUES(77.55555555,77.55555555,77.55555555);
SELECT*FROM db5;
#要存放很大的数用decimal
CREATE TABLE db6(
num DECIMAL(65));
INSERT INTO db6 VALUES(9999999999999999999999999999999999999999999999999999);
二、文本类型
1.字符串类型
char 0-255 ,varchar 0~65535,text 0~65535,longtext 0~2^32-1
#char和varchar的使用
#char(size)固定长度字符串,最大255字符
#varchar(size) 0~65535字节
#utf8=(65535-3)/3 = 21844
CREATE TABLE db7(
num CHAR(255)
);
CREATE TABLE db8(
num VARCHAR(21844)
);
#字符串类型的注意事项
#char(255)和varchar(255)在这里的255都是表示字符,不是字节
CREATE TABLE db9(
num CHAR(255)
);
INSERT INTO db9 VALUES('你好酷狗');
SELECT*FROM db9
CREATE TABLE db10(
num VARCHAR(255)
);
INSERT INTO db9 VALUES('你好酷狗');
SELECT*FROM db10
#varchar不够用可以使用text,mediumtext,longtext
CREATE TABLE db11(
num1 TEXT,
num2 MEDIUMTEXT,
num3 LONGTEXT
);
INSERT INTO db11 VALUES('老黄牛精神','老黄牛精神555','老黄牛精神66666');
SELECT*FROM db11
三、二进制数据类型
blob[0~2^16-1],longblob[0~2^32-1]
四、日期类型
data[日期年月日],time[时间 时分秒] datatime[前面两者结合],timestamp[时间戳],year[年]
#时间类型的使用
CREATE TABLE db12(
birthday DATE,-- 生日
`time` DATETIME,
long_time TIMESTAMP
NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP #登录时间
);
SELECT*FROM db12;
INSERT INTO db12(birthday,`time`)VALUES('2050-12-12','2050-12-12 12:30:30');
#当更新db12表的某条记录,long_time列会以当前时间进行更新
INSERT INTO db12(birthday,`time`)VALUES('2060-1-2','2060-1-2 12:30:30');