postgresql 常用sql語句

轉載:http://blog.chinaunix.net/u3/107080/showart_2244091.html

1.列出所有表名的查詢語句

SELECT tablename FROM pg_tables
WHERE tablename NOT LIKE 'pg%'
AND tablename NOT LIKE 'sql_%'
ORDER BY tablename;

2.列出表中所有的數據

SELECT * FROM someTable;

3.執行外部腳本

#/opt/PostgreSQL/8. 3/bin/psql - Upostgres ;登陸到數據庫的控制檯界面
postgres= # \i /root/db. sql
     \i 命令用於執行一個外部的sql腳本文件。

 
4.導出數據庫爲外部的腳本

#/opt/PostgreSQL/8. 3/bin/ pg_dump - Upostgres - C - fdb. sql database

-C create    -f 是導出後的文件名

 

5.postgresql 插入16進制數 

INSERT INTO tableAAA VALUES( x'0001f' : : integer, '鑑權' , 'Authority' )

6.使用 TG_RELNAME 報錯ERROR:  syntax error at or near "$1" at character

[引]http://www.dbmonster.com/Uwe/Forum.aspx/postgresql/2051/TG-RELNAME-problem

Perhaps you will get some idea if you read the document:
37. 6. 4. Executing Dynamic Commands

改:執行動態語句

 EXECUTE 'INSERT INTO TG_RELNAME VALUES (NEW.start_time , NEW.id , NEW.end_time)';

 
7. psql 常用命令

a. \c tesdb1 - - 將當前連接的testdb數據庫改變成 testdb1 。
b . \q - - 斷開與Postgres服務器的連接
c . \l 列出所有數據庫的名字
    \l+ 列出所有數據庫的名字以及字符集編碼
d. \d [ 名字] 描述表, 索引, 序列, 或者視圖
                 列出表/索引/序列/視圖/系統表
   \d{t| i| s| v| S} [ 模式] ("+" 獲取更多信息)
                 - - 列出表/索引/序列/視圖/系統表
   \d tablename - - 查看錶的結構
   \dt - - 列出數據庫中所有表

8.在PostgreSQL中如何刪除重複記錄

【轉】http: / / hi. baidu. com/cicon/blog/item/e14f217f4eeee20429388a0c. html

在PostgreSQL中刪除重複記錄其實很簡單,不論有多少行重複,只要在要刪除重複記錄的表中table加一列rownum字段( id爲table表中的主鍵) ,類型設置爲serial類型即可,然後執行sql
delete from deltest where rownum not in(
select max(rownum) from deltest
);
最後刪除列rownum即可

 

==============================================

正文:

連接數據庫操作:

psql是postgresql數據庫提供的連接數據庫shell命令,格式 psql 【option】 dbname

在終端輸入psql 會使用默認的方式連接本地數據庫,使用的用戶名是登陸linux系統使用的用戶名,

psql -U username -W pass 以及psql -U username -W pass databasenaem都可以實現連接數據庫的功能,第一種方式是使用用戶名username密碼pass連接默認數據庫(具體鏈接那個數據庫還沒搞清 楚),第二種方式使用用戶名username密碼pass連接username數據庫。如果登錄成功之後將顯示類似信息

Welcome to psql 8.0.6, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

連接成功之後所有的命令都是使用”\“+ 字符或者word完成相應的功能。現將常用的幾個列車

\l      列出所有數據庫

\dt   列出連接數據庫中所有表

\di   列出連接數據庫中所有index

\dv  列出連接數據庫中所有view

\h    sql命令幫助

\?    \ 所有命令幫助

\q   退出連接

\d tablename  列出指定tablename的表結構

可以嘗試執行下面兩句sql

SELECT current_date

SELECT version()

是不是nothing happened,這是因爲postgresql數據庫要求必須使用;結尾否則不予執行,加上;之後就能看到結果了。

如果我們想創建數據庫怎麼辦呢?

我們知道createdb和dropdb可以創建和刪除數據庫,但是如果我們這個時候執行出現什麼問題呢?可以試一試,提示是個錯誤。

爲什麼呢?

createdb和dropdb是shell腳本,所以現在又兩種方式執行

(1).退出連接進入終端,輸入createdb test —U user -W pass 稍等提示創建數據庫成功

                                          dropdb test —U user -W pass    提示drop成功

(2).在未退出連接中使用 \! createdb test —U user -W pass 稍等提示創建數據庫成功

                                      \! dropdb test —U user -W pass    提示drop成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章