当前位置: 代码迷 >> 综合 >> PostgreSQL 的命令行psql和数据交互
  详细解决方案

PostgreSQL 的命令行psql和数据交互

热度:64   发布时间:2023-09-19 14:52:27.0

一、psql

1、一旦运行,psql 将通过包含我们当前连接到的数据库名并跟随“=>”符号的提示符提示输入命令。对于在当前数据
库拥有全部权限的用户,提示符被替换为“=#".

2、psql 的命令分为两种不同的类型:SQL 命令:我们可以输入任何 PostgreSQL 支持的 SQL 语句给 psql,然后它将执行它。内部命令:有一些 psql 命令用于执行 SQL 不直接执行的命令例如列出存在的表和执行脚本。所有的内部命令都由一条反斜杠开始切不能被拆分成多行。

3、需要通过一个分号来告诉 psql 我们已经完成一条可能被拆分成多行的长 SQL 命令。注意分号不是一条 SQL 命
令必须的部分,它只是用于告诉 psql 我们已经完成输入了。

4、收集一组 psql 命令(包括 SQL 和内部命令)到一个文件并把它当做一个简单的脚本使用。内部命令“\i”将从一个文件中读取一组 psql 命令(一定要用unix方式的路径:即用左斜杠的方式)。如下:

 \i D:/company/select.sql;     

二、数据交互

1、使用 INSERT 语句往 customer 表里头添加数据,按照建表时列的顺序排列插入的值。要插入数字,则直接写数字。要插入字符串,则把字符串包含在单引号中。为了在插入的字符串里头包含单引号,我们必须在单引号之前添加一个反斜杠字符(\)。如果我们还需要插入一个反斜杠字符,那么我们需要写一对反斜杠,就像这样“\\”。

2、避免在插入数据的时候为 serial 类型的数据提供数值。

3、使用:setval('序列生成器名', 新的值);的方式给序列更新值。如:

 SELECT setval('customer_customer_id_seq', 19);

4、命令是TRUNCATE,从一个表中删除所有数据,它没有办法恢复被删除的数据。使用这个命令需要非常小心,只有当你非常确定要永久删除表中的数据才能使用。从某些方面说,它非常类似于删除表并重建它,除了它更容易操作且不会重置序列生成器。使用如下:

bpsimple=# TRUNCATE TABLE tcust;
TRUNCATE TABLE
bpsimple=# SELECT count(*) FROM tcust;
count
-------0
(1 row)
bpsimple=#

 

  相关解决方案