mysql创建表与索引
-- ---------------------------- -- 商品属性表 -- AUTO_INCREMENT=1为设置了自增长的字段设置起点,1为起点 -- ENGINE选择:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。 -- NOT NULL 设置字段不为空,DEFAULT NULL设置字段默认值 -- COMMENT注释 -- DEFAULT CHARSET=utf8为字段设置默认编码(如果表字段没有设置编码,那么默认就是这里指定的编码) -- character set utf-8为某列字段设置编码 -- ---------------------------- DROP TABLE IF EXISTS cshop_attribute; CREATE TABLE cshop_attribute ( attr_id int(11) NOT NULL AUTO_INCREMENT COMMENT '属性id', attr_name varchar(100) NOT NULL COMMENT '属性名称', attr_value text NOT NULL COMMENT '属性值列', attr_show tinyint(1) NOT NULL COMMENT '是否显示。0为不显示,1为显示', attr_sort tinyint(1) NOT NULL COMMENT '排序', CONSTRAINT PRIMARY KEY (attr_id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='商品属性表'; -- ---------------------------- -- 商品属性表索引 -- 索引语句格式:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) -- index_col_name:col_name [(length)] [ASC | DESC] -- index_type:存储引擎MyISAM允许的索引类型BTREE,存储引擎InnoDB允许的索引类型BTREE,存储引擎MEMORY/HEAP允许的索引类型HASH,BTREE -- 普通索引:创建索引时,不附加任何限制条件(唯一、非空等限制)。该类型的所有可以创建在任何数据类型的字段上。 -- UNIQUE唯一索引:创建索引时限制索引的值必须是唯一的,通过该类型的索引可以更快速的查询某条记录,唯一索引字段不可加长度 -- FULLTEXT全文索引:主要关联在数据类型为char、varchar、text的字段上,以便能够更加快速的查询数据量较大的字符串类型的字段,必须加上长度 -- 多列索引:是指在创建索引时,所关联的字段不是一个字段,而是多个字段。虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用。(此处意思大概是查询条件中必须包含第一个字段索引才会生效) -- 更多详细介绍可参考mysql中文手册 -- ---------------------------- -- 删除索引 DROP INDEX index_attr_id ON cshop_attribute; -- 创建索引 CREATE UNIQUE INDEX index_attr_id USING BTREE ON cshop_attribute (attr_id ASC);