设计表

在生产设计数据库过程中有一些技巧,是我在实习时才知道的
1、id等int类型字段,若无需求,全用unsigned。节约空间。
2、用comment给字段和表加上注释,方便交流,以示后人。
3、用tinyint(1)代替以前常用的bool,因为MYSQL没有Boolean,这样设计的原因是一个和POJO类与mysql冲突了,具体可以看这里
4、用时间戳来记录create_time字段,可以转成int(10)。
5、用户表,用salt字段,用md5的方法来加密password。
6、设计is_del字段,来逻辑删除。

1
2
3
4
5
6
7
8
CREATE TABLE `devices_category` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT comment '搜索主键,自增id',
`device_id` int(10) UNSIGNED NOT NULL comment '设备id',
`category_a` tinyint(1) UNSIGNED DEFAULT '2' comment '当前视频分类是否属于a,1是,2不是',
`is_del` tinyint(1) UNSIGNED DEFAULT '0' comment '删除标识',
`create_time` int(10) UNSIGNED NOT NULL comment '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment '监控设备分类表';

查看表注释

查看字段注释

1
2
3
select COLUMN_NAME,column_comment from INFORMATION_SCHEMA.Columns where table_name='表名' and table_schema='数据库名';
# 修改注释
ALTER TABLE `表名` MODIFY COLUMN `列名` COMMENT '啦啦啦';

查看表注释

1
2
3
SHOW CREATE TABLE `表名`
# 修改注释
ALTER TABLE `表名` COMMENT '巴啦啦';

Mysql导出与导入

先在终端中进入目标目录。

1
mysqldump -u 用户名 -p 数据库名 表名 > 文件名.sql

导入方法为,先进入mysql控制页面
source 文件绝对地址