mysql创建表
mysql创建表列属性参数
1.先判断表是否存在,存在就先删除表
DROP TABLE IF EXISTS `table_name`;
2. 创建表及表字段
CREATE TABLE `table_name` (
`id` int NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主表id',
`name` varchar NOT NULL COMMENT '名称'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.语句代码
DROP TABLE IF EXISTS `table_name`;
CREATE TABLE `table_name` (
`id` int NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主表id',
`name` varchar(20) NOT NULL COMMENT '名称'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
4.列参数说明
-
列属性字段名
-
类属性类型
-
2.1 数据类型对应表中类的数据类型。11数据类型中详细介绍了如何使⽤数据类型的语法。需要注意以下⼏点:
1> ⼀些参数不是适⽤于所有类型的,AUTO_INCREMENT只适⽤于整形和浮点型数据,DEFAULT不可⽤于BLOB、TEXT、GEOMETRY
和JSON类型;
2> 字符数据类型(CHAR、VARCHAR、TEXT、ENUM、SET及其他)可以指列字符集。CHARSET与CHARACTER SET等效,校验字符
集可以使⽤COLLATE参数指定。10字符集、校验、解码中有详细介绍。MySQL5.7对于字符列的长度指字符个数,对于BINARY和
VARBINARY列指字节数。创建⼀个拥有name列的表test,name列使⽤utf8字符集,并使⽤utf8_bin进⾏校验,如下所⽰:
3> 对于CHAR、VARCHAR、BIANRY和VARBINARY类型的列创建索引时可以使⽤最左长度 col_name(length)语法来制定⼀个索引的
长度。BLOB和TEXT列设置索引时必须指定索引的长度。索引长度对于字符类型列来说指字符个数,对于⼆进制字符指字节数。只有
InnoDb和MyIsam引擎才⽀持BLOB和TEXT列创建索引。对于⼀个⾮唯⼀索引列,如果严格的SQL模式被设置时会直接报错,如果没有社
会严格的SQL模式,索引被键减少到列的最⼤长度并且会产⽣警告;对于唯⼀索引列⽽⾔,因为缩减索引长度可能会导致⾮唯⼀向的插⼊,
这样就打破了唯⼀索引原则,所以会直接报错。
4> JSON类型的数据列是不能被设置索引的,如果⾮要如此可以从JSON列中提取相应来⽣成列进⾏索引达到该效果
3.是否为空
3.1 NULL 与 NOT NULL 3.2 如果没有指定空与⾮空,则默认为空。在MySQL5.7中只有InnoDB、MyIsam和Memory存储引擎才能⽀持索引列中含有NULL值,其他情况下必须把索引列指定为NOT NULL
4.默认值
4.1 DEFAULT
5.自增
5.1 AUTO_CREMENT
6.主键
6.1 PRIMARY KEY
7.注释说明
7.1 COMMENT
更多推荐
所有评论(0)