2010-10-02 28 views
0

我只是學習SQL,並從PostgreSQL開始。這裏是我想要做的事:你如何連接到最近創建的postgres數據庫?

psql postgres 
CREATE DATABASE newdb; 

然後我想這樣做(在同一會話PSQL)

CONNECT DATABASE newdb; 

當然,這並不工作。但做完聲明後,我應該可以這樣做:

CREATE TABLE newtable 

「newtable」應該出現在newdb數據庫中。我覺得有一些簡單的東西我錯過了。

回答

3

在外殼裏,你只是做\c連接:

\c newdb 
2

你失去了一些東西很簡單:如何使用可用的文檔。我建議你這樣做,因爲你的問題是相當基本的,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的是如何執行的疑問:

[email protected]:/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; 
************************** 
相關問題