一、基本语句
二、基本说明
1.创建表时表示状态的字段可用 tinyint 表示
2.数值类型后的(NUM)
数值类型后的括号中的内容,不表示字段的长度,而表示字段的宽度
tinyint 1字节 ,有符号的标识范围 -127 ~ 128 ,无符号 0 ~ 255 ,字符宽度都是3
int 4 字节,宽度 10
即 int(1) int(2) ... int(10) 表示的存储范围是相同的,不同的仅仅是显示内容的宽度
若 int(4) 存储 2 ,则变为 0002
若 int(4) 存储 11111 ,则变为 11111
只要在 int 的存储范围内,若超过指定的长度,则按照原样子展示,否则,左侧补齐相差的0
举例:
-- 默认宽度是10位
mysql> select * from t ;
+------------+
| id |
+------------+
| 0000000010 |
+------------+
1 row in set (0.00 sec)
通过navicat 无法看到效果
winkey +r --> cmd --> 打开命令行窗口
mysql -u root -p 123456
show databases;
use test ;
执行 select * from t ;
宽度10,是int本身可表示的最大宽度
宽度>10 依然可以运行,只是左侧多补了一个0
mysql> alter table t modify id int(11) zerofill ;
Query OK, 2 rows affected (0.05 sec)
mysql> insert into t values (1);
Query OK, 1 row affected (0.00 sec)
mysql> select * from t ;
+-------------+
| id |
+-------------+
| 00000000010 |
| 00000000111 |
| 00000000001 |
+-------------+
3 rows in set (0.00 sec)
3.unsigned
若字段的含义,无负数情况,则选择 unsigned
4.添加索引
explain select * from data_test ;
CREATE TABLE `data_test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`num` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '编号',
`name` varchar(10) NOT NULL DEFAULT '' COMMENT '标识',
PRIMARY KEY (`id`),
KEY `index_name_num` (`num`,`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、基本说明
1.创建表时表示状态的字段可用 tinyint 表示
2.数值类型后的(NUM)
数值类型后的括号中的内容,不表示字段的长度,而表示字段的宽度
tinyint 1字节 ,有符号的标识范围 -127 ~ 128 ,无符号 0 ~ 255 ,字符宽度都是3
int 4 字节,宽度 10
即 int(1) int(2) ... int(10) 表示的存储范围是相同的,不同的仅仅是显示内容的宽度
若 int(4) 存储 2 ,则变为 0002
若 int(4) 存储 11111 ,则变为 11111
只要在 int 的存储范围内,若超过指定的长度,则按照原样子展示,否则,左侧补齐相差的0
举例:
-- 添加若位数不够添加0补齐
create table t(id int zerofill);
insert into t values(10);
-- 默认宽度是10位
mysql> select * from t ;
+------------+
| id |
+------------+
| 0000000010 |
+------------+
1 row in set (0.00 sec)
通过navicat 无法看到效果
winkey +r --> cmd --> 打开命令行窗口
mysql -u root -p 123456
show databases;
use test ;
执行 select * from t ;
宽度10,是int本身可表示的最大宽度
宽度>10 依然可以运行,只是左侧多补了一个0
mysql> alter table t modify id int(11) zerofill ;
Query OK, 2 rows affected (0.05 sec)
mysql> insert into t values (1);
Query OK, 1 row affected (0.00 sec)
mysql> select * from t ;
+-------------+
| id |
+-------------+
| 00000000010 |
| 00000000111 |
| 00000000001 |
+-------------+
3 rows in set (0.00 sec)
3.unsigned
若字段的含义,无负数情况,则选择 unsigned
4.添加索引
explain select * from data_test ;