MySQL中创建数据库和一张表的例子
CREATE DATABASE `smbms`;
USE `smbms`;
DROP TABLE IF EXISTS `smbms_address`;
CREATE TABLE `smbms_address` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`contact` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '联系人姓名',
`addressDesc` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '收货地址明细',
`postCode` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '邮编',
`tel` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '联系人电话',
`createdBy` bigint(20) DEFAULT NULL COMMENT '创建者',
`creationDate` datetime DEFAULT NULL COMMENT '创建时间',
`modifyBy` bigint(20) DEFAULT NULL COMMENT '修改者',
`modifyDate` datetime DEFAULT NULL COMMENT '修改时间',
`userId` bigint(20) DEFAULT NULL COMMENT '用户ID',
PRIMARY KEY (`id`)
)
ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
insert into `smbms_address`(`id`,`contact`,`addressDesc`,`postCode`,`tel`,`createdBy`,`creationDate`,
`modifyBy`,`modifyDate`,`userId`) values
(1,'小丽','北京市','100010','13689999',1,'2016-04-13 00:00:00',NULL,NULL,1),
(2,'小丽','北京市','100000','185672312',1,'2016-04-13 00:00:00',NULL,NULL,1),
(3,'小强','北京市','100021','133876742',1,'2016-04-13 00:00:00',NULL,NULL,1),
(4,'小颖','北京市','100053','13560223',1,'2016-04-13 00:00:00',NULL,NULL,2),
(5,'小慧','北京市','100032','18056666',1,'2016-04-13 00:00:00',NULL,NULL,3),
(6,'小强','北京市','100061','13787222',1,'2016-04-13 00:00:00',NULL,NULL,3);
注:
- COMMENT 是备注、注释的意思,写上COMMENT 'id’之后,在建表信息里可以看到添加的备注信息。
- 所谓
utf8_unicode_ci
,其实是用来排序的规则。对于mysql中那些字符类型的列,如VARCHAR
,CHAR
,TEXT
类型的列,都需要有一个COLLATE
类型来告知mysql如何对该列进行排序和比较。简而言之,COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛选出来的结果,会影响**DISTINCT**
、**GROUP BY**
、**HAVING**
语句的查询结果。另外,mysql建索引的时候,如果索引列是字符类型,也会影响索引创建,只不过这种影响我们感知不到。总之,凡是涉及到字符类型比较或排序的地方,都会和COLLATE有关。 - ENGINE=INNODB 表示将数据库的引擎设置为InnoDB,从MySQL 5.6开始默认使用该引
- AUTO_INCREMENT=10 表示自动增长的起始值为10(在这里设置数字的意思是想要让这条语句在增长的时候,从7开始自增。)
- DEFAULT CHARSET=utf8表示设置数据库的默认字符集为utf8
结果:
完整性约束
2020.2.11/周二
by 922