PostgreSQL是加州大學伯克利分校計算機系開發的對象關係型數據庫管理系統,目前擁有活躍的開源社區貢獻,最近排名也不斷前進,pgsql中其實有不少有點和設計理念都要比mysql更好一些,好比穩定性比較強;高併發讀寫狀況下性能依然較好;支持豐富的幾何類型而且在GIS領域地位領先;text支持各類長度,無需區分;nosql特性,支持array和json存儲和搜索等,由於這些優勢,pgsql應用場景也不斷擴展,下面詳細寫一下pgsql入門的第一步,即先將pgsql安裝至操做系統,過程以下:mysql
1. 下載軟件包linux
pgsql有不少類型的包,對於不一樣linux發行版都有對應的編譯好的包,安裝很方便,另外若是對於通用的linux平臺能夠編譯源碼安裝或者安裝官方編譯好的二進制包,源碼包的安裝僅僅比二進制安裝多出一個編譯步驟,其他的都同樣,因此這裏使用安裝方式是安裝編譯好的二進制包sql
pgsql官網地址:https://www.postgresql.org/,進入後點擊download就來到下載頁,這裏點擊Linux下面的Other Linux選項,而後點擊下方的tar.gz archive下載二進制歸檔,數據庫
而後就來到最終的pgsql下載頁了,地址爲:https://www.enterprisedb.com/download-postgresql-binaries,以下圖下載最新版本的10.1json
如上圖根據機器的位數下載對應的包,我這裏下載的是x86-64的包,爲:postgresql-10.1-1-linux-x64-binaries.tar.gz,下載以後準備安裝bash
2. 安裝並初始化服務器
解壓數據庫並放到指定目錄:併發
tar -xvzf postgresql-10.1-1-linux-x64-binaries.tar.gz # 解壓出來以後目錄爲pgsql mv pgsql/ /monchickey/
如今pgsql的安裝目錄就是/monchickey/pgsqlnosql
建立pgsql用戶並設置密碼:高併發
useradd postgres passwd postgres # 兩次輸入密碼並確認
注意:這裏設置密碼是linux用戶postgres的登陸密碼,不是pgsql服務器的密碼
建立pgsql數據目錄: mkdir /monchickey/pgsql_data
給postgres用戶受權目錄訪問權限: chown postgres /monchickey/pgsql_data/
而後切換到postgres用戶來操做數據庫,pgsql數據庫就以postgres爲默認用戶,執行: su - postgres 切換
切換以後建議修改~/.bash_profile將pgsql的bin目錄加至環境變量中,方便直接使用pgsql相關命令,下面初始化數據庫:
/monchickey/pgsql/bin/initdb -D /monchickey/pgsql_data/
等待執行完畢,沒什麼問題就初始化成功了,提示以下:
如圖根據提示能夠啓動數據庫: /monchickey/pgsql/bin/pg_ctl -D /monchickey/pgsql_data/ -l logfile start 這裏-l指定日誌文件位置,這裏直接輸出在家目錄下的logfile中,這個能夠本身指定,這裏-D指定數據目錄,默認若是不加數據目錄直接報錯找不到,能夠剛纔說的環境變量配置文件中~/.bash_profile加入一行: export PGDATA=/monchickey/pgsql_data 而後source進去便可,這樣pgsql會自動去找PGDATA環境變量值,找不到纔會報錯
啓動以後此時執行: ps -ef | grep postgres 就能夠看到相關進程以下:
pgsql默認的端口號爲5432,經過netstat命令或者lsof命令均可以看到監聽狀況:
如今能夠看到pgsql默認監聽的是localhost或127.0.0.1,目前只能本機訪問,若是遠程訪問就鏈接不上了,具體的配置文件是data目錄下的postgresql.conf,能夠經過修改這個配置文件來調整各個參數,好比:listen_addresses能夠修改綁定的地址,默認是localhost,port能夠修改監聽的端口號,默認是5432,max_connections能夠修改最大客戶端鏈接數量,默認是100等等,這裏就再也不詳細說了
中止postgresql的命令爲: /monchickey/pgsql/bin/pg_ctl -D /monchickey/pgsql_data/ stop
3. 命令行界面簡單操做
pgsql和mysql同樣能夠經過交互式提示符鏈接操做,鏈接方式以下:
./bin/psql -h 127.0.0.1 -d postgres -U postgres -p 5432
其中-h參數指定服務器地址,默認爲127.0.0.1,默認不指定便可,-d指定鏈接以後選中的數據庫,默認也是postgres,-U指定用戶,默認是當前用戶,-p 指定端口號,默認是"5432",其它更多的參數選項能夠執行: ./bin/psql --help 查看
登陸進去默認界面以下所示:
命令提示符前面的就是當前的數據庫,使用 \l 查看當前的數據庫列表
默認postgres,template0和1這3個庫是不容許操做的,建立新的數據庫執行: CREATE DATABASE test WITH OWNER=postgres ENCODING='UTF-8'; 這樣就建立好了數據庫test,而後能夠執行命令 \c test 切換當前數據庫爲test,而後執行 \d 能夠查看當前數據庫下的全部表:
建立一個簡單的數據表能夠執行下面的命令:
CREATE TABLE student ( id integer NOT NULL, name character(32), number char(5), CONSTRAINT student_pkey PRIMARY KEY (id) );
建立表以後可使用 \d student; 查看錶的詳細信息,以下:
如今能夠插入一條測試數據: INSERT INTO student (id, name, number) VALUES (1, '張三', '1023');
而後能夠查詢這條數據: SELECT * FROM student WHERE id=1;
最後能夠執行 \q 退出交互式界面
上面是一些最基本的操做,能夠看出除了一些屬性類的操做外,通用的sql語句和mysql幾乎徹底同樣,只是數據類型表達有所不一樣;對於pgsql的安裝和簡單的使用就先說這些,另外pgsql還支持更多複雜的查詢的操做,這個後續若是有涉及會繼續分享;感謝查看,歡迎補充.^_^.