PostgreSQL數(shù)據(jù)庫管理系統(tǒng)快速入門
一、PostgreSQL是什么?
PostgreSQL是一個功能強大的開源對象關系數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。 用于安全地存儲數(shù)據(jù); 支持最佳做法,并允許在處理請求時檢索它們。
PostgreSQL(也稱為Post-gress-Q-L
)由PostgreSQL全球開發(fā)集團(全球志愿者團隊)開發(fā)。 它不受任何公司或其他私人實體控制。 它是開源的,其源代碼是免費提供的。
PostgreSQL是跨平臺的,可以在許多操作系統(tǒng)上運行,如Linux,OS X和Microsoft Windows等。
二、PostgreSQL特點
- 跨平臺
- 支持文本、圖像、視頻、聲音等
- 并提供C/C++、Java、Perl、Python、Ruby訪問數(shù)據(jù)庫連接(ODBC)的編程接口。
- 支持SQL的許多功能,例如復雜的SQL查詢,子查詢,外鍵,觸發(fā)器,視圖,視圖,多進程并發(fā)控制(MVCC)、異步復制。
- 在PostgreSQL中,表可以設置為從“父”表繼承其特征。
PostgreSQL是第一個實現(xiàn)多版本并發(fā)控制(MVCC)功能的數(shù)據(jù)庫管理系統(tǒng),甚至在Oracle之前。MVCC功能在Oracle中稱為快照隔離。
PostgreSQL是一個通用的對象 - 關系數(shù)據(jù)庫管理系統(tǒng)。它允許您添加使用不同編程語言(如C / C ++,Java等)開發(fā)的自定義函數(shù)。
PostgreSQL旨在實現(xiàn)可擴展性。在PostgreSQL中,您可以定義自己的數(shù)據(jù)類型,索引類型,函數(shù)語言等。如果您不喜歡系統(tǒng)的任何部分,您可以隨時開發(fā)自定義插件以增強它以滿足您的要求,例如,添加新的優(yōu)化。
如果您需要任何支持,可以使用活躍的社區(qū)來提供幫助。您可以隨時找到PostgreSQL社區(qū)的答案,以了解使用PostgreSQL時可能遇到的問題。許多公司在您需要時提供商業(yè)支持服務。
三、PostgreSQL工具
- psql:命令行工具,也是管理PostgreSQL的主要工具
- pgAdmin:是PostgreSQL免費開源的圖形化界面管理工具
四、PostgreSQL安裝
Linux 下安裝、創(chuàng)建用戶和數(shù)據(jù)庫教程:PostgreSQL安裝和創(chuàng)建用戶和創(chuàng)建數(shù)據(jù)庫 - 短毛兔 - 博客園
官方下載地址:
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
驗證安裝
有幾種方法可以驗證安裝。您可以嘗試從任何客戶端應用程序(例如psql和pgAdmin)連接到PostgreSQL數(shù)據(jù)庫服務器。
驗證安裝的快速方法是通過pgAdmin應用程序。
首先,打開SQL shell(psql)
五、PostgreSQL數(shù)據(jù)庫命令
1.打開SQL shell(psql),執(zhí)行以下創(chuàng)建語句
create database mydb;
2.刪除數(shù)據(jù)庫命令:
drop database mydb;
這個動作將在物理上把所有與該數(shù)據(jù)庫相關的文件都刪除并且不可取消, 因此做這中操作之前一定要考慮清楚。
3.訪問數(shù)據(jù)庫
運行PostgreSQL的交互式終端程序,它被稱為psql, 它允許你交互地輸入、編輯和執(zhí)行SQL命令。
psql mydb; -- 用下面的命令為mydb數(shù)據(jù)庫激活它
4.查看數(shù)據(jù)庫
postgres=# \l -- l是L的小寫
5.選擇數(shù)據(jù)庫,如果創(chuàng)建表的話,前提是在哪個數(shù)據(jù)庫中:
\c mydb; -- 選擇mydb數(shù)據(jù)庫,注意\c是小寫
6.如果要退出psql的話,輸入
mydb=> \q
六、創(chuàng)建一個新表
通過指定表的名字、所有列的名字以及其數(shù)據(jù)類型來創(chuàng)建新的表:
CREATE TABLE weather ( city varchar(80), temp_lo int, -- 最低溫度 temp_hi int, -- 最高溫度 prcp real, -- 濕度 date date );
和mysql命令終端類似,psql可以識別該命令直到分號結束。SQL 是對關鍵字和標識符大小寫不敏感的語言,只有在標識符用雙引號包圍時才能保留它們的大小寫。兩個中橫線(--)表示注釋。
PostgreSQL支持標準的SQL類型int、smallint、real、double precision、char(N)、varchar(N)、date、time、timestamp和interval,還支持其他的通用功能的類型和豐富的幾何類型。PostgreSQL中可以定制任意數(shù)量的用戶定義數(shù)據(jù)類型。因而類型名并不是語法關鍵字,除了SQL標準要求支持的特例外。
第二個例子將保存城市和它們相關的地理位置:
CREATE TABLE cities ( name varchar(80), location point );
類型point就是一種PostgreSQL特有數(shù)據(jù)類型的例子。
刪除一張表:
drop table tablename; -- 刪除數(shù)據(jù)表
七、添加記錄
insert語句用于向表中添加行:
INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
需要注意的是:那些不是簡單數(shù)字的值,通常使用單引號包裹,date類型實際上對可接收的格式相當靈活,不過我們應該堅持使用這種清晰的格式。
point類型要求一個坐標對作為輸入,如下:
INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');
另一種方式是列出所有的列,一個可選的語法允許你明確地列出列:
INSERT INTO weather (city, temp_lo, temp_hi, prcp, date) VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');
你可以用另外一個順序列出列或者是忽略某些列, 比如說,我們不知道降水量:
INSERT INTO weather (city, temp_lo, temp_hi, prcp, date) VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');
你還可以使用COPY從文本文件中裝載大量數(shù)據(jù)。這種方式通常更快,因為COPY命令就是為這類應用優(yōu)化的, 只是比INSERT少一些靈活性。比如:
COPY weather FROM '/home/user/weather.txt';
八、查詢數(shù)據(jù)
- 使用DISTINCT運算符選擇不同的行
- 使用where進行過濾
- 使用order by進行排序
- 根據(jù)between,in,like選擇不同的行
- 使用group by進行分組
- 使用having子句為 組應用條件
- 使用inner join、left join、full outer join、cross join進行連表查詢
postgresql的select例子
SELECT語法:
SELECT column_1, column_2, ... FROM table_name;
首先,指定要在select子句中查詢數(shù)據(jù)表的列,多個列使用逗號分隔,如果要查詢所有列,使用星號(*)作為簡寫;其次,在From之后指出表名。
-- 在SELECT語句中使用星號(*)不是一個好習慣 。想象一下,你有一個包含許多列的大表,SELECT帶有星號(*)的語句將從整列中檢索所有數(shù)據(jù),這可能不是必需的。此外,從表中檢索不必要的數(shù)據(jù)會增加數(shù)據(jù)庫服務器和應用程序之間的流量。因此,您的應用程序將變得緩慢且可擴展性降低。因此,最好在SELECT子句中明確指定列名,以便只從表中獲取所需的數(shù)據(jù)。
LIMIT:PostgreSQL 中l(wèi)imit是select語句可選的子句,它獲取查詢返回的所有行的子集。
LIMIT語法:
SELECT * FROM table_name LIMIT n;
如果要在返回行之前跳過m行,請使用offset子句:
SELECT *FROM table LIMIT n OFFSET m;
由于數(shù)據(jù)庫表行的順序是不可預測的,因此在使用limit子句的時候,應始終使用該order by子句來控制行的順序。
我們經(jīng)常使用LIMIT子句來獲取表中最高或最低項的數(shù)據(jù),例如,要獲得最貴的前十名電影,您可以按照售價按降序排序,并使用LIMIT條款獲得前10部電影:
select * from film order by rental_rate desc limit 10;
ORDER BY:如何對查詢返回的結果集進行排序
當你從表中查詢數(shù)據(jù),PostgreSQL按照他們插入的順序返回行,需要對結果集進行排序,需要使用select的order by子句
select column_1,column_2 from table_name order by column_1 ASC,column_2 DESC;
首先,在order by子句中指定要排序的列,如果基于多個列對結果集進行排序,使用逗號分隔。
使用ASC表示升序,DESC按照降序,如果省略,默認按照ASC。
DISTINCT:刪除結果集中重復行的子句
使用distinct語句可以從結果集中刪除重復的行,該distinct子句為每組重復項保留一行
select distinct column_1 from table_name; -- column_1列中的值用于評估重復項
select distinct column_1,column_2 from table_name; -- column_1列和column_2兩者的結合用于評估重復項
九、過濾數(shù)據(jù)
- where:根據(jù)指定的條件過濾行
- limit:從查詢結果集中獲取子集
- fetch:限制返回的行數(shù)
- in:選擇與值列表中的任何值匹配的數(shù)據(jù)。
- between:選擇一系列值的數(shù)據(jù)
- like:根據(jù)模式匹配過濾結果集
- is null:檢查值是否為null
到此這篇關于PostgreSQL數(shù)據(jù)庫快速入門的文章就介紹到這了,更多相關PostgreSQL入門內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
postgresql數(shù)據(jù)庫連接數(shù)和狀態(tài)查詢操作
這篇文章主要介紹了postgresql數(shù)據(jù)庫連接數(shù)和狀態(tài)查詢操作,具有很好的參考價值,對大家有所幫助。一起跟隨小編過來看看吧2021-02-02在postgresql數(shù)據(jù)庫中創(chuàng)建只讀用戶的操作
這篇文章主要介紹了在postgresql數(shù)據(jù)庫中創(chuàng)建只讀用戶的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12Postgresql 數(shù)據(jù)庫權限功能的使用總結
這篇文章主要介紹了Postgresql 數(shù)據(jù)庫權限功能的使用總結,具有很好的參考價值,對大家有所幫助。一起跟隨小編過來看看吧2021-02-02常用?PostgreSQL?預防數(shù)據(jù)丟失解決方案
這篇文章主要介紹了常用?PostgreSQL?預防數(shù)據(jù)丟失方案,本篇主要介紹關于?DDL?和?DML?操作,如何預防數(shù)據(jù)丟失的方案,需要的朋友可以參考下2022-01-01CVE-2019-9193之PostgreSQL?任意命令執(zhí)行漏洞的問題
這篇文章主要介紹了CVE-2019-9193:PostgreSQL?任意命令執(zhí)行漏洞,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08pgsql之pg_stat_replication的使用詳解
這篇文章主要介紹了pgsql之pg_stat_replication的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01