这里是CS大白话专场,让枯燥的学习变得有趣!
没有对象不要怕,我们new一个出来,每天对ta说不尽情话!
好记性不如烂键盘,自己总结不如收藏别人!
如何编写.sql文件创建MySQL数据库嘞?举个栗子:
DROP TABLE IF EXISTS `user`;
SET character_set_client = utf8mb4 ;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`salt` varchar(50) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`type` int(11) DEFAULT NULL COMMENT '0-普通用户; 1-超级管理员; 2-版主;',
`status` int(11) DEFAULT NULL COMMENT '0-未激活; 1-已激活;',
`activation_code` varchar(100) DEFAULT NULL,
`header_url` varchar(200) DEFAULT NULL,
`create_time` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_username` (`username`(20)),
KEY `index_email` (`email`(20))
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8;
首先查看是否存在要创建的表,如果存在则跳过,如果没有则创建:
DROP TABLE IF EXISTS `user`;
设置字符集编码格式为utf8mb4,可以兼容更多的字符:
/*数据库客户端的编码*/
SET character_set_client = utf8mb4;
/*建立连接使用的编码*/
SET character_set_connection = utf8mb4;
/*数据库的编码*/
SET character_set_database = utf8mb4;
/*结果集的编码*/
SET character_set_results = utf8mb4;
/*数据库服务器的编码*/
SET character_set_server = utf8mb4;
开始创建表,默认InnoDB引擎:
CREATE TABLE `表名` (
`列名` 数据类型(大小) 字段约束 COMMENT '字段描述',
...,
PRIMARY KEY (`主键列名`)
)ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8;
数据类型:
数值型:int(integer)、tinyint、smallint、mediumint、bigint。
浮点型:float、double。
文本字符串:char、varchar、tinytext、text、mediumtext、longtext。
时间:year、time、date、datetime、timestamp。
字段约束:
NULL:默认值NULL。
NOT NULL:不可包含NULL,默认值0/空字符串/当前时间。
DEFAULT:规定默认值。
AUTO_INCREMENT=x:从x开始自增,默认从1开始,适用于整型。
PRIMARY KEY:唯一主键。(UNIQUE KEY、FOREIGN KEY、KEY:约束+索引)
UNSIGNED:无符号。