一、建表
create table promotion_price( id int unsigned primary key auto_increment, promotion_name varchar(128) not null comment '优惠活动名称', template_id bigint unsigned NOT NULL comment '优惠活动模版id', product_code varchar(128) NOT NULL comment '优惠产品编码', channel_code varchar(256) default null comment '渠道编码列表,null表示全部渠道', group_code varchar(50) NOT NULL comment '分群编码', category_id int unsigned default null comment '特殊判断:优惠分类表id', priority int unsigned NOT NULL DEFAULT '0' COMMENT '优惠优先级', start_time datetime NOT NULL COMMENT '优惠开始时间', end_time datetime NOT NULL COMMENT '优惠结束时间', description varchar(512) default null comment '活动描述', approval_status tinyint not null default 1 comment '审批状态 1:待提交 10:审批中 20:审批完成 30:已驳回', create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='价格优惠表'
整数类型有可选的UNSIGNED属性,表示不允许负值,这大致可以使正数的上限提高一倍。例如TINYINT UNSIGNED可以存储的范围是0~255,而TINYINT的存储范围是-128~127。
主键用int就足够了,上限为2^31-1 + 2^31 ,约为42亿
field_name varchar(128) not null default '' 的理解:
当使用insert field_name ,在insert语句中有此字段时,对应插入的值不能为null
当insert语句中没有指明此字段时,插入行使用默认值
二、查询
1、查询重复数据:
select a,b from 数据库 group by a,b having count(*)>1
三、DDL(data definition language)
创建索引:
alter table_name add index index_name(column_name);
create index index_name on table_name(column_name);
修改字段类型
alter table table_name modify column 字段名 类型;
修改字段长度(也可修改字段类型):
alter table table_name modify column 字段名 类型(长度);
修改字段名
alter table table_name change 旧字段名 新字段名 新数据类型(长度);
增加表字段:
alter table table_name add column 字段名 类型(长度);
删除表字段:
alter table table_name drop column 字段名;
END.