JavaRush /Java Blog /Random-TW /《SQL. 安東尼莫利納羅(Anthony Molinaro)的食譜集

《SQL. 安東尼莫利納羅(Anthony Molinaro)的食譜集

在 Random-TW 群組發布
大家好。有志向、想成為Java開發者的人們聚集在這裡。這是合乎邏輯的:JavaRush 就是為此而創建的。要成為一名成熟的開發人員,您需要了解一定的主題清單。我在本文中描述了 Java 開發人員所需知識的完整清單。《SQL.  安東尼莫利納羅 (Anthony Molinaro) 的食譜集 - 1因此:此列表中的必需主題之一是 SQL 語言知識並熟悉至少一種關係資料庫。好消息是,您只需要一本書就可以將 SQL 學習到足以滿足 Java 開發人員的水平!有很多適合初步深入了解 SQL 的書籍可供選擇,但今天我想重點關注“SQL. 安東尼莫利納羅(Anthony Molinaro)的《食譜集》。《SQL.  食譜集”安東尼·莫利納羅 - 2本書的獨特之處在於,除了基礎層級的 SQL 學習之外,您還將同時熟悉多個資料庫,並了解它們的查詢有何不同以及特定資料庫的功能是什麼。本書涵蓋了以下資料庫的查詢:
  • DB2;
  • 甲骨文資料庫;
  • PostgreSQL;
  • SQL伺服器;
  • MySQL。

這本書是為誰而寫的?

  • 初學者開發者

首先,本書對於 Java 等新手開發人員很有用。您必須在基本層面上處理各種關聯式資料庫,因此本書將幫助您獲得必要的 SQL 知識。

  • 經驗豐富的開發人員

您可能已經非常熟悉建立 SQL 查詢,但這本書仍然會給您帶來驚喜並補充您的知識。或者,例如,您轉移到一個包含您不熟悉的關係資料庫的專案。然後,在本書的幫助下,您將能夠將熟悉資料庫的查詢與新資料庫的查詢進行類比。

  • 初級 SQL 開發人員

您可能只是想成為資料庫開發人員。那麼這本書非常適合您!您將能夠學習針對各種資料庫進行討論的 SQL 基礎知識,並選擇「您的」資料庫,您將在將來更詳細地學習該資料庫。

這本書是關於什麼的

本書逐章涵蓋了基本的 SQL 主題以及各種 SQL 問題及其解決方案。因此,它可以作為參考:問題出現了,你正在尋找合適的方法來解決它,然後你正在創建適合當前情況的解決方案。這本書包含 150 多個食譜。是的,正是建立 SQL 查詢的秘訣:這就是這本書有這個名字的原因。《SQL.  食譜集”安東尼·莫利納羅 - 3讀完這本書後該怎麼辦?
  1. 不要害怕嘗試,因為只有透過嘗試和錯誤,你才能獲得如此寶貴的經驗,所以練習,練習,再練習!
  2. 測試一下。我的意思是,在閱讀本書時,最好嘗試並行給出的查詢範例,這樣,您就會牢牢記住這些範例。
  3. 重複是學習之母。因此,建議引入一個註釋,您可以在其中記下要點並定期重複,這樣以後編寫查詢不會給您帶來任何問題。
  4. 您需要了解新並不總是意味著更好。僅僅因為您沒有使用某些最新的 SQL 功能(例如視窗函數)並不意味著您的程式碼無效。畢竟,有許多例子表明傳統 SQL 解決方案並不比新解決方案更差,有時甚至更好。
  5. 不要害怕嘗試。讓你的工作充滿創意!畢竟,所有解決方案尚未發明:也許在您的情況下,創造性的方法將是最好的。
《SQL.  食譜集”安東尼·莫利納羅 - 4現在我們來簡單回顧一下這本書的內容:

1. 擷取記錄

本章研究第一個、最簡單的查詢。在範例中您將看到:
  • 如何使用WHERE子句將行選擇到公開結果集中;
  • 如何為結果欄位指派別名;
  • 如何使用子查詢透過別名存取列;
  • 如何限制結果行中傳回的數量;
  • 如何傳回隨機字串並檢測 NULL 值。
一般來說,這些範例非常簡單,但同時有些範例甚至會讓經驗豐富的開發人員感到驚訝。

2、查詢結果排序

本章討論對查詢結果進行排序。實際上,ORDER BY運算符就是用於此目的的。您將看到不同複雜性的範例,範圍從簡單地對單一列進行排序,到按子字串排序,再到使用各種條件進行排序。

3. 使用多個表

本書的這一部分介紹了組合多個表中的資料的方法。如果我說表連接是 SQL 的基本支柱之一,我不會說謊,並且要成功使用 SQL,您需要獲取這些知識並能夠使用它。在這裡,您將看到內連接和外連接、笛卡爾積、基本集合運算(減法、並集、交集)以及連接如何影響聚合函數的範例。

4.插入、更新、刪除

