MySQL最标准建表语句
2016-05-18 16:10
531 查看
SQL分类:DDL(数据定义语言)、DML(数据操纵语言)、DCL(数据控制语言)
注意点:
1、MySQL的SQL特性:表名和字段名需要加反引号引住;
2、我们写SQL语句一般不加,如果要手写SQL,建议在SQLlog等软件上先新建查询,将SQL语句格式化粘到需要用到的位置;
3、decimal(8,2)类型可用于交易金额;
4、COMMENT对于一些使用MySQL connector的人来说,阅读方便,建议写上;
5、ENGINE=InnoDB 选择数据表引擎;
6、DEFAULT CHARSET=utf8 选择合适的编码;
7、AUTO_INCREMENT=556536 目前的最大自增索引号;
MySQL建表DDL示例:
CREATE TABLE `t_wxuser_trade_log` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '序号', `order_id` bigint(20) NOT NULL COMMENT '订单ID:微秒时间戳+4位随机数(18位)', `ordertype` tinyint(4) NOT NULL DEFAULT '0' COMMENT '订单类型0默认1复投2转投3赎回', `order_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '投资状态:1等待付款;2等待还款中;3已回款,交易成功;4买家取消订单,交易已关闭;5交易失败;6交易成功;7超时未支付订单自动关闭;', `order_date` int(11) NOT NULL COMMENT '年月日(格式yyyyMMdd)- 用户来查询报表需要', `order_month` int(11) NOT NULL COMMENT '年月(格式yyyyMM)- 用户来查询报表需要', `wxshop_id` int(11) NOT NULL COMMENT '微店ID', `wxuser_id` int(11) NOT NULL COMMENT '用户ID', `accountstatus` tinyint(4) NOT NULL DEFAULT '0' COMMENT '到账状态(0处理中,1转账成功(到账),-1转账失败)', `accounttime` datetime DEFAULT NULL COMMENT '到账时间', `tradetype` tinyint(4) NOT NULL DEFAULT '1' COMMENT '交易方式:1在线支付', `paytype` tinyint(4) NOT NULL DEFAULT '0' COMMENT '支付方式:1宝付支付', `payid` varchar(50) DEFAULT NULL COMMENT '支付单号:pay+微秒时间戳+4位随机数(18位)', `batchid` varchar(50) DEFAULT NULL COMMENT '宝付批次号(用户于查询用户交易状态)', `paystatus` tinyint(4) NOT NULL DEFAULT '1' COMMENT '支付状态(1未支付,2支付成功,3支付失败)', `paytime` datetime DEFAULT NULL COMMENT '支付时间', `trademoney` decimal(18,6) DEFAULT NULL, `payemoney` decimal(18,6) DEFAULT NULL, `servicecharge` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '手续费', `category_id` tinyint(4) DEFAULT NULL COMMENT '产品类型(0其它(充值、提现等非产品),1投资产品,2体验金)', `product_id` int(11) DEFAULT NULL COMMENT '产品Id(若投资产品,则为企业标第Id;若为体验金,则为体验金ID)', `account_type` tinyint(4) NOT NULL COMMENT '操作人:1用户,2商家,3系统', `comefrom` varchar(20) DEFAULT NULL COMMENT '来源', `account` varchar(50) NOT NULL COMMENT '操作帐号', `operation_title` varchar(50) NOT NULL COMMENT '操作标题', `operation_type` tinyint(4) NOT NULL COMMENT '操作类型(1充值、2提现、3投资(转入)、4转出、5收益、6佣金、7活动、8大额支付、101员工存入)', `activity_type` int(11) DEFAULT '0' COMMENT '活动类型', `operation` varchar(100) DEFAULT NULL COMMENT '操作说明', `recorddate` datetime DEFAULT NULL COMMENT '记录时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=556536 DEFAULT CHARSET=utf8 COMMENT='用户交易记录日志表'
注意点:
1、MySQL的SQL特性:表名和字段名需要加反引号引住;
2、我们写SQL语句一般不加,如果要手写SQL,建议在SQLlog等软件上先新建查询,将SQL语句格式化粘到需要用到的位置;
3、decimal(8,2)类型可用于交易金额;
4、COMMENT对于一些使用MySQL connector的人来说,阅读方便,建议写上;
5、ENGINE=InnoDB 选择数据表引擎;
6、DEFAULT CHARSET=utf8 选择合适的编码;
7、AUTO_INCREMENT=556536 目前的最大自增索引号;