我在表....中插入了一个数据我想看到整个表的行,列和数据。我如何通过命令显示它?
当前回答
I have no doubt on @Grant answer. But I face few issues sometimes such as if the column name is similar to any reserved keyword of postgresql such as natural in this case similar SQL is difficult to run from the command line as "\natural\" will be needed in Query field. So my approach is to write the SQL in separate file and run the SQL file from command line. This has another advantage too. If you have to change the query for a large script you do not need to touch the script file or command. Only change the SQL file like this
psql -h localhost -d database -U postgres -p 5432 -a -q -f /path/to/the/file.sql
其他回答
在应用程序(Mac)中打开“SQL Shell (psql)”。
单击enter以获得默认设置。根据提示输入密码。
*)类型\?寻求帮助
*)输入\conninfo查看您连接的用户。
*)输入\l查看数据库列表。
*)通过\c <数据库>的名称连接到数据库,例如\c GeneDB1
您应该看到键提示符更改为新的DB,如下所示:
*)现在您在一个给定的DB中,您想知道该DB的schema。最好的命令是\dn。
其他同样有效(但不是那么好)的命令有select schema_name from information_schema.schemata;从pg_catalog.pg_namespace中选择nspname:
-)现在您已经有了schema,您想知道这些schema中的表。为此,您可以使用dt命令。例如\dt "GeneSchema1".*
*)现在您可以进行查询。例如:
*)下面是上面的DB, Schema和Tables在pgAdmin中的样子:
I have no doubt on @Grant answer. But I face few issues sometimes such as if the column name is similar to any reserved keyword of postgresql such as natural in this case similar SQL is difficult to run from the command line as "\natural\" will be needed in Query field. So my approach is to write the SQL in separate file and run the SQL file from command line. This has another advantage too. If you have to change the query for a large script you do not need to touch the script file or command. Only change the SQL file like this
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;"
在有密码保护的数据库中直接执行SQL命令。它宁愿在命令行中使用连接字符串格式。 使用该命令:
psql -d postgresql://postgres:password@localhost:5432/dbname
-c "create database sample1 --or any command"
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,那么你忘记了分号;
推荐文章
- 查询JSON类型内的数组元素
- 获得PostgreSQL数据库中当前连接数的正确查询
- MySQL数据库表中的最大记录数
- 从现有模式生成表关系图(SQL Server)
- HyperLogLog算法是如何工作的?
- 纬度和经度的数据类型是什么?
- 数据库和模式的区别
- 如何在PostgreSQL中临时禁用触发器?
- 输入文件似乎是一个文本格式转储。请使用psql
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 如何从命令行在windows中找到mysql数据目录
- 货币应该使用哪种数据类型?
- 如何添加列,如果不存在PostgreSQL?
- 如何找到MySQL的根密码