在本節中,您將學習用於插入、更新和刪除資料的 SQL 查詢。也討論了更有趣的範例 - 諸如將行從一個表插入另一個表或在更新期間使用相關子查詢等操作。您將了解 NULL 值的後果,以了解多表插入、MERGE 指令等。

5. 元資料請求

本章討論建立查詢來存取您正在使用的資料庫的元資料:了解索引、限制和模式表很有用。此處建議的簡單查詢可讓您取得有關架構本身的資訊。另外,本章也展示了「動態SQL」的範例,也就是由SQL產生的SQL。

6. 使用字串

本章介紹使用字串的技術。SQL 從來不以其字串解析功能而聞名,但是一點點創造力與各種資料庫提供的廣泛功能相結合就可以在這件事上取得相當大的成功。事實上,這一章才是有趣的開始。有些例子會讓你大吃一驚。例如:
  • 計算字串中字元的實例;
  • 將分隔清單和字串轉換為表格行;
  • 從表行建立分隔清單;
  • 分隔由字母數字字元組成的字串的數字和字元資料。

7. 處理數字

本書的這一部分將探討解決標準數字問題的方法。在這裡您可以找到常見範例並了解視窗函數如何輕鬆處理計算和聚合任務。你將學習:
  • 計算當前金額;
  • 求平均數、中位數和眾數;
  • 計算百分位數;
  • 執行聚合時處理NULL值。

8-9。日期算術

在這兩章中,您將學習如何使用日期,因為在解決日常問題時,能夠使用它們執行最簡單和最常見的操作非常重要。各種範例包括尋找兩個日期之間的工作日數、計算不同時間單位的兩個日期之間的差異、返回一年中的所有天、查找閏年、查找一個月的第一天和最後一天、創建日曆等。讀完這些章節後,任何與日期相關的任務都很難嚇到你(但你可以嚇到你)。

10. 使用資料範圍*

本章介紹搜尋日期範圍內已有值的方法。您將學習如何自動產生字串序列、插入缺失的數值範圍值、確定值範圍的開始和結束以及識別值序列。

11. 進階搜尋*

在這裡,您會發現對於資料庫的日常工作至關重要的功能,但有時會帶來困難。本章中的範例包括使用騎士移動搜尋值、將結果集拆分為頁面、跳過表格行、搜尋倒數值等。

12. 報告和資料倉儲管理**

通常我們可能需要特殊查詢來產生報表。本章將幫助我們做到這一點:在這裡您將看到將行轉換為列的範例,反之亦然(交叉引用報告),建立資料組,建立直方圖,計算簡單和完整的子和,聚合行的滑動窗口,並按給定時間間隔對行進行分組。

13. 分層查詢**

本章將告訴我們使用分層資料的可能性。無論資料模型如何,有一天都需要將其格式化為層次結構樹或父->子關係。因此,在本章中您將分析這方面的問題和解決方案。使用傳統 SQL 建立樹狀結構結果集很困難,因此本教學將向您展示如何使用一些極為有用的特殊函數。在範例中,您將詳細了解父->子關係,從根節點到葉節點遍歷層次結構,並累積層次結構。

14. 東西

最後,您將看到所有不適合前面任何章節的剩餘功能,但同時它們也同樣有趣和有用。本章與其他章節的不同之處還在於它僅提供針對特定 DBMS 的解決方案。這是本書中唯一一章每個食譜只討論一個資料庫。這樣做是為了展示特定 DBMS 的功能和特性(以便您可以更好地感受到它們之間的差異)。 本書優點:
  1. 很多例子。
  2. 非常適合“初級”潛水。
  3. 考慮了各種 DBMS 的範例。
  4. 有一個很好的翻譯。
缺點: 不考慮更複雜、具體、罕見的任務/問題。

類似書籍

  1. 「Learning SQL」 - Alan Bewley:也是初步深入了解 SQL 並考慮各種 DBMS 的書,但它特別強調 MySQL。這本書的缺點是對新資訊的「咀嚼」不夠。
  2. 「SQL:語言學習指南」 - Chris Faily:這本書也涵蓋了各種資料庫的基礎知識。非常適合初學者,但如果您已經熟悉 SQL 並且需要了解更多細節,您可能需要看看其他地方。
  3. 「Head First - Learning SQL」 - Lynn Bailey:一本入門門檻非常低的書,它將以易於理解和詳細的方式傳達許多基本要點(有時甚至過於簡單)。在範例中,本書考慮的不是多個資料庫(如上面的類似資料庫),而是一個資料庫 - MySQL。

底線

如果你立志成為Java開發人員,那麼你就無法不學習SQL。但幸運的是,我們不需要像資料庫開發人員那樣了解它,而且所需的知識量原則上只需一本關於 SQL 的書就可以涵蓋。今天複習的書是《SQL. 食譜集」或所提供的類似物之一可能非常適合您。好吧,到底要讀什麼(或不讀什麼)是你的選擇)) PS要獲得編寫 SQL 來解決各種問題的實踐,您可以使用此網站PSS這裡您可以熟悉有關資料庫的常見問題,最好是在閱讀本書之後。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION