1 先判断表是否存在 如果存在就删除
drop table if exists '要创建的表名';
2 创建表
DEOP TABLE IF EXISTS '要创建的表名';
CREATE TABLE 'table_name' (
`id` int(11) NOT NULL unsigned auto_increment COMMENT 'id',
`user` varchar(50) NOT NULL DEFAULT '' COMMENT '用户名',
`password` char(32) NOT NULL DEFAULT '' COMMENT '密码',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0启用 1禁用',
`create_time` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
primary key('id')
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8mb4_general_ci COMMENT='用户表'
存储引擎 自增起始值 默认字符集 排序规则 注释
emp | CREATE TABLE `emp` (
`EMPNO` int(4) NOT NULL,
`ENAME` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
`JOB` varchar(9) COLLATE utf8_unicode_ci DEFAULT NULL,
`MGR` int(4) DEFAULT NULL,
`HIREDATE` date DEFAULT NULL,
`SAL` int(7) DEFAULT NULL,
`COMM` int(7) DEFAULT NULL,
`DEPTNO` int(2) DEFAULT NULL,
PRIMARY KEY (`EMPNO`),
KEY `FK_DEPTNO` (`DEPTNO`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
字段名加波浪号的作用:一些保留关键字可以使用 比如desc
主键id
`id` int(11) not null unsigned auto_increment comment 'id',
非空 无符号 自增 注释
主键自增用int类型:最大值是21亿 常规项目足以。
用户名(字符串类型)
`user` varchar(50) not null default '' comment '用户名',
50个字符(非字节) 非空 默认给空字符串 注释
默认给空字符串,不要给null,null在使用中是会影响性能的
密码
`password` char(32) not null default '' comment '密码',
定长
状态值
`status` tinyint(1) not null default '0' comment '0启用 1禁用',
长度一位 非空 默认值给0
时间
1 不涉及到计算 用int值
`create_time` int(11) unsigned not null default 0 comment '创建时间',
创建时间 无符号 非空 默认给0 注释
2 涉及到计算 用datetime类型
设置主键
primary key('id')
设置普通索引
key city_id('city_id')
索引名称 索引值
设置唯一索引
unique key emall('emall')
唯一 索引名 索引值
设置存储引擎、字符集、排序规则
ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8mb4_0900_ai_ci COMMENT='商品表'
设置存储引擎 设置id自增起始值 设置默认字符集 设置排序规则 注释
别人的博文 https://www.cnblogs.com/chenzhengwei/p/12039661.html
CREATE TABLE `product_info` ( `product_id` varchar(32) NOT NULL, `product_name` varchar(64) NOT NULL COMMENT '商品的名称', `product_price` decimal(8,2) NOT NULL COMMENT '单价', `product_stock` int(11) NOT NULL COMMENT '库存', `product_description` varchar(64) DEFAULT NULL COMMENT '描述', `product_icon` varchar(512) DEFAULT NULL COMMENT '小图', `category_type` int(11) NOT NULL COMMENT '类目编号', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`product_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='商品表';
建表注意点:对于数据量较大的项目,Id不适宜用Long或者Integer类型自增长,因为很快会被耗完,采用String生成即可。
小图标用icon,大图用picture、img,头像用avatar
创建时间的时候,如果不想在代码中维护时间,就要定义
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP