我是一个postgreSQL新手,我找不到任何有用的介绍使用psql命令.至少我认为这是我想要使用的命令.
在postgreSQL中是否可以简单地连接到服务器然后列出,创建,使用和检查数据库?
我希望能够使用psql用MySQL做这样的事情(我删除了很多额外的行):
连接时没有指定数据库 - 我似乎无法用psql做到这一点:
$ mysql -u root -prootpassword
Welcome to the MySQL monitor. Commands end with ; or \g.
Server version: 5.5.28 MySQL Community Server (GPL)
Run Code Online (Sandbox Code Playgroud)
我可以使用mysql列出数据库,但posgreSQL命令SHOW似乎没有这样做.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ocdp |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.04 sec)
Run Code Online (Sandbox Code Playgroud)
我可以切换数据库.
mysql> use ocdp;
Database changed
Run Code Online (Sandbox Code Playgroud)
我无法在psql中弄清楚这个命令:
mysql> show tables;
+---------------------------------+
| Tables_in_ocdp |
+---------------------------------+
| OCAddresses |
| OCStreets …Run Code Online (Sandbox Code Playgroud) 显然这是一个非常难以提出的问题,因为很简单,似乎没有人回答过这个问题.
我在ubuntu 12.10服务器上运行PostgreSQL(没有GUI).
我的目标 - 我的问题 - 是创建一个名为"mydb"的数据库和一个用户"admin",以便我可以从shell中以普通用户身份提供此命令并连接到数据库:
$ psql -U admin -d mydb
但我无法在任何地方找到答案.
我可以通过su'ing并运行psql命令以用户postgres身份登录:
$ sudo su -m postgres
postgres@baseubu1210dev:~$ psql
psql (9.1.7)
Type "help" for help.
postgres=#
Run Code Online (Sandbox Code Playgroud)
我已经想出如何创建一个名为"mydb"的数据库和一个用户"admin",以便:
postgres=# \du
Role name | List of roles Attributes | Member of
-----------+------------------------------------------------
admin | Superuser, Create role, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Run Code Online (Sandbox Code Playgroud)
我还没弄明白如何确保用户"admin"可以连接到"mydb"数据库 - 也许有这样的权限的人不需要?[在我写的时候,我注意到我应该撤销管理员的超级用户权限.]
而我真正想知道的是如何从普通用户的shell连接:
$ psql -U postgres
psql: …Run Code Online (Sandbox Code Playgroud) 我知道如何从命令行运行mongodb脚本然后进入shell.例如,
mongo --shell dbname dbnameinit.js
但是一旦我进入shell,我可以执行另一个脚本吗?像db.dbname.load("anotherscript.js")这样的东西???
谢谢! - ge
我有一个工作流程,要求我保留一堆具有不同名称的表,例如
2012_10_15_ncvoter68
2012_11_15_ncvoter68
2012_12_15_ncvoter68
Run Code Online (Sandbox Code Playgroud)
你明白了。
假设我刚刚创建了该表2012_12_15_ncvoter68。
我想使用变量查询该表。例如,我可以定义一个变量:
SET @dt_ncv = CONCAT((SELECT DATE_FORMAT(CURDATE(), '%Y_%m_%d')),"_ncvoter68");
Run Code Online (Sandbox Code Playgroud)
该变量的@dt_ncv计算结果为字符串2012_12_15_ncvoter68。
但我无法弄清楚如何(或者是否可能)使用此变量来引用该表。
查询:
SELECT count(*) FROM @dt_ncv;
Run Code Online (Sandbox Code Playgroud)
只需给出 SQL 语法错误即可。
我尝试过使用准备好的语句,但这似乎没有帮助。
我希望 MySQL 专家能够提供帮助!