代码之家  ›  专栏  ›  技术社区  ›  Jason Axelson Gazler

如何连接到最近创建的postgres数据库?

  •  0
  • Jason Axelson Gazler  · 技术社区  · 15 年前

    我正在学习sql,从PostgreSQL开始。以下是我要做的:

    psql postgres
    CREATE DATABASE newdb;
    

    CONNECT DATABASE newdb;
    

    这当然行不通。但在做了陈述之后,我应该可以做一些类似的事情:

    CREATE TABLE newtable
    

    newtable应该出现在newdb数据库中。我觉得我错过了一些简单的东西。

    2 回复  |  直到 15 年前
        1
  •  3
  •   halfdan    15 年前

    在你刚刚做的外壳上 \c

    \c newdb
    
        2
  •  2
  •   vol7ron    15 年前

    您缺少一些简单的东西:如何使用可用的文档。我建议您这样做是因为您的问题非常基本,而且PostgreSQL有大量的文档,这些文档在将来会非常有用—它可以为您节省很多时间。

    1. 看看 documentation :)
    2. \? 从命令行获取命令帮助
    3. man 页面输入

    \c or \connect ,这正是您所需要的;对于您质疑后面的SQL的其他命令,可以将ECHO_HIDDEN设置为显示系统查询。

        psql -E <rest of your db connection>
        -- then do something like "\d"
    

    然后您将看到Postgres是如何执行查询的:

    postgres@ubuntu:/home/fooUser$ psql -E
    postgres=# \d
    
    ********* QUERY **********
    SELECT n.nspname as "Schema",
          c.relname as "Name",
          CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as "Type",
          pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
    FROM pg_catalog.pg_class c
         LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
    WHERE c.relkind IN ('r','v','S','')
          AND n.nspname <> 'pg_catalog'
          AND n.nspname <> 'information_schema'
          AND n.nspname !~ '^pg_toast'
          AND pg_catalog.pg_table_is_visible(c.oid)
    ORDER BY 1,2;
    **************************