一 1.1 创建表
CREATE TABLE t1( id1 int, id2 INT(5) ); DESC t1;
2 插入数据查看
INSERT INTO t1 VALUES(1,1); SELECT * from t1;
3 修改以零填充后查看
ALTER TABLE t1 MODIFY id1 INT ZEROFILL; ALTER TABLE t1 MODIFY id2 INT(5) ZEROFILL; SELECT * from t1;
4 插入大于定义的宽度,不会对插入的数据有任何影响,还会按照类型的实际进度进行保存,这时宽度格式已经没有任何意义。
SELECT * from t1; INSERT into t1 VALUES(1,1111111);
二 :float,double,decimal
CREATE TABLE t2( id1 FLOAT(5,2) NOT NULL, id2 DOUBLE(5,2) NOT NULL, id3 DECIMAL(5,2) NOT NULL ); INSERT INTO t2 VALUES(1.23,1.23,1.23); INSERT into t2 VALUES(1.234,1.234,1.23); INSERT into t2 VALUES(1.234,1.234,1.234); SELECT * from t2;
2 更改再插入1.234,
ALTER TABLE t2 MODIFY id1 FLOAT; ALTER TABLE t2 MODIFY id2 DOUBLE; ALTER TABLE t2 MODIFY id3 DECIMAL; SELECT * from t2;
1 这个例子说明,浮点数如果不写精度和标度,就会按照实际精度值显示,如果有精度和标度,则会自动将四舍五入的结果插入。系统并不会报错
2 定点数如果不写精度和标度,会按照默认值decimal(10,0)进行操作,并且如果数据超越了精度和标度值,系统会报错错
3 浮点数后面跟(M,D)是非标准用法,如果用是据库的迁移,最好不要这么用
三 BIt型
use test01; CREATE TABLE t3( id BIT(1) ); INSERT INTO t3 VALUES(1); SELECT * from t3;
这样是显示不出来的
ALTER TABLE t3 MODIFY id BIT(2); INSERT into t3 VALUES(2);
select bin(id),hex(id) from t3;