3 种使用 PostgreSQL 命令的方式( 二 )

这与原始数据相比,稍有修改,原始数据用制表符分隔 。我将其转换成 CSV 格式(用逗号分割值),我更喜欢其与 Python 一起使用(CSV 文也很有用,因为它可轻松导入到电子表格程序中) 。
在每一行中,第一项是颜色名称,其后是其 C、M、Y 和 K 颜色值 。该文件包含 1,793 种颜色,我想要一种分析信息的方法,以了解这些值的范围 。这就是 PostgreSQL 发挥作用的地方 。我不想手动输入所有数据 —— 我认为输入过程中我不可能不出错,而且令人头痛 。幸运的是,PostgreSQL 为此提供了一个命令 。
首先用以下命令创建数据库:
Create table hlc_cmyk (color varchar(40), c decimal, m decimal, y decimal, k decimal);然后通过以下命令引入数据:
copy  hlc_cmyk from '/home/gregp/HLC_Atlas_CMYK_SampleData.csv' with (header, format CSV);开头有反斜杠,是因为使用纯 copy 命令的权限仅限于 root 用户和 Postgres 的超级用户 。在括号中,header 表示第一行包含标题,应忽略,CSV 表示文件格式为 CSV 。请注意,在此方法中,颜色名称不需要用括号括起来 。
如果操作成功,会看到 COPY NNNN,其中 N 表示插入到表中的行数 。
最后,可以用下列命令查询:
select * from hlc_cmyk;     color     |   c   |   m   |   y   |  k  ---------------+-------+-------+-------+------ H010_L15_C010 |   0.5 |  49.1 |   0.1 | 84.5 H010_L15_C020 |   0.0 |  79.7 |  15.1 | 78.9 H010_L25_C010 |   6.1 |  38.3 |   0.0 | 72.5 H010_L25_C020 |   0.0 |  61.8 |  10.6 | 67.9 H010_L25_C030 |   0.0 |  79.5 |  18.5 | 62.7 H010_L25_C040 |   0.4 |  94.2 |  17.3 | 56.5 H010_L25_C050 |   0.0 | 100.0 |  15.1 | 50.6 H010_L35_C010 |   6.1 |  32.1 |   0.0 | 61.8 H010_L35_C020 |   0.0 |  51.7 |   8.4 | 57.5 H010_L35_C030 |   0.0 |  68.5 |  17.1 | 52.5所有的 1,793 行数据都是这样的 。回想起来,我不能说此查询对于 HLC 和 Scribus 任务是绝对必要的,但是它减轻了我对该项目的一些担忧 。
为了生成 HLC 色谱,我使用 Scribus 为色板页面中的 13,000 多种颜色自动创建了颜色图表 。
我可以使用 copy 命令输出数据:
copy hlc_cmyk to '/home/gregp/hlc_cmyk_backup.csv' with (header, format CSV);我还可以使用 where 子句根据某些值来限制输出 。
例如,以下命令将仅发送以 H10 开头的色调值 。
copy hlc_cmyk to '/home/gregp/hlc_cmyk_backup.csv' with (header, format CSV) where color like 'H10%';备份或传输数据库或表我在此要提到的最后一个命令是 pg_dump,它用于备份 PostgreSQL 数据库,并在 psql 控制台之外运行 。例如:
pg_dump gregp -t hlc_cmyk > hlc.outpg_dump gregp > dball.out第一行是导出 hlc_cmyk 表及其结构 。第二行将转储 gregp 数据库中的所有表 。这对于备份或传输数据库或表非常有用 。
【3 种使用 PostgreSQL 命令的方式】要将数据库或表传输到另一台电脑(查看 PostgreSQL 入门 那篇文章获取详细信息),首先在要转入的电脑上创建一个数据库,然后执行相反的操作 。
psql -d gregp -f dball.out一步创建所有表并输入数据 。
总结在本文中,我们了解了如何使用 WHERE 参数限制操作,以及如何使用 PostgreSQL 通配符 % 。我们还了解了如何将大批量数据加载到表中,然后将部分或全部表数据输出到文件,甚至是将整个数据库及其所有单个表输出 。


推荐阅读