PostgreSQL 安裝和簡單使用第2/2頁
更新時間:2009年08月05日 23:27:11 作者:
ostgreSQL是現(xiàn)在比較流行的數(shù)據(jù)庫之一,這個起源于伯克利(BSD)的數(shù)據(jù)庫研究計劃目前已經(jīng)衍生成一項國際開發(fā)項目,并且有非常廣泛的用戶。
6. Postgresql圖形化管理工具pgAdmin3 ;
版本:Version1.4.3
6.1 安裝;
6.1.1 Ubuntu安裝 ;
有兩種方法:
1.在新立得軟件包管理器中搜索pgadmin3,找到pgadmin3--應用
2.終端下輸入命令:
xiaop@xiaop-laptop:~$ sudo apt-get install pgadmin3
6.1.2 其它系統(tǒng)的安裝;
您可以參考其它系統(tǒng)正常的軟件的安裝方法,起本類似,這里就不多做介紹了;
6.2 pgAdmin3的簡單使用;
圖形化管理系統(tǒng)相對比較直觀,您可以在命令行下操作,然后在pgAdmin3下查看效果;
6.2.1 pgAdmin3的啟動
您可以在應用程序---系統(tǒng)工具中找到pgAdmin3的啟動項;
也可以在命令行下輸入:
xiaop@xiaop-laptop:~$ /usr/bin/pgadmin3 start
6.2.2 連接已創(chuàng)建的數(shù)據(jù)庫mydb ;
點擊檔案-----新增服務器,然后在跳出的窗口下輸入:
地址:localhost
描述:服務器名稱(隨意填寫)
維護數(shù)據(jù)庫:postgres
用戶名:自己創(chuàng)建一個(詳情參見創(chuàng)建用戶)
密碼:和用戶名對應(創(chuàng)建用戶時自己創(chuàng)建)
點擊確定后大家便可以查看postsql已有的數(shù)據(jù)庫了;
注:pgAdmin3的數(shù)據(jù)庫和終端下創(chuàng)建的數(shù)據(jù)庫是完全同步的(可以用刷新查看效果), pgAdmin3是比較方便的圖形化管理工具,它可以創(chuàng)建圖表,管理數(shù)據(jù)庫等,有關(guān)pgAdmin3的詳細介紹我們在以后討論,本文主要介紹命令行下的操作。圖形化管理工具能做到的命令行都可以做到,您可以在命令行下創(chuàng)建表,在pgAdmin3上查看是否同步:
7. 創(chuàng)建和刪除表;
7.1 創(chuàng)建新表;
創(chuàng)建完數(shù)據(jù)庫之后,您就可以創(chuàng)建新表了,可以通過聲明表的名字和所有字段的名字及其類型來創(chuàng)建表,例如:
mydb#CREATE TABLE weather (
city varchar(80),
temp_lo int, -- 最低氣溫
temp_hi int, -- 最高氣溫
prcp real, -- 降水量
date date
);
注:您可以在 psql 里連換行符一起鍵入這些東西。 psql 可以識別該命令直到分號才結(jié)束,不要忘記“;”
您可以在 SQL 命令中自由使用空白(也就是空格,tab,和換行符)。 這就意味著您可以用和上面不同的對齊方式鍵入命令。 兩個劃線("--") 引入注釋。 任何跟在它后面的東西直到該行的結(jié)尾都被忽略。 SQL 是對關(guān)鍵字和標識符大小寫不敏感的語言,只有在標識符用雙引號包圍時才能保留它們的大小寫屬性。
7.2 數(shù)據(jù)類型;
上面例子中的varchar(80) 聲明一個可以存儲最長 80 個字符的任意字符串的數(shù)據(jù)類型。 int 是普通的整數(shù)類型。 real 是一種用于存儲單精度浮點數(shù)的類型。 date 類型應該可以自解釋。
PostgresSQL 支持標準的 SQL 類型 int,smallint, real,double precision, char(N), varchar(N),date, time,timestamp 和 interval,還支持其他的通用類型和豐富的幾何類型。 PostgreSQL 可以客戶化為定制任意的用戶定義的數(shù)據(jù)類型,您可以參考PostgreSQL的中文文檔來查詢;
7.3 刪除表;
如果您不再需要某個表,或者您想創(chuàng)建一個不同的表,那么您可以用下面的命令刪除它:
mydb#DROP TABLE tablename
8. 向表中添加行;
8.1 INSERT;
INSERT 用于向表中添加行,您可以輸入(在數(shù)據(jù)庫中操作):
mydb#INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
注:所有數(shù)據(jù)類型都使用了相當明了的輸入格式。 那些不是簡單數(shù)字值的常量必需用單引號(')包圍, 就象在例子里一樣。
8.2 point類型輸入;
point 類型要求一個座標對作為輸入,如下:
mydb#INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');
8.3 COPY;
您還可以使用 COPY 從文本文件中裝載大量數(shù)據(jù)。 這么干通常更快,因為 COPY 命令就是為這類應用優(yōu)化的, 只是比 INSERT 少一些靈活性.比如:
mydb#COPY weather FROM '/home/user/weather.txt';
注:weather.txt是您提前寫好的符合格式標準的表格內(nèi)容文檔;
9. 查詢一個表;
9.1 SELECT;
要從一個表中檢索數(shù)據(jù)就是查詢這個表。 SQL 的 SELECT 就是做這個用途的。 該語句分為選擇列表(列出要返回的字段部分),表列表(列出從中檢索數(shù)據(jù)的表的部分), 以及可選的條件(聲明任意限制的部分)。比如,要檢索表 weather 的所有行,鍵入:
SELECT * FROM weather;
<code>
輸出結(jié)果:
<code>
city | temp_lo | temp_hi | prcp | date
---------------+---------+---------+------+------------
San Francisco | 46 | 50 | 0.25 | 1994-11-27
San Francisco | 43 | 57 | 0 | 1994-11-29
Hayward | 37 | 54 | | 1994-11-29
(3 rows)
您可以在選擇列表中寫任意表達式,而不僅僅是字段列表。比如,您可以:
SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;
這樣應該得出:
city | temp_avg | date
---------------+----------+------------
San Francisco | 48 | 1994-11-27
San Francisco | 50 | 1994-11-29
Hayward | 45 | 1994-11-29
(3 rows)
請注意這里的 AS 子句是如何給輸出字段重新命名的。(AS 子句是可選的。)
9.2 WHERE;
一個查詢可以使用 WHERE 子句"修飾",聲明需要哪些行。 WHERE 子句包含一個布爾(真值)表達式,只有那些布爾表達式為真的行才會被返回。 允許您在條件中使用常用的布爾操作符(AND,OR, 和 NOT)。 比如,下面的查詢檢索舊金山的下雨天的天氣:
mydb#SELECT * FROM weather
WHERE city = 'San Francisco' AND prcp > 0.0;
結(jié)果:
city | temp_lo | temp_hi | prcp | date
---------------+---------+---------+------+------------
San Francisco | 46 | 50 | 0.25 | 1994-11-27
(1 row)
9.3 排序;
您可以要求返回的查詢是排好序的:
mydb#SELECT * FROM weather
ORDER BY city;
得出結(jié)果:
city | temp_lo | temp_hi | prcp | date
---------------+---------+---------+------+------------
Hayward | 37 | 54 | | 1994-11-29
San Francisco | 43 | 57 | 0 | 1994-11-29
San Francisco | 46 | 50 | 0.25 | 1994-11-27
在這個例子里,排序的順序并非絕對清晰的,因此您可能看到 San Francisco 行隨機的排序。 但是如果您使用下面的語句,那么就總是會得到上面的結(jié)果
SELECT * FROM weather
ORDER BY city, temp_lo;
您可以要求查詢的結(jié)果按照某種順序排序, 并且消除重復的行輸出:
mydb#SELECT DISTINCT city
FROM weather;
得出結(jié)果:
city
---------------
Hayward
San Francisco
(2 rows)
再次聲明,結(jié)果行的順序可能是隨機的。
10. 視圖;
假設您的應用對天氣記錄和城市位置的組合列表特別感興趣, 而您又不想每次鍵入這些查詢。那么您可以在這個查詢上創(chuàng)建一個視圖, 它給這個查詢一個名字,您可以像普通表那樣引用它。
進入數(shù)據(jù)庫后輸入:
mydb#CREATE VIEW myview AS
SELECT city, temp_lo, temp_hi, prcp, date, location
FROM weather, cities
WHERE city = name;
建立視圖;
然后選擇建好的視圖:
SELECT * FROM myview;
結(jié)果如下:
city | temp_lo | temp_hi | prcp | date | location
---------------+---------+---------+------+------------+-----------
San Francisco | 46 | 50 | 0.25 | 1994-11-27 | (-194,53)
San Francisco | 43 | 57 | 0 | 1994-11-29 | (-194,53)
(2 rows)
11. 更新行;
您可以用 UPDATE 命令更新現(xiàn)有的行。 假設您發(fā)現(xiàn)所有 11 月 28 日的溫度計數(shù)都低了兩度,那么您就可以用下面的方式更新數(shù)據(jù):
mydb#UPDATE weather
SET temp_hi = temp_hi - 2, temp_lo = temp_lo - 2
WHERE date > '1994-11-28';
看看數(shù)據(jù)的新狀態(tài):
SELECT * FROM weather;
結(jié)果為:
city | temp_lo | temp_hi | prcp | date
---------------+---------+---------+------+------------
San Francisco | 46 | 50 | 0.25 | 1994-11-27
San Francisco | 41 | 55 | 0 | 1994-11-29
Hayward | 35 | 52 | | 1994-11-29
(3 rows)
12. 刪除行;
數(shù)據(jù)行可以用 DELETE 命令從表中刪除。假設您對Hayward的天氣不再感興趣,那么您可以用下面的方法把那些行從表中刪除:
mydb#DELETE FROM weather WHERE city = 'Hayward';
我們用下面形式的語句的時候一定要小心
DELETE FROM tablename;
如果沒有條件,DELETE 將從指定表中刪除所有行,把它清空。做這些之前系統(tǒng)不會請求您確認!
13. 關(guān)于本文
關(guān)于數(shù)據(jù)庫的備份和恢復,將在PostgreSQL備份和恢復中介紹,本文大部分資料都是參照中文文檔,目的是讓兄弟們查找方便一些,詳細的東西在中文文檔都有,多謝各位弟兄們指點 :)
相關(guān)文章
postgresql合并string_agg函數(shù)的實例
這篇文章主要介紹了postgresql合并string_agg函數(shù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01postgresql 實現(xiàn)多表關(guān)聯(lián)刪除
這篇文章主要介紹了postgresql 實現(xiàn)多表關(guān)聯(lián)刪除操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL 實現(xiàn)給查詢列表增加序號操作
這篇文章主要介紹了PostgreSQL 實現(xiàn)給查詢列表增加序號操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL三種自增列sequence,serial,identity的用法區(qū)別
這篇文章主要介紹了PostgreSQL三種自增列sequence,serial,identity的用法區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02PGSQL 實現(xiàn)查詢今天,昨天的數(shù)據(jù),一個月之內(nèi)的數(shù)據(jù)
這篇文章主要介紹了PGSQL 實現(xiàn)查詢今天,昨天的數(shù)據(jù),一個月之內(nèi)的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01postgreSql分組統(tǒng)計數(shù)據(jù)的實現(xiàn)代碼
這篇文章給大家介紹postgreSql的監(jiān)控記錄表里多條不同時間的數(shù)據(jù),只取最新的數(shù)據(jù),并分組統(tǒng)計,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-12-12