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