j45*_*50n 6 command-line postgresql sql
我是一个长期尝试切换到命令行的 GUI 用户,我不确定如何从 Ubuntu 命令行执行 SQL 语句。我正在使用 postgres。我可以\c用来连接到数据库并\d查看其中的表。我还可以看到带有\d dbname(dbname数据库名称在哪里)的标题。我不能做的是看到实际数据。
我尝试过 SELECT * FROM dbname;,但出现“dbname 处或附近的语法错误”。我在没有分号的情况下尝试了它,并且刚刚获得了一个新的命令行。我如何查看我的数据?提前致谢。
Ser*_*nyy 11
编辑:OP的实际问题显然是完全由数字组成的表名。根据SQL-92 标准,表名不能以数字开头,但可以包含数字。对于这种情况,只需将名称用双引号或单引号括起来,如下所示SELECT * FROM "12345";
本质上,您需要的是psql命令- Postgres 的命令行解释器,它默认随 Ubuntu 上的 Postgres 安装一起提供。运行psql -U username databasename将允许您连接到它,并通过该命令行解释器执行 SQL 查询。如果您询问如何在bashshell 中运行命令,则应该使用psql带标志的命令-c。类似的东西
psql -U username -d database.db -c "SELECT * FROM some_table"
Run Code Online (Sandbox Code Playgroud)
对于多行查询,您可以使用heredoc:
$ psql -U admin_serg hello_world <<EOF
> SELECT * FROM foobar;
> EOF
foo | bar
-----+-------------
1 | Hello World
(1 row)
Run Code Online (Sandbox Code Playgroud)
当然,如果您还没有使用 创建特定用户postgres,您可能需要这样做,或者psql首先以用户身份登录sudo su postgres。
至于语法错误,您可能尝试直接在命令行中输入 SQL 查询(在您的情况下,可能是bashshell )。这不是它的工作原理 -bash不理解 SQL,只理解它自己的语法,因此为什么psql存在命令行解释器,就像其他数据库(sqlite3例如)或有 GUI 工具(例如pgAdminpostgres 或sqlitebrowsersqlite3)。
也可以看看:
| 归档时间: |
|
| 查看次数: |
57073 次 |
| 最近记录: |