PostgreSQL教學


這篇PostgreSQL教學提供SQL的基本和高階概念。此PostgreSQL系列教學是專為初學者和專業人士編寫提供的,需要讀者有一些基本的資料庫和程式設計基礎。

PostgreSQL是一個開源物件關聯式資料庫管理系統(ORDBMS)。

這篇PostgreSQL系列教學包括PostgreSQL語言的所有主題,如建立資料庫,建立表,刪除資料庫,刪除表,選擇資料庫,選擇表,插入記錄,更新記錄,刪除記錄,觸發器,功能,過程,游標等。幫助您更好地了解PostgreSQL語言和使用PostgreSQL資料庫。

PostgreSQL是什麼?

PostgreSQL是一個功能強大的開源物件關聯式資料庫管理系統(ORDBMS)。 用於安全地儲存資料; 支援最佳做法,並允許在處理請求時檢索它們。

PostgreSQL(也稱為Post-gress-Q-L)由PostgreSQL全球開發集團(全球志願者團隊)開發。 它不受任何公司或其他私人實體控制。 它是開源的,其原始碼是免費提供的。

PostgreSQL是跨平台的,可以在許多作業系統上執行,如Linux,FreeBSD,OS X,Solaris和Microsoft Windows等。

PostgreSQL的官方網站是:https://www.postgresql.org/ 開啟如下所示 -

前提條件

在學習PostgreSQL之前,您必須具備SQL和程式設計語言(如C)的基本知識。

面向讀者

這篇PostgreSQL系列教學旨在幫助初學者和專業人士。

問題

我們不能保證您在此PostgreSQL資料庫教學中不會遇到任何問題。本教學中的講解,範例和程式碼等只是根據作者的理解來概括寫出。由於作者水平和能力有限,因此不保正所有編寫的文章都準確無誤。但是如果有遇到任何錯誤或問題,請反饋給我們,我們會及時糾正以方便後續讀者閱讀。

教學目錄

1. 基礎部分

1.1. PostgreSQL是什麼?- PostgreSQL是一個功能強大的開源物件關聯式資料庫管理系統(ORDBMS)。
1.2. PostgreSQL歷史 - PostgreSQL由電腦科學教授Michael Stonebraker在UCB建立。
1.3. PostgreSQL特點 - 介紹PostgreSQL的6個特點及一些工具。
1.4. PostgreSQL命令語法大全 - 介紹PostgreSQL中所有語句的語法。
1.5. PostgreSQL資料型別 - PostgreSQL中主要有三種型別的資料型別:數值資料型別,字串資料型別和日期/時間資料型別。
1.6. PostgreSQL安裝(Windows)- 介紹如何在Windows系統上安裝PostgreSQL資料庫。
1.7. PostgreSQL建立資料庫 - 學習如何在PostgreSQL中,可以使用CREATE DATABASE命令建立資料庫。
1.8. PostgreSQL刪除資料庫 - 學習如何在PostgreSQL中刪除資料庫的兩種方法。
1.9. PostgreSQL建立表 - 學習如何在PostgreSQL中,使用CREATE TABLE語句在任何給定的資料庫中建立一個新錶。
2.0. PostgreSQL刪除表 - 學習如何刪除PostgreSQL中的區分表。
2.1. PostgreSQL模式(架構) - 學習模式的概念。模式(也叫架構)可以包含檢視,索引,序列,資料型別,運算子和函式。

2. 查詢語句

