尽管你已经听说过关系数据库和 NoSQL 数据库,但你对平面文件数据库完全不熟悉的可能性很大。平面文件数据库确实是真实的存在,但是近来它们并没有得到多少关注。我们将在今天的文章中学习到,与过去的几年相比,现在已有更好的方法来处理平面文件数据库。实际上,如果你现正使用 Navicat 的任何数据库开发和管理客户端,那么这就是理想的选择!
历史与局限
自最早的计算机问世以来,平面文件数据库就已经存在。它们是一种将数据存储在纯文本文件中的数据库,其中文件的每一行都包含一个记录,并且字段之间用分隔符(通常是逗号或制表符)分隔。这样,与关系数据库相比,平面文件数据库与数据表有更多的共性。由于其简单的结构,平面文件数据库中表示的“表”仅支持有限的功能,例如记录和列排序。
平面文件数据库发展成为应用程序的后端。与结构化数据库文件相比,平面文件数据库的简单结构占用的空间更少,并且对配置数据更为适合。如果你精通编程,则可以找到适用于大多数语言的 ODBC 驱动程序,用于与平面文件数据库接口。不幸的是,大多数关系数据库客户端无法直接连接到平面文件数据库。但是,关系数据库提供了导入平面文件数据库的命令,以及在更大的关系数据库中使用平面文件数据库的命令。
导入平面文件
如果您对平面文件数据库的结构感到熟悉,那是因为它与逗号分隔值(Comma-Separated Values,CSV),制表符分隔值(Tab-Separated Values,TSV)或任何分隔符分隔值(Delimiter Separated Values,DSV)文件非常相似。
每种关系数据库都提供其自己的命令,用于从平面文件导入数据。例如,MySQL 提供了 LOAD DATA INFILE 语句。你必须首先创建数据库和表,但是对于每个数据集只需创建一次。完成此操作后,使用 LOAD DATA INFILE 就可以快速导入数据!这是导入 CSV(逗号分隔值)文件的示例语句:
LOAD DATA INFILE 'c:/path/to/file.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;
使用 Navicat 导入
Navicat 强大的导入实用程序是一个向导驱动的过程,可以帮助您导入多种格式的文件:DSV、JSON、XML 等。
你可以选择记录分隔符、字段分隔符和文本识别符号:
随着导入的进行,你将获得一个完整的进度报告,包括已处理的表和行的数量,以及遇到的错误和花费的时间:
总结
在今天的文章中,我们了解了平面文件数据库,以及如何使用原生数据库命令和 Navicat 将它们导入到关系数据库中。
如果你想更深入地了解 Navicat 导入实用程序,可以看看我几年前写的一篇文章 Importing XML, CSV, Text, and MS Excel Files into MySQL,讲解了如何使用 Navicat for MySQL 导入各种格式的数据。
Rob Gravelle 居住在加拿大渥太华,是一名有 20 多年经验的 IT 专家。过往,Rob 曾为与情报有关的组织(如加拿大边境服务局和各种商业组织)构建系统。在业余时间,Rob 是一名出色的吉他演奏家,并发行了几张 CD。如果你想雇用 Rob,可以发送电子邮件至 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。。