整数类型 字节 说明 tinyint 1 一般用于枚举数据,比如系统设定取值范围很小且固定的场景。 smallint 2 可以用于较小范围的统计数据,比如统计工厂的固定资产库存数量等。 mediumint 3 用于较大整数的计算,比如车站每日的客流量等。 int、integer 4 取值范围足够大,一般情况下不用考虑超限问题,用得最多。比如商品编号。 bigint 8 处理特别巨大的整数时才会用到。比如大型门户网站点击量 
 
alter  table  rqtanc add  number int ( 10 )  zerofill
alter  table  rqtanc add  number int ( 10 )  unsigned  zerofill; 
SET  sql_mode =  'REAL_AS_FLOAT' ; 
类型 字节 说明 DECIMAL(M,D),DEC,NUMERIC M+2 有效范围由M和D决定 
 
类型 长度 范围 占用空间 BIT(M) M 1<=M<=64 约(M+7)/8 
 
类型 说明 字节 格式 YEAR 年 1 YYYY或YY TIME 时间 3 HH:MM:SS DATE 日期 3 YYYY-MM-DD DATETIME 日期 时间 8 YYYY-MM-DD HH:MM:SS TIMESTAMP 日期 时间 4 YYYY-MM-DD HH:MM:SS 
 
SET  time_zone =  '+9:00' ; 
类型 特点 长度 范围 存储空间 CHAR(M) 固定长度 M 0 <= M <= 255 M个字节 VARCHAR(M) 可变长度 M 0 <= M <= 65535 (实际长度 + 1) 个字节 
 
类型 特点 空间上 时间上 适用场景 CHAR(M) 固定长度 浪费存储空间 效率高 存储不大,速度要求高 VARCHAR(M) 可变长度 节省存储空间 效率低 非CHAR的情况 
 
类型 特点 长度 长度范围 占用的存储空 TINYTEXT 小文本、可变长度 L 0 <= L <= 255 L + 2 个字节 TEXT 文本、可变长度 L 0 <= L <= 65535 L + 2 个字节 MEDIUMTEXT 中等文本、可变长度 L 0 <= L <= 16777215 L + 3 个字节 LONGTEXT 大文本、可变长度 L 0 <= L<= 4294967295(相当于 4GB) L + 4 个字节 
 
ENUM类型也叫作枚举类型,ENUM类型的取值范围需要在定义字段时进行指定。设置字段值时,ENUM 类型只允许从成员中选取单个值,不能一次选取多个值。  
类型 长度 长度范围 占用的存储空间 ENUM L 1 <= L <= 65535 1或2个字节 
 
CREATE  TABLE  test_enum( 
season ENUM ( '春' , '夏' , '秋' , '冬' , 'unknow' ) 
) ; INSERT  INTO  test_enum
VALUES ( '春' ) , ( '秋' ) ; 
INSERT  INTO  test_enum
VALUES ( 'UNKNOW' ) ; 
INSERT  INTO  test_enum
VALUES ( '1' ) , ( 3 ) ; 
INSERT  INTO  test_enum
VALUES ( 'ab' ) ; 
INSERT  INTO  test_enum
VALUES ( NULL ) ; 
成员个数范围(L表示实际成员个数) 占用的存储空间 1 <= L <= 8 1个字节 9 <= L <= 16 2个字节 17 <= L <= 24 3个字节 25 <= L <= 32 4个字节 33 <= L <= 64 8个字节 
 
CREATE  TABLE  test_set( 
s SET  ( 'A' ,  'B' ,  'C' ) 
) ; INSERT  INTO  test_set ( s)  VALUES  ( 'A' ) ,  ( 'A,B' ) ; 
INSERT  INTO  test_set ( s)  VALUES  ( 'A,B,C,A' ) ; 
INSERT  INTO  test_set ( s)  VALUES  ( 'A,B,C,D' ) ; 
SELECT  * 
FROM  test_set; 
二进制字符串类型 特点 值的长度 占用空间 BINARY(M) 固定长度 M (0 <= M <= 255) M个字节 VARBINARY(M) 可变长度 M(0 <= M <= 65535) M+1个字节 
 
CREATE  TABLE  test_binary1( 
f1 BINARY , 
f2 BINARY ( 3 ) , 
f4 VARBINARY ( 10 ) 
) ; INSERT  INTO  test_binary1( f2, f4) 
VALUES ( 'ab' , 'ab' ) ; 
mysql>  SELECT  LENGTH( f2) , LENGTH( f4) 
- >  FROM  test_binary1; 
+ 
|  LENGTH( f2)  |  LENGTH( f4)  | 
+ 
|  3  |  NULL  | 
|  3  |  2  | 
+ 
INSERT  INTO  test_binary1( f1, f2) 
VALUES ( 'a' , 'a' ) ; 
INSERT  INTO  test_binary1( f1, f2) 
VALUES ( '尚' , '尚' ) ; 二进制字符串类型 值的长度 长度范围 占用空间 TINYBLOB L 0 <= L <= 255 L + 1 个字节 BLOB L 0 <= L <= 65535(相当于64KB) L + 2 个字节 MEDIUMBLOB L 0 <= L <= 16777215 (相当于16MB) L + 3 个字节 LONGBLOB L 0 <= L <= 4294967295(相当于4GB) L + 4 个字节 
 
create  table  test_json( 
js json
) ; INSERT  INTO  test_json ( js) 
VALUES  ( '{"name":"songhk", "age":18, "address":{"province":"beijing",
"city":"beijing"}}' ) ; 
mysql>  SELECT  js - >  '$.name'  AS  NAME, js - >  '$.age'  AS  age , js - >  '$.address.province' 
AS  province,  js - >  '$.address.city'  AS  city
- >  FROM  test_json; 
+ 
|  NAME |  age |  province |  city | 
+ 
|  "songhk"  |  18  |  "beijing"  |  "beijing"  | 
+ 
1  row  in  set  ( 0.00  sec)