1.1. PostgreSQL插入資料(INSERT語句)- 在PostgreSQL中,INSERT查詢用於在表中插入新行。也可以一次插入單行或多行到表中。
1.2. PostgreSQL查詢資料(SELECT語句)- 在PostgreSQL中,SELECT語句用於從資料庫表中檢索資料。資料以結果表格的形式返回。
1.3. PostgreSQL更新資料(UPDATE語句)- 在PostgreSQL中,UPDATE語句用於修改表中現有的記錄。
1.4. PostgreSQL刪除資料(DELETE語句)- DELETE語句用於從表中刪除現有記錄。
1.5. PostgreSQL ORDER BY子句 - PostgreSQL ORDER BY子句用於按升序或降序對資料進行排序,資料在一列或多列的基礎上進行排序。
1.6. PostgreSQL分組(GROUP BY子句)- PostgreSQL GROUP BY子句用於將具有相同資料的表中的這些行分組在一起,GROUP BY子句與SELECT語句一起使用。
1.7. PostgreSQL Having子句 - 在PostgreSQL中,HAVING子句與GROUP BY子句組合使用,用於選擇函式結果滿足某些條件的特定行。
1.8. PostgreSQL條件查詢 - PostgreSQL條件用於從資料庫獲取更具體的結果。它們通常與WHERE子句一起使用。 具有子句的條件就像雙層過濾器。
1.9. PostgreSQL AND條件 - PostgreSQL AND條件與WHERE子句一起使用,以從表中的多個列中選擇同時滿足多個條件的資料。
2.0. PostgreSQL OR條件 - PostgreSQL OR條件與WHERE子句一起使用,以從表中的一列或多列列中選擇至少滿足一個條件的資料。
2.1. PostgreSQL AND & OR條件 - PostgreSQL AND&OR條件在僅一個查詢中提供了AND和OR條件的優點。
2.2. PostgreSQL NOT條件 - PostgreSQL NOT條件與WHERE子句一起使用以否定查詢中的條件。
2.3. PostgreSQL LIKE條件 - PostgreSQL LIKE條件與WHERE子句一起用於從指定條件滿足LIKE條件的表中獲取資料。
2.4. PostgreSQL IN條件 - PostgreSQL IN條件與WHERE子句一起使用,從表中獲取滿足指定IN條件的資料。
2.5. PostgreSQL NOT IN條件 - PostgreSQL NOT IN條件與WHERE子句一起使用,從指定條件否定IN條件獲取資料。
2.6. PostgreSQL NOT IN條件 - PostgreSQL NOT IN條件與WHERE子句一起使用,從指定條件否定IN條件的表中獲取資料。
2.7. PostgreSQL BETWEEN條件 - PostgreSQL BETWEEN條件與WHERE子句一起使用,從兩個指定條件之間獲取資料。

3. SQL連線

  1. PostgreSQL連線(內連線) - 連線型別有:內連線(INNER JOIN),左外連線(LEFT OUTER JOIN),右外連線(RIGHT OUTER JOIN),全連線(FULL OUTER JOIN),跨連線(CROSS JOIN)
  2. PostgreSQL左外連線 - 外連線是內聯的延伸,外連線有三種型別。
  3. PostgreSQL右外連線 - 外連線是內聯的延伸,外連線有三種型別。
  4. PostgreSQL全外連線 - 外連線是內聯的延伸,外連線有三種型別。
  5. PostgreSQL交叉連線(CROSS JOIN) - PostgreSQL跨連線(CROSS JOIN)將第一個表的每一行與第二個表的每一行相匹配。 它也被稱為笛卡爾積。

