创建第一个MySQL数据库earth及表area
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。
使用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的更多相关文章
- 点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)
下载原版阿里JAVA开发手册 [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:MySQL数据库 (建表规约.索引规约.SQL语句.ORM映 ...
- mysqlslap 一个MySQL数据库压力测试工具
在Xen/KVM虚拟化中,一般来说CPU.内存.网络I/O的虚拟化效率都非常高了,而磁盘I/O虚拟化效率较低,从而磁盘可能会是瓶颈.一般来说,数据库对磁盘I/O要求比较高的应用,可以衡量一下在客户机中 ...
- mysql管理 ------查看 MySQL 数据库中每个表占用的空间大小
如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE ...
- 利用navcat为mysql数据库单独的表赋权限及表结构同步
为mysql数据库单独的表赋权限 场景:考勤系统需要拿OA数据库td_oa中的flow_run和flow_run_data表中的数据做考勤计算 考勤系统只需要读取这两张表的数据,所以只需要开通一个单独 ...
- freeswitch用户整合(使用mysql数据库的用户表)
转:freeswitch用户整合(使用mysql数据库的用户表) freeswitch是一款强大的voip服务器,可以语音和视频.但是它默认是采用/directory文件夹下的xml来配置用户的,对于 ...
- mysql数据库分库分表(Sharding)
mysql数据库切分 前言 通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制.一旦数据库过于庞大,尤其是当写入过于频繁,非常难由一台主机支撑的时候,我们还是会面临到扩展瓶 ...
- 在 Azure 上创建和链接 MySQL 数据库
本快速入门介绍了如何使用 Azure 门户创建并连接 MySQL 数据库.在本教程中完成的所有操作均符合 1 元试用条件. 开始之前如果您还没有 Azure 账户,可以申请 1 元试用账户 步骤1:创 ...
- MySQL数据库查看数据表占用空间大小和记录数
MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHE ...
- MySQL数据库之单表查询中关键字的执行顺序
目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...
随机推荐
- 【BZOJ2830/洛谷3830】随机树(动态规划)
[BZOJ2830/洛谷3830]随机树(动态规划) 题面 洛谷 题解 先考虑第一问. 第一问的答案显然就是所有情况下所有点的深度的平均数. 考虑新加入的两个点,一定会删去某个叶子,然后新加入两个深度 ...
- loj2538 「PKUWC2018」Slay the Spire 【dp】
题目链接 loj2538 题解 比较明显的是,由于强化牌倍数大于\(1\),肯定是能用强化牌尽量用强化牌 如果强化牌大于等于\(k\),就留一个位给攻击牌 所以我们将两种牌分别排序,企图计算\(F(i ...
- centos7下安装ossec
一.前言 OSSEC是一款开源的基于主机的入侵检测系统,可以简称为HIDS.它具备日志分析,文件完整性检查,策略监控,rootkit检测,实时报警以及联动响应等功能.它支持多种操作系统:Linux ...
- SSM 小demo的盲点总结
日期Date和String之间的转换: 1. 全局转换器(推荐使用) 1. 创建类实现Converter接口,实现Convert方法 public class StringToDateConvert ...
- JAVA中properties基本用法
转载 源地址不详 java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式, ...
- Python 爬虫入门(一)
毕设是做爬虫相关的,本来想的是用java写,也写了几个爬虫,其中一个是爬网易云音乐的用户信息,爬了大概100多万,效果不是太满意.之前听说Python这方面比较强,就想用Python试试,之前也没用过 ...
- 学些goosman-lei的博客感触
在进行程序员职业规划标题搜索的时候,csdn推荐了<专访雷果国:从1.5K到18K 一个程序员的5年成长之路>感触颇深链接:https://www.csdn.net/article/201 ...
- mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)
mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式) 首先将要导入的数据文件top5000W.txt放入到数据库数据目录/var/local/mysql/data/${d ...
- Python入门 语法
Python入门 语法 语言介绍 对象,类型,值 编码规范 https://www.python.org/dev/peps/pep-0008/ 一.语言介绍 编程语言: 机器语言,汇编语言,高级语言 ...
- 使用 Dojo 掌握面向对象开发
原文出处:Joe Lennon 从头开始学习 Dojo,第 2 部分 使用 Dojo 掌握面向对象开发 什么是面向对象开发? 面向对象编程(Object-Oriented Programming,OO ...