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);

 

posted on 2016-09-07 09:43  代码ok  阅读(7551)  评论(0编辑  收藏  举报