我在表....中插入了一个数据我想看到整个表的行,列和数据。我如何通过命令显示它?


当前回答

我将添加我的经验,一个命令,在windows机器上。 我想尝试运行一个命令,从中我将获得表内容。

这是一个对我有用的命令:

psql -U postgres -d typeorm -c "SELECT * FROM \"Author\";

- u postgres - user -d typeorm -我要连接的数据库 - c…-我的查询命令 ; ——分号

我遇到了一些问题,主要是弄清楚如何准确地设置查询部分。我尝试了不同的命令,比如:用',",(),但除了这个符号外,没有什么对我有效。

其他回答


## Using SQL file
PGPASSWORD=myPassword psql -h myDbHost -U myUser -p 5432 -d my_db -a -q -f /path/to/sql/file.sql
## Or
PGPASSWORD=myPassword psql -h myDbHost -U myUser -p 5432 -d my_db < /path/to/sql/file.sql

## Using command
PGPASSWORD=myPassword psql -h myDbHost -U myUser -p 5432 -d my_db -c "select * from my table limit 1;"

sql -U username -d mydatabase -c 'SELECT * FROM mytable'

如果你是postgresql的新手,不熟悉使用命令行工具psql,那么当你进入一个交互式会话时,你应该注意一些令人困惑的行为。

例如,发起一个交互式会话:

psql -U username mydatabase 
mydatabase=#

此时,您可以直接输入查询,但必须记住以分号结束查询;

例如:

mydatabase=# SELECT * FROM mytable;

如果您忘记了分号,那么当您按回车键时,您将在返回行中得不到任何东西,因为psql将假设您没有完成输入查询。这会导致各种各样的困惑。例如,如果您重新输入相同的查询,很可能会产生语法错误。

作为一个实验,尝试在psql提示符下输入任何你想要的乱码,然后按enter。PSQL将默默地为您提供一个新行。如果你在新行输入一个分号,然后按回车键,那么你会收到ERROR:

mydatabase=# asdfs 
mydatabase=# ;  
ERROR:  syntax error at or near "asdfs"
LINE 1: asdfs
    ^

经验法则是: 如果你没有收到来自psql的响应,但你期望至少SOMETHING,那么你忘记了分号;

我还注意到查询

SELECT * FROM tablename;

在PSQL命令提示符上给出错误 而且

SELECT * FROM "tablename";

运行正常,很奇怪,所以别忘了双引号。 我一直喜欢数据库:-(

我将添加我的经验,一个命令,在windows机器上。 我想尝试运行一个命令,从中我将获得表内容。

这是一个对我有用的命令:

psql -U postgres -d typeorm -c "SELECT * FROM \"Author\";

- u postgres - user -d typeorm -我要连接的数据库 - c…-我的查询命令 ; ——分号

我遇到了一些问题,主要是弄清楚如何准确地设置查询部分。我尝试了不同的命令,比如:用',",(),但除了这个符号外,没有什么对我有效。

打开命令提示符,进入Postgres安装的目录。在我的情况下,我的Postgres路径是“D:\TOOLS\Postgresql-9.4.1-3”。然后移动到Postgres的bin目录。因此命令提示符显示为"D:\TOOLS\Postgresql-9.4.1-3\bin>" 现在我的目标是从用户表中使用“UserId”值选择“UserName”。数据库查询是"Select u "UserName" from users u其中u."UserId"=1"。

对于postgres的psql命令提示符,同样的查询如下所示。

D:\TOOLS\Postgresql-9.4.1-3\bin>psql - u postgress - D DatabaseName -h localhost - t -c "Select u.\"UserName\" from users u其中u.\"UserId\"=1;