3.浮点类型
#测试float和double的精度问题
CREATE TABLE test_double2(
f1 DOUBLE
);
INSERT INTO test_double2
VALUES(0.47),(0.44),(0.19);
SELECT SUM(f1)
FROM test_double2;
4.定点数类型
#4.定点数类型
CREATE TABLE test_decimal1(
f1 DECIMAL,
f2 DECIMAL(5,2)
);
DESC test_decimal1;
INSERT INTO test_decimal1(f1)
VALUES(123),(123.45);#出现小数了,四舍五入
SELECT * FROM test_decimal1;
INSERT INTO test_decimal1(f2)
VALUES(999.99);
INSERT INTO test_decimal1(f2)
VALUES(67.567);#存在四舍五入
INSERT INTO test_decimal1(f2)
VALUES(1267.567);#报错了,超出5位
INSERT INTO test_decimal1(f2)
VALUES(999.995);#报错,进位后整数位变成4位
#定点数VS浮点数
#演示decimal替换double,体现精度问题
ALTER TABLE test_double2
MODIFY f1 DECIMAL(5,2);
DESC test_double2;
SELECT SUM(f1)
FROM test_double2;
SELECT SUM(f1)=1.1,1.1=1.1
FROM test_double2;
5.位类型 BIT
#5.位类型:BIT
CREATE TABLE test_bit1(
f1 BIT,
f2 BIT(5),
f3 BIT(64)
);
DESC test_bit1;
INSERT INTO test_bit1(f1)
VALUES(0),(1);
SELECT * FROM test_bit1;
#Data too long for column 'f1' at row 1
INSERT INTO test_bit1(f1)
VALUES(2); #10,占了两个位
INSERT INTO test_bit1(f2)
VALUES(31);
#Data too long for column 'f2' at row 1,超出5位
INSERT INTO test_bit1(f2)
VALUES(32);
SELECT BIN(f1),BIN(f2),HEX(f1),HEX(f2)
FROM test_bit1;
#此时加0以后可以以十进制的方式显示数据
SELECT f1+0,f2+0
FROM test_bit1;