如何使用psql命令列出,创建,使用和检查数据库?

时间:2013-02-05 19:05:02

标签: postgresql psql

我是一个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)

我可以使用mysql列出数据库但是posgreSQL命令SHOW似乎没有这样做。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| ocdp               |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.04 sec)

我可以切换数据库。

mysql> use ocdp;
Database changed

我无法在psql中找出这个命令:

mysql> show tables;
+---------------------------------+
| Tables_in_ocdp                  |
+---------------------------------+
| OCAddresses                     |
| OCStreets                       |
+---------------------------------+
2 rows in set (0.00 sec)

我想我可以使用'createdb'和'dropdb'命令在psql中执行此操作:

mysql> create database foo;
Query OK, 1 row affected (0.00 sec)

mysql> drop database foo;
Query OK, 0 rows affected (0.03 sec)

我使用\ quit

mysql> quit
Bye

对于知道postgreSQL的人来说,这些问题的答案应该只需要一点时间,但我无法在任何地方找到说明如何进行这些简单操作的文档。也许我根本不应该使用psql呢?

4 个答案:

答案 0 :(得分:49)

连接到服务器:

$ mysql -u root -prootpassword

$ su - postgres
$ psql

列出数据库:

mysql> show databases;

postgres=# \l

切换数据库:

mysql> use ocdp;

postgres=# \c ocdp

显示表格:

mysql> show tables;

postgres=# \dt

创建数据库:

mysql> create database foo;

postgres=# create database foo;

drop database:

mysql> drop database foo;

postgres=# drop database foo;

退出:

mysql> quit

postgres=# \q

答案 1 :(得分:3)

如果您使用的是Mac-OS-X和postgres 9.4

,请尝试使用此命令

psql --list

答案 2 :(得分:2)

连接时没有指定数据库 - 我似乎无法使用psql执行此操作:

引用from the manual

  

默认用户名是您的Unix用户名,默认数据库名称


我可以切换数据库

引用from the manual

  

\ connect [dbname [username] [host] [port]]建立与PostgreSQL服务器的新连接


显示表格

引用from the manual

  

\ d [S +] [pattern]       对于每个关系(表,视图,索引,序列或外表)或与模式匹配的复合类型,显示所有列


创建数据库foo;

这与PostgreSQL中的语句相同,即documented in the manual


退出

引用from the manual

  

\ q或\ quit退出psql程序。

答案 3 :(得分:1)

带终端的Postgresql

进入postgresql

g

通过

查找postgresql中的数据库列表
   sudo -u postgres psql

按照以下命令连接到数据库

   $ \l

通过

查看数据库中的模型
   $ \c databasename

现在显示数据库中存在的表的列表,并对表执行操作,如

   $ \dt