2023 年面向初學者的完整 SQL 教程

已發表: 2023-03-22

SQL(結構化查詢語言)已經存在了幾十年,是一種用於管理和操作數據的強大語言。 如果您想學習 SQL 但不知道從哪裡開始,那麼您來對地方了! 這本 SQL 終極指南是2022 年初學者的完美SQL分步教程。您將學習SQL 基礎知識、如何編寫查詢以及更高級的主題,例如管理數據庫、創建表和通過此SQL使用視圖服務器教程。 在本指南的幫助下,您將能夠自信地使用 SQL 為您的項目存儲和檢索數據。 那麼,讓我們開始吧!

目錄

SQL 和 NoSQL 有什麼區別?

SQL(結構化查詢語言)是一種用於存儲和管理數據的服務器語言。 它通常與關係數據庫結合使用,關係數據庫將數據存儲在具有列和行的表中。

SQL 是一種結構化的數據庫管理語言 (DBML),這意味著它遵循一套格式和規則。 有幾種不同類型的 DBML,包括 SQL、NoSQL 和 NewSQL。 NoSQL 是一種不包含 SQL 的 DBML。 它是一種更開放的語言,這意味著它可以應用於各種數據模型,這與 SQL 不同,SQL 更加結構化並且最適合關係數據模型。 另一方面,NewSQL 是更現代的 SQL 版本,其中包含一些更新,例如新數據類型。

查看 upGrad 的軟件開發課程。

為您的項目設置數據庫

任何SQL 教程的第一步都是學習為您的項目設置數據庫。 如果您使用的是 Firebase 等雲數據庫服務,則無需設置自己的數據庫。 但是,如果您正在處理一個需要本地數據庫的項目,則需要做一些事情。

  • 首先,打開命令行並使用“cd”命令(例如,cd Desktop/myProject/)導航到項目目錄。
  • 使用以下 SQL 查詢創建數據庫:CREATE DATABASE 'myDatabaseName'。
  • 然後您可以關閉命令行並打開您首選的 SQL 編輯器,例如 Visual Studio Code 或 SQL Server Management Studio。

設置數據庫後,現在您可以了解SQL 基礎知識並嘗試不同的查詢和命令以實時查看它們的運行情況。

如何編寫 SQL 查詢

現在,讓我們談談如何編寫基本的 SQL 查詢。

每個 SQL 查詢都包含三個基本部分:SELECT子句、 FROM子句和WHERE子句。

SELECT 子句是您指定要檢索哪些數據的地方。 FROM 子句指定可以從中檢索數據的表。 WHERE 子句指定數據必須滿足哪些條件才能包含在結果中。

下面是一個簡單的SELECT查詢示例

從“客戶”中選擇 *;

此查詢將從“客戶”表中提取所有客戶。 這是另一個例子:

從“客戶”中選擇“名字”、“姓氏”,其中“客戶”。 '州' = '德克薩斯州';

此查詢將從“客戶”表中選擇 firstName 和 lastName 字段,並且僅包括居住在德克薩斯州的客戶。

您可以在這些基本查詢的基礎上構建並執行更複雜和相互關聯的命令,具體取決於您希望實現的目標。 然而,所有這些 SQL 查詢的基本結構也將與上述相同。 語法保持不變!

檢查我們的美國 - 數據科學計劃

數據科學和商業分析專業證書課程 數據科學理學碩士 數據科學理學碩士 數據科學高級證書課程
數據科學執行 PG 計劃 Python 編程訓練營 商業決策數據科學專業證書課程 數據科學高級課程

創建表、視圖和索引的基礎知識

現在我們已經簡要了解了一些SQL 基礎知識,尤其是執行查詢,讓我們將本SQL 教程提升到一個新的水平,並討論表、視圖和索引。 從表格開始。

在 SQL 中創建表很容易——您只需使用CREATE TABLE查詢並指定表名及其列。例如:

CREATE TABLE 'customers' ( 'id' INT PRIMARY KEY, 'firstName' VARCHAR(40) NOT NULL, 'lastName' VARCHAR(40) NOT NULL, 'state' VARCHAR(40) NOT NULL, 'emailAddress' VARCHAR(40)不為空)

以下是上述查詢的細分:

  • 使用查詢,我們正在創建一個名為“customers”的表。
  • 該表具有以下屬性(或列):

1. Id——數據類型為“int”。此屬性也是一個主鍵,這意味著在填充表時不能將此詳細信息留空,並且在從其他表引用此表時將使用此屬性。

2.firstName –數據類型為“varchar”,最大長度為 40 個字符。此屬性設置為 Not Null,這意味著此字段也不能留空。

3. 同樣,lastName、state 和 emailAddress是另外三個與 firstName 屬性具有相同屬性的屬性。

