整型 int[(m) [unsigned] [zerofill] ] 32位
数据范围: -2147483648 ~ 2147483647
int unsigned 无符号整型 0 ~ 4294967295
int (5) zerofill 不满足5位的时候,左边补0
CREATE TABLE int_test( -> id int, -> uid int unsigned, -> zid int (5) zerofill -> )DEFAULT CHARSET = utf8 ; mysql> insert into int_test values(2147483647, 4294967295, 3); +------------+------------+-------+ | id | uid | zid | +------------+------------+-------+ | 2147483647 | 4294967295 | 00003 | +------------+------------+-------+
tinyint [(m) [unsigned] [zerofill] ] 8位
-128 ~ 127
bigint [(m) [unsigned] [zerofill] ] 64位
-9223372036854775808 ~ 9223372036854775807
mysql> create table big_int_test( -> id bigint, -> uid bigint unsigned, -> zid bigint(10) zerofill -> ) DEFAULT CHARSET=utf8; mysql> insert into big_int_test values(12222222222222, 122222222222222222,12) ; mysql> select * from big_int_test; +----------------+--------------------+------------+ | id | uid | zid | +----------------+--------------------+------------+ | 12222222222222 | 122222222222222222 | 0000000012 |
decimal( m [, d] ) 最为常用的类型
m数字的总个数,d小数点后有多少位。
m最大65, d最大30。
mysql> CREATE TABLE salary ( -> id int NOT NULL PRIMARY KEY AUTO_INCREMENT, -> salary decimal(10,2) NOT NULL -> ) DEFAULT CHARSET = utf8 ; mysql> insert into salary(salary) values(8988.223); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> select * from salary; +----+---------+ | id | salary | +----+---------+ | 1 | 8988.22 | +----+---------+
float ( m [, d] ) 32位
m数字的总个数,d小数点后有多少位。
double ( m [, d] ) 64位
m数字的总个数,d小数点后有多少位。
char (m) 定长字符串 - m代表字符长度
m 代表字符串字符的长度,字段固定占用m长度。m 最大255。
如果数据超过m, 严格模式会报错(默认),非严格模式会截断。
varchar (m) 变长字符表 - m代表字节长度
按照数据实际字节长度存储,最大65535个字符。
如果数据超过m, 严格模式会报错(默认),非严格模式会截断。
mysql> create table new_char ( -> id int primary key not null auto_increment, -> name varchar(5) not null, -> email char(20) not null) default charset='utf8' ; mysql> insert into new_char (name, email) values ( -> '完颜阿骨打', 'wanyan@163.com'); Query OK, 1 row affected (0.01 sec) --超过varchar定义的5个字符,产生报错 mysql> insert into new_char (name, email) values ( '完颜阿骨打老爸', 'wanyan@1.com'); ERROR 1406 (22001): Data too long for column 'name' at row 1
text 存储变长字符串,最多到65535个字符。
midiumtext 存储变长字符串,最多到16,777,215 个字符。
longtext 存储变长字符串,最多到4,294,967,295个字符。
mysql> CREATE TABLE text_table ( -> name char(10) PRIMARY KEY NOT NULL, -> comments text, --不需要注明长度 -> biography longtext --不需要注明长度
) DEFAULT CHARSET='utf8';
1. 关闭mysql服务,否则执行以下操作容易造成服务器无法启动。执行:sudo mysql.server stop。
2. 编辑MySQL的配置文件。 执行:sudo vi /usr/local/mysql/etc/my.cnf, 添加以下内容:sql-mode="NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION"
3. 保存后,启动mysql服务。 执行: sudo mysql.server start。
4. 遇到服务器无法启动,按照下面的操作恢复服务器。
-- 发生的报错信息 LeodeMBP:etc leo$ sudo mysql.server start Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/mysql/data/LeodeMBP.pid). --运行这两行代码 LeodeMBP:etc leo$ sudo chown -RL root:mysql /usr/local/mysql LeodeMBP:etc leo$ sudo chown -RL mysql:mysql /usr/local/mysql/data -- 注释掉对my.cnf的更改 --再次尝试启动,可以恢复。 LeodeMBP:etc leo$ sudo mysql.server start Starting MySQL . SUCCESS!