无论您需要简单的东西(如购物清单)还是复杂的东西(如色样生成器),PostgreSQL命令都可以使它变得简单。在PostgreSQL入门一文中,我解释了如何安装、设置和开始使用这个开源数据库软件。但是,使用PostgreSQL中的命令可以做更多的事情。例如,我使用Postgres来跟踪我的杂货店购物清单。我大部分的杂货店购物都是在家里进行的,并且每周进行一次大宗采购。我会去几个不同的地方购买我清单上的东西,因为每家商店都提供特定的选择或质量,或者更优惠的价格。最初,我制作了一个HTML表单页面来管理我的购物清单,但它并没有保存我的条目。因此,当我想到要买的东西时,我必须立即列一个完整的清单,然后到了购物的时候,我常常会忘记我需要或想要的东西。相反,使用PostgreSQL,当我想到我需要的商品时,我可以在购物前将其输入并打印出来。你也可以做到的。创建一个简单的购物清单首先,输入psql命令进入数据库,然后使用以下命令创建表:Createtablegroc(itemvarchar(20),commentvarchar(10));输入以下命令将项目添加到列表中:insertintogrocvalues('milk','K');insertintogrocvalues('bananas','KW');括号里有两条信息(用逗号隔开):第一个是你需要买什么,后面一个字母代表Wheredoyoushop和你通常每周买什么(W)。因为psql有历史记录,所以您可以按向上箭头键编辑括号内的信息,而无需键入该项目的整行信息。输入少量项目后,输入以下命令检查前面的输入。通过评论从groc订单中选择*;项目|评论----------------+--------咖啡粉|H黄油|K筹码|K牛排|牛奶|K香蕉|KW葡萄干麸皮|KW奶酪|L山羊奶酪|洋葱|P橘子|P土豆|P菠菜|PW西兰花|该命令按评论列对结果进行排序,以按购买地点对商品进行分组,使您的购物更加轻松。用W表示每周要买的东西,当你想清空表格准备下周的清单时,可以将每周的物品保留在购物清单上。输入:从grocwherecommentnotlike'%W'中删除;请注意,%在PostgreSQL中代表通配符(不是星号)。因此,要保存输入,您需要键入:deletefromgrocwhereitemlike'goat%';你不能使用item='goat%',它没用。购物时,使用以下命令输出列表并打印或发送到您的手机:\ogroclist.txtselect*fromgrocorderbycomment;\o\o后没有任何内容的最后一个命令会将输出重置为命令行。否则,所有输出将继续到您创建的杂货店购物文件groclist.txt。分析复杂表这个逐项列表对于数据量小的表来说还好,但是对于数据量大的表呢?几年前,我帮助FreieFarbe.de的团队从HLC调色板创建了一本免费的色样书。事实上,任何可以想象的印刷颜色都可以根据色调、亮度和密度(饱和度)来指定。最终结果是HLCColorAtlas,下面是我们如何实现它的。团队向我发送了带有颜色规格的文件,这样我就可以编写一个与Scribus一起使用的Python脚本,以轻松生成颜色样本。一个例子像这样开始:HLC,C,M,Y,KH010_L15_C010,0.5,49.1,0.1,84.5H010_L15_C020,0.0、79.7、15.1、78.9H010_L25_C010、6.1、38.3、0.0、72.5H010_L25_C020、0.0、61.8、61.6、67.9H010_L25_L25_C0303030303030303.03.0、0.0、79.5、79.5、18.5、62.7.5、62.7H25_00101010101010101010101010101010101010101010101010101010101010101010101001010101010101010101010号,50.6H010_L35_C010,6.1,32.1,0.0,61.8H010_L35_C020,0.0,51.7,8.4,57.5H010_L35_C030,0.0,68.5,17.1,52.5H010_L35_C040,0.0,81.2,22.0,46.2H010_L35_C050,0.0,91.9,20.4,39.3H010_L35_C060,0.1,100.0,17.3,31.5H010_L45_C010,4.3,27.4,0.1,51.3这与原始数据比较,有修改,原始数据以制表符分隔。我将其转换为CSV格式(逗号分隔值),我更喜欢将其与Python一起使用(CSV也很有用,因为它可以轻松导入到电子表格程序中)。在每一行中,第一项是颜色名称,后面是它的C、M、Y和K颜色值。该文件包含1,793种颜色,我想要一种方法来分析信息以了解这些值的范围。这就是PostgreSQL发挥作用的地方。我不想手动输入所有数据-我不认为我可以在不出错的情况下做到这一点,这很让人头疼。幸运的是,PostgreSQL为此提供了一个命令。首先使用以下命令创建数据库:Createtablehlc_cmyk(colorvarchar(40),cdecimal,mdecimal,ydecimal,kdecimal);然后使用以下命令导入数据:\copyhlc_cmykfrom'/home/gregp/HLC_Atlas_CMYK_SampleData.csv'with(header,formatCSV);前面有一个反斜杠,因为对普通复制命令的访问仅限于root用户和Postgres超级用户。括号中的header表示第一行包含标题,应该忽略,CSV表示文件格式为CSV。请注意,在此方法中,颜色名称不需要括在括号中。如果操作成功,您会看到COPYNNNN,其中N是插入到表中的行数。最后可以使用如下命令查询:select*fromhlc_cmyk;颜色|c|米|是|k--------------+--------+-------+--------+------H010_L15_C010|0.5|49.1|0.1|84.5H010_L15_C020|0.0|79.7||10.6|67.9H010_L25_C030|0.0|79.5|18.5|62.7H010_L25_C040|0.4|94.2|17.3|56.5H010_L25_C050|0.0|100.0|15.1|50.6H010_L35_C010|6.1|32.1|0.0|61.8H010_L35_C020|0.0|51.7|8.4|57.5H010_L35_C030|0.0|68.5|17.1|52.5全部1793行数据都是这样。回想起来,我不能说这个查询对于HLC和Scribus任务是绝对必要的,但它减轻了我对该项目的一些担忧。为了生成HLC色谱,我使用Scribus为色板页面中的13,000多种颜色自动创建颜色图表。我可以使用复制命令输出数据:\copyhlc_cmykto'/home/gregp/hlc_cmyk_backup.csv'with(header,formatCSV);我还可以使用where子句根据特定值限制输出。例如,下面的命令只会发送以H10开头的色调值。\copyhlc_cmykto'/home/gregp/hlc_cmyk_backup.csv'with(header,formatCSV)wherecolorlike'H10%';备份或传输数据库或表我想在这里提到的最后一个命令是pg_dump,它用于备份PostgreSQL数据库并在psql控制台之外运行。例如:pg_dumpgregp-thlc_cmyk>hlc.outpg_dumpgregp>dball.out的第一行是导出hlc_cmyk表及其结构。第二行将转储gregp数据库中的所有表。这对于备份或传输数据库或表很有用。要将数据库或表传输到另一台计算机(有关详细信息,请参阅PostgreSQL入门一文),首先在要传输到的计算机上创建一个数据库,然后执行相反的操作。psql-dgregp-fdball.out一步创建所有表并输入数据。总结在本文中,我们了解了如何使用WHERE参数限制操作,以及如何使用PostgreSQL通配符%。我们还看到了如何将大量数据加载到表中,然后将部分或全部表数据输出到文件,甚至是整个数据库及其所有单独的表。
