mysql基本数据类型
https://github.com/jaywcjlove/handbook/blob/master/MySQL/MySQL数据类型.md
mysql +data types
http://www-db.deis.unibo.it/courses/TW/DOCS/w3schools/sql/sql_datatypes.asp.html
基本数据类型
http://www.runoob.com/mysql/mysql-data-types.html

char,varchar,text.png
mysql教程
https://github.com/jaywcjlove/mysql-tutorial
varchar长度
ca varchar(8)
指定了 最多8个字符,超过了8个字符,就无法插入数据,
报错:
data too long for column 'ca'
CREATE TABLE `tb_varchar` (
`ca` varchar(8) CHARACTER SET utf8mb4 COLLATE
utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

image.png
varchar长度最多可以有多少个字符
http://www.cnblogs.com/gomysql/p/3615897.html
mysql一条记录(一行)最多可以存放65535字节的数据。
其他字段多占一点,varchar就要减小;
最终字符数=余下的字节/编码方式下字符所占的字节数;
总结起来就是,
一条记录最多分配65535个字节,
其他字段类型要占用字节;
最后余下的字节,在根据编码方式,最终计算出varchar的最大字符数。
int(1)
int(1)
int(8)
指定的最大位数,没用,还是可以插入2147483647
int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个m有什么用。
CREATE TABLE `tb_varchar` (
`ca` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
`cb` int(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
INSERT into tb_varchar(ca,cb) VALUES('你所有承诺,,,',1);
INSERT into tb_varchar(ca,cb) VALUES('你所有承诺,,,',2147483647);

image.png