4. 高階部分

  1. PostgreSQL檢視 - 在PostgreSQL中,檢視(VIEW)是一個偽表。 它不是物理表,而是作為普通表選擇查詢。檢視也可以表示連線的表。 它可以包含表的所有行或來自一個或多個表的所選行。
  2. PostgreSQL函式(儲存過程) - PostgreSQL函式也稱為PostgreSQL儲存過程。PostgreSQL函式或儲存過程是儲存在資料庫伺服器上並可以使用SQL介面呼叫的一組SQL和過程語句(宣告,分配,迴圈,控制流程等)。
  3. PostgreSQL觸發器 - PostgreSQL觸發器是一組動作或資料庫回撥函式,它們在指定的表上執行指定的資料庫事件時自動執行。 觸發器用於驗證輸入資料,執行業務規則,保持審計跟蹤等。
  4. PostgreSQL別名 - PostgreSQL別名(Alias)用於為列或表提供臨時名稱。可以使用PostgreSQL別名為列或表建立一個臨時名稱。
  5. PostgreSQL索引 - 索引是用於加速從資料庫檢索資料的特殊查詢表。資料庫索引類似於書的索引(目錄)。 索引為出現在索引列中的每個值建立一個條目。
  6. PostgreSQL日期和時間函式 - 介紹常用的日期和時間函式函式功能。
  7. PostgreSQL UNIONS子句 - PostgreSQL UNION子句/運算子用於組合兩個或多個SELECT語句的結果,而不返回任何重複的行。
  8. PostgreSQL NULL值 - PostgreSQL NULL是用於表示缺少值的術語。NULL值是一個欄位中的值,顯示為空白。
  9. PostgreSQL修改表(ALTER TABLE語句)- PostgreSQL ALTER TABLE命令用於新增,刪除或修改現有表中的列。還可以使用ALTER TABLE命令在現有表上新增和刪除各種約束。
  10. PostgreSQL截斷表(TRUNCATE TABLE語句)- PostgreSQL TRUNCATE TABLE命令用於從現有表中刪除完整的資料。您也可以使用DROP TABLE命令刪除完整的表,但會從資料庫中刪除完整的表結構,如果希望儲存某些資料,則需要重新建立此表。
  11. PostgreSQL事務 - 事務是對資料庫執行的工作單元。事務是以邏輯順序完成的工作的單位或順序,無論是使用者手動的方式還是通過某種資料庫程式自動執行。
  12. PostgreSQL鎖 - 鎖或獨占鎖或寫鎖阻止使用者修改行或整個表。 在UPDATE和DELETE修改的行在事務的持續時間內被自動獨占鎖定。 這將阻止其他使用者更改行,直到事務被提交或回退。
  13. PostgreSQL子查詢 - 子查詢或內部查詢或巢狀查詢是一個PostgreSQL查詢中的查詢,它可以嵌入到WHERE子句中。子查詢用於返回將在主查詢中使用的資料作為進一步限制要檢索的資料的條件。
  14. PostgreSQL子查詢 - 子查詢或內部查詢或巢狀查詢是一個PostgreSQL查詢中的查詢,它可以嵌入到WHERE子句中。
  15. PostgreSQL自動遞增 - PostgreSQL具有資料型別smallserial,serial和bigserial; 這些不是真正的型別,而只是在建立唯一識別符號列的標誌以方便使用。
  16. PostgreSQL許可權 - 在資料庫中建立物件時,都會為其分配所有者。 所有者通常是執行建立語句的使用者。 對於大多數型別的物件,初始狀態是只有所有者(或超級使用者)可以修改或刪除物件。 要允許其他角色或使用者使用它,必須授予許可權或許可權。

5. PostgreSQL程式連線介面

  1. C/C++連線PostgreSQL資料庫 - 學習如何使用libpqxx庫連線PostgreSQL資料庫,它是PostgreSQL的官方C++用戶端API。
  2. Java連線PostgreSQL資料庫 - 學習如何設定PostgreSQL JDBC驅動,並使用Java連線到PostgreSQL資料庫執行相關資料庫操作。
  3. PHP連線PostgreSQL資料庫 - 學習如何設定PHP-PostgreSQL,並使用PHP連線到PostgreSQL資料庫執行相關資料庫操作。
  4. Perl連線PostgreSQL資料庫 - PostgreSQL可以使用Perl DBI模組與Perl整合,Perl DBI模組是Perl程式設計語言的資料庫存取模組。 它定義了一組提供標準資料庫介面的方法,變數和約定。
  5. Python連線PostgreSQL資料庫 - PostgreSQL可以使用psycopg2模組與Python整合。sycopg2是用於Python程式設計語言的PostgreSQL資料庫介面卡。 psycopg2是非常小,快速,穩定的。