創建表後,您可以使用INSERT INTO查詢將數據插入其中,例如

INSERT INTO 'customers' ('id', 'firstName', 'lastName', 'state', 'emailAddress') VALUES (1, 'John', 'Doe', 'Texas', '[email protected] ');

您還可以使用DROP TABLE查詢刪除表,如下所示: DROP TABLE 'customers';

現在,讓我們談談看法。 視圖基本上是只存在於 SQL 內存中的表。 視圖很有用,因為它們可用於操作數據而無需實際修改原始數據。

假設您有一張名為“customers”的包含客戶信息的表,並且您想知道所有客戶的平均年齡。 為此,您可以創建一個名為“averageAge”的視圖,該視圖匯總所有客戶的年齡並將總數除以客戶數量。

同樣,您也可以創建索引。 索引可以被認為是一種以更快的方式從數據庫中檢索數據的工具。 用戶看不到索引,它們只是為了加快搜索/查詢速度。 您可以使用以下語法執行此操作:

CREATE INDEX index_name ON table_name (column1, column2, …);

SQL 中的高級主題:使用事務和存儲過程

事務允許您將多個 SQL 查詢組合在一起,以便它們僅作為一個整體成功或失敗。 如果您需要運行多個查詢,這將很有用,因為如果它們沒有組合在一起,它們可能會相互交互並導致問題。

您可以使用BEGIN TRANSACTION查詢開始一個事務,並使用COMMIT TRANSACTION查詢結束它。您還可以使用ROLLBACK TRANSACTION查詢來結束事務並放棄任何更改。

如果需要將多個查詢組合在一起,可以使用存儲過程。 就像在其他編程語言中使用函數一樣,存儲過程是一段可以在 SQL 中使用的代碼。 您可以使用CREATE PROCEDURE查詢創建存儲過程並使用DROP PROCEDURE查詢結束它。

如何優化 SQL 查詢以獲得更好的性能

現在您了解了SQL 基礎知識以及如何編寫查詢,讓我們來談談如何優化您的 SQL 查詢以獲得更好的性能。

  • 確保您的數據井井有條,並且您的表格不會太大。 大表會導致查詢運行緩慢,並導致數據庫出現潛在問題。
  • 確保正確創建索引。 如果您的數據是關係數據,那麼索引可以幫助加快查詢速度。
  • 由於數據庫引擎處理 SQL 查詢,因此請確保您的數據庫引擎經過優化且速度很快。 通過調整其設置(例如並發連接數、線程設置和 CPU)來優化您的數據庫引擎。

初學者的 SQL 資源

現在您已經讀完了本 SQL 指南,您已經走上了成為 SQL 專家的道路! 如果您想繼續學習,可以查看一些資源。 第一個名為“艱難地學習 SQL”。 該資源是一個完整的分步指南,可以教您有關 SQL 所需的一切知識。 它甚至包括每章末尾的練習,以幫助您練習所學知識。 另一個很好的資源是“W3Schools SQL 教程”。 該網站還有一個全面的SQL 教程,易於理解和遵循。

綜上所述

我們在本文中為您提供了對 SQL 的完整而簡短的概述。 目的是幫助您開始 SQL 之旅,以便您輕鬆處理項目。 畢竟,SQL(或一般的數據庫管理)是任何軟件開發工作的核心。 如果您渴望成為一名全棧開發人員,這一點尤其正確——因為那樣的話,您將被期望了解並樂於從事前端和後端工作,以及執行數據庫管理活動。

在 upGrad,我們了解全棧開發在當今時代的重要性,也相信全面的全棧開發人員需要在所有重要方面進行適當的培訓和實踐。 為此,我們啟動了為期 13 個月的軟件開發執行研究生課程——全棧開發 該課程將帶您穿越全棧開發的世界,並由行業專家和領導者陪同。

查看課程了解更多詳情,趕快報名吧!

SQL有什麼用?

SQL 是一種數據庫管理語言,用於管理和操作以結構化格式(即表格)存儲的數據。 這種通用的數據庫語言極大地有助於從數據庫中輸入和檢索有價值的數據。

有沒有SQL的替代品?

不同的工具構建在 SQL 之上,但 SQL 仍然是管理結構化數據的核心。 雖然在與關係數據庫交互方面沒有 SQL 的替代方案,但可以使用許多替代方案輕鬆地將 SQL 合併到您的應用程序中。 這些包括 HaskellDB、ScalaQL 等。

沒有計算機背景的人能看懂SQL嗎?

SQL 非常直觀且易於學習。 通過一些有紀律的練習,您可以輕鬆地開始使用 SQL 並繼續學習它,無論您的學術背景如何,只要您有動力並願意這樣做。