Windows 10家庭中文版,MySQL 5.7.20 for Win 64,2018-05-08

数据库earth描述:

用于记录地球上的事物,一期包含地理区域信息——表area。

字符集编码:utf8。

表area描述:

记录地区的地理区域信息,顶级为七大洲四大洋,然后是国家和地区。

表area数据字典如下:

注意:字段id为主键,故每条记录的id是不同的,从1开始;字段parent_id的值从0开始,0表示地球,除了0以外,其它值来自id;(设计

好像有些问题——id从0开始多好?也不行,不设置会好一些。而且parent_id也无需设置和id的关系了)

在命令行中建立数据库earth:

在命令行中建立数据库earth下的表area:

选择(使用)数据库earth并检查status

在命令行中创建数据表area:

第一次创建的表area存在问题——没有将name_cn、create_t、update_t设置为NOT NULL,因此,需要修改完善。

使用ALTER命令将name_cn、create_t、update_t设置为NOT NULL:

mysql> ALTER TABLE area MODIFY name_cn varchar(100) DEFAULT "" NOT NULL;

mysql> ALTER TABLE area MODIFY create_t DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL;

mysql> ALTER TABLE area MODIFY update_t DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP;

说明:

DEFAULT CURRENT_TIMESTAMP——在创建记录(record)时记录操作时间;

ON UPDATE CURRENT_TIMESTAMP——在更新记录(record)时记录操作时间。

create_t、update_t为什么选择DATETIME类型,而不是TIMESTAMP类型?因为前者的时间范围更大。在两者都支持使用NOW()、

CURRENT_TIMESTAMP获取当前时间并记录时,选择DATETIME。

参考:官方链接1官方链接2

使用desc命令查看表area的结构,如下图,符合设计。

导出数据库earth和表area:

将数据库和表导出的目的是为了数据迁移、备份等,请参考链接

导出功能 可以将数据库的所有表或部分表 创建语句及所有数据 导出到外部文件中,然后,可以通过将导出的外部文件导入到其它

数据库中重新建立表和记录。

导出功能 使用命令mysqldump,可以使用mysqldump --help命令查看其用法(很长,我自己是没看细看的)。

导出数据库earth:

>mysqldump -uroot -p earth > d:\dbearth.sql

导出数据库earth到文件dbearth.sql。

>mysqldump -uroot -p earth area > d:\tbarea.sql

导出数据库earth下的表area到文件tbarea.sql。

注意,上面两条命令是将表的创建语句和表中的全部数据导出,不过目前只有一个表,表中还没有数据,因此,两者导出

的文件内容是相同的。

导出后的文件内容截图:

数据库导出到文件后,怎么将文件导入其它数据库呢?进入MySQL命令行,再选择(使用)数据库-use,使用source命令即可将导出的文件

中的数据表和数据导入到选择的数据库中,使用样式:

source 文件路径

作者:Ben.Z

参考链接:

Date and Time Type Overview
Automatic Initialization and Updating for TIMESTAMP and DATETIME
mysql 数据库导入导出方法总结
MySQL自增ID 起始值 修改方法

后记:

在数据库、表设计之初,是想讲七大洲四大洋放到一个表,再将国家放到一个表,再将国家下的一级行政区域放到一个表……

但后来发现这样的设计很麻烦,而且每个国家的行政区划是有很大差别的。

因此,才将所有区域信息统一放到一个表area中。

一些疑问:

这样的设计是最优的吗?扩展性如何?

数据库及表要如何设计才是最好的呢?应该遵循什么原则?

创建第一个MySQL数据库earth及表area的更多相关文章

  1. 点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:MySQL数据库 (建表规约.索引规约.SQL语句.ORM映 ...

  2. mysqlslap 一个MySQL数据库压力测试工具

    在Xen/KVM虚拟化中,一般来说CPU.内存.网络I/O的虚拟化效率都非常高了,而磁盘I/O虚拟化效率较低,从而磁盘可能会是瓶颈.一般来说,数据库对磁盘I/O要求比较高的应用,可以衡量一下在客户机中 ...

  3. mysql管理 ------查看 MySQL 数据库中每个表占用的空间大小

    如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE ...

  4. 利用navcat为mysql数据库单独的表赋权限及表结构同步

    为mysql数据库单独的表赋权限 场景:考勤系统需要拿OA数据库td_oa中的flow_run和flow_run_data表中的数据做考勤计算 考勤系统只需要读取这两张表的数据,所以只需要开通一个单独 ...

  5. freeswitch用户整合(使用mysql数据库的用户表)

    转:freeswitch用户整合(使用mysql数据库的用户表) freeswitch是一款强大的voip服务器,可以语音和视频.但是它默认是采用/directory文件夹下的xml来配置用户的,对于 ...

  6. mysql数据库分库分表(Sharding)

    mysql数据库切分 前言 通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制.一旦数据库过于庞大,尤其是当写入过于频繁,非常难由一台主机支撑的时候,我们还是会面临到扩展瓶 ...

  7. 在 Azure 上创建和链接 MySQL 数据库

    本快速入门介绍了如何使用 Azure 门户创建并连接 MySQL 数据库.在本教程中完成的所有操作均符合 1 元试用条件. 开始之前如果您还没有 Azure 账户,可以申请 1 元试用账户 步骤1:创 ...

  8. MySQL数据库查看数据表占用空间大小和记录数

    MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHE ...

  9. MySQL数据库之单表查询中关键字的执行顺序

    目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...

随机推荐

  1. Min Cost Climbing Stairs - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Min Cost Climbing Stairs - LeetCode 注意点 注意边界条件 解法 解法一:这道题也是一道dp题.dp[i]表示爬到第i层 ...

  2. Android Room使用详解

    使用Room将数据保存在本地数据库 Room提供了SQLite之上的一层抽象, 既允许流畅地访问数据库, 也充分利用了SQLite. 处理大量结构化数据的应用, 能从在本地持久化数据中极大受益. 最常 ...

  3. 遇到问题----java----myeclipse或者eclipse发布的项目时配置文件不更新或者无配置文件

    myeclipse或者eclipse发布的项目时配置文件不更新或者无配置文件. 正常的web项目有目录 src/main/resources 和 src/main/java 这两个目录默认在编译发布时 ...

  4. 解题:CF1009 Dominant Indices

    题面 长链剖分模板题 只能按深度统计,同时比DSU on tree难理解一些,但是复杂度少个log 对每个点抓出向下延伸最长的儿子叫做长儿子.在合并时用指针继承信息,对于长儿子O(1)继承,其他儿子暴 ...

  5. bzoj 4521: [Cqoi2016]手机号码

    感觉get到了一种数位dp的新姿势,加一位表示当前要填的数有没有限制(感觉以前的写法都太蠢了). 这么写有两个地方要注意: 1.每dp到一位时需要f[i][初始状态]++,相当于这位前都是前导零(这道 ...

  6. PHP发送HTTP请求的几种方式

    转发:https://blog.tanteng.me/2017/07/php-curl-guzzlehttp/ 1)PHP开发中我们常用CURL 方式封装 HTTP请求,什么是CURL? CURL 是 ...

  7. BZOJ 3771 母函数裸题

    题目描述 我们讲一个悲伤的故事. 从前有一个贫穷的樵夫在河边砍柴. 这时候河里出现了一个水神,夺过了他的斧头,说: “这把斧头,是不是你的?” 樵夫一看:“是啊是啊!” 水神把斧头扔在一边,又拿起一个 ...

  8. R语言外部数据读取

    0  引言 使用R语言.Python等进行数据处理的第一步就是要导入数据(也可以使用UCI数据集),下文主要根据R语言的帮助文档来介绍外部文件数据的导入方法和注意事项.下面先附上一些指令. 1 格式r ...

  9. pycharm 取消自动保存

    pycharm默认是自动保存的,习惯自己按 ctrl + s 的可以进行如下设置: 菜单File -> Settings... -> Appearance & Behavior - ...

  10. Zabbix应用二:Zabbix添加监控主机

    Zabbix添加被监控主机 一.选择中文语言 Zabbox3.0默认支持中文,可以登录后,点击右上角的用户图标,然后在语言中选择中文即可. 二.添加被监控主机 1.选择'配置'->'主机',然后 ...