DDL - CREATE

一、基本语句


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 ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值