我向表中插入了数据...现在我想通过命令显示包含行、列和数据的整个表,我该如何做?
我插入了一条数据到一个表里……现在我想通过命令来查看整张表格,包括行、列以及数据。该怎样显示呢?
我向表中插入了数据...现在我想通过命令显示包含行、列和数据的整个表,我该如何做?
我插入了一条数据到一个表里……现在我想通过命令来查看整张表格,包括行、列以及数据。该怎样显示呢?
psql -U username -d mydatabase -c 'SELECT * FROM mytable'
如果你是 postgresql 新手,并且不熟悉使用命令行工具 psql
,那么在进入交互式会话时应该注意一些混乱的行为。
例如,启动一个交互式会话:
psql -U username mydatabase
mydatabase=#
此时,您可以直接输入查询,但必须记得在查询末尾加上分号;
例如:
mydatabase=# SELECT * FROM mytable;
如果你忘记了分号,则在按回车键时,因为psql
会认为你没有完成查询输入,所以返回的结果行将为空。这可能导致各种混淆。例如,如果重新输入相同的查询,很可能会创建语法错误。psql
将静默提供一个新行。如果在该新行上输入分号,然后按Enter,则会收到以下错误:mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
经验法则是:
如果你没有从psql
收到任何响应,但你期望至少有些响应,那么你可能忘记了分号;
SELECT * FROM my_table;
my_table
是您的表格名称。
编辑:
psql -c "SELECT * FROM my_table"
或者只需使用 psql
,然后键入您的查询。
my_table
表格中的所有数据:psql -U 用户名 -c 您的数据库 "SELECT * FROM my_table"
- DrColossoscmd.exe /c chcp 1252
即可。 - D_Guidipsql: FATAL: database "SELECT * FROM tb_name" does not exist
。 - Jaswinder-d
参数 psql -U ravil -d hw5 -c "SELECT * FROM table_name;"
-- 它是有效的。 - dehasiPGPASSWORD=password psql -U username -d dbname -c "select * from my_table"
从应用程序中打开“SQL Shell (psql)”(Mac)。
按回车键使用默认设置。在提示输入密码时输入密码。
*) 输入\?
获取帮助
*) 输入\conninfo
查看你连接的用户。
*) 输入\l
查看数据库列表。
*) 通过输入\c <Name of DB>
连接到一个数据库,例如\c GeneDB1
*) 现在你已经连接到了一个数据库,想知道该数据库的模式。最好的命令是\dn
。
其他同样适用(但不如好的)命令为select schema_name from information_schema.schemata;
和select nspname from pg_catalog.pg_namespace;
:
-) 现在您已经拥有了模式,想要知道这些模式中的表。为此,可以使用dt
命令。例如:\dt "GeneSchema1".*
*) 现在,您可以执行查询。例如:
*) 这是pgAdmin中上述数据库、模式和表的外观:
SELECT show_chunks(older_than => interval '1 day');
- ImranRazaKhan我还注意到查询
SELECT * FROM tablename;
在psql命令提示符上会出错,但是
SELECT * FROM "tablename";
可以正常运行,这真的很奇怪,所以不要忘记使用双引号。 我一直都很喜欢数据库 :-(
;
。 - Mechanic我对 @Grant 的答案毫不怀疑。但有时我会遇到一些问题,例如如果列名与postgresql的任何保留关键字相似,比如在这种情况下是 natural,则类似的SQL很难从命令行运行,因为在查询字段中需要 "\natural\"。因此,我的方法是将SQL编写到单独的文件中,并从命令行运行SQL文件。这也有另一个优点。如果您需要更改大型脚本的查询,您无需更改脚本文件或命令。只需更改这个SQL文件就可以了。
psql -h localhost -d database -U postgres -p 5432 -a -q -f /path/to/the/file.sql
## 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;"
对于postgres的psql命令提示符,将相同的查询编写如下所示:
D:\TOOLS\Postgresql-9.4.1-3\bin>psql -U postgres -d DatabaseName -h localhost - t -c "Select u.\"UserName\" from users u Where u.\"UserId\"=1;
我将为Windows机器上的一条命令增添我的经验。我想尝试运行一条单一命令以获取表格内容。
这是对于我有效的单一命令:
psql -U postgres -d typeorm -c "SELECT * FROM \"Author\"";
我遇到了问题,主要困扰于如何准确地设置查询部分。我尝试了不同的命令,比如:用 ', ", (), 但是除了这种记法,没有其他的方式有效。
如果要在受密码保护的数据库中直接运行SQL命令,最好使用命令行中的连接字符串格式。使用以下命令:
psql -d postgresql://postgres:password@localhost:5432/dbname
-c "create database sample1 --or any command"
kubectl exec
将数据传输到客户端时,此方法可行,例如:kubectl exec -it postgresql-client -n postgresql-client -- psql -d postgresql://user:pwd@mydbhost:5432/mydb -c "select value,data from schema.mappings where source='mysource' and key='mykey' Order By value;" --csv
。 - Dennis
--single-line
(或者-s
)选项,该选项可以使每个命令立即执行,无需添加分号。 - Gordon-S
),如果您使用小写字母-s
,那意味着单步模式(确认每个查询)
。您可以通过运行psql --help
来查看选项。 - Eric Mutta