iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
自我挑戰組

30天開啟.NET後端工程師的旅程系列 第 16

Day16 簡述 資料庫與資料存取

  • 分享至 

  • xImage
  •  

前言

.NET工程師 是需要對資料處理有一定程度的概念,但這裡主要是以C# 為主,下面使用的是SQL Server來去簡述關於資料庫的基本概念,後面使用Entity Framework的時候才比較能理解一些。
那就先來了解基礎資料庫是如何使用的吧(這裡使用的是SQL Server喔!)


資料庫基本概念

資料庫是現代軟體應用程式不可或缺的一部分,主要用於儲存、管理和檢索數據。
資料庫可以分為關聯性資料庫和非關聯性資料庫(NoSQL資料庫)兩大類。

關聯性資料庫

關聯性資料庫是結構化的資料儲存系統,它們使用表格(表格)來組織和存儲數據。以下是一些關聯性資料庫的基本概念:

表格 Table

  • 表格是資料庫中的基本結構,跟Excel的表單相似,是由行和列組成,每列代表一個屬性(欄位),每行代表一個記錄(資料)。

主鍵 Primary Key

  • 主鍵是表格中的一個或多個欄位,它們用來唯一識別表格中的每個記錄,並且可以透過唯一個key把Table連接起來。主鍵確保了數據的唯一性。

NoSQL資料庫

NoSQL是Not Only SQL的縮寫,是一種非關聯式資料庫,主要是非結構化或半結構化的資料儲存系統,它們以不同的方式組織和存儲數據,像是把資料儲存為類似 JSON 的文件,並對資料進行查詢。NoSQL 資料庫的優點是它們能夠處理大量的結構化或半結構化數據,更容易擴展,並且能夠提供高可用性。以下是一些NoSQL資料庫的特點:

非結構化數據

  • NoSQL資料庫可以存儲不同類型的數據,例如文本、JSON、XML和二進位數據。

靈活性

  • NoSQL資料庫具有更高的靈活性,可以根據應用程式的需求動態更改數據模型。

SQL語言基本操作

我使用的是SSMS(如下圖所示)。
https://ithelp.ithome.com.tw/upload/images/20230928/20151470J5RiqO7Vpf.png
下面開始解SQL語言的基本操作,這些操作的指令碼主要用於與關聯性資料庫進行互動:

CREATE - 創建表格

在SQL中,您可以使用CREATE TABLE語句來創建新的表格。每個表格都有一個名稱,以及一組欄位定義,每個欄位都具有數據類型。

CREATE TABLE Customers (
    CustomerID INT PRIMARY KEY IDENTITY(1,1),
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    Email VARCHAR(100)
);

上述SQL語句創建了一個名為Customers的表格,其中包含CustomerID、FirstName、LastName和Email欄位,點擊上面的執行,下面的指令碼就會運作摟。
https://ithelp.ithome.com.tw/upload/images/20230928/201514704qzRz9SPbb.png

SELECT - 檢索數據

使用SELECT語句可以從表格中檢索數據。您可以指定要檢索的欄位,以及一個或多個過濾條件,以限制所檢索的數據。

SELECT FirstName, LastName
FROM Customers
WHERE CustomerID = 1;

上述SQL語句將檢索Customers表格中CustomerID為1的客戶的FirstName和LastName,可以看到下面的結果,因為還沒新增資料進去,所以只有顯示欄位名稱而已。
這裡要注意,把想要執行的指令碼反白在按執行就只會執行我們希望它執行的這段指令碼而已。
如果沒有反白,在上面的所有程式碼就都會被執行喔,也就是上面的Customers表格會再被創建一次,但這裡就會因為已經有這個表格而出現錯誤。
https://ithelp.ithome.com.tw/upload/images/20230928/201514703Sb3NH5OZ5.png

INSERT - 插入數據

使用INSERT INTO語句可以將新數據插入表格中。您需要指定目標表格以及要插入的數據值。

INSERT INTO Customers (FirstName, LastName, Email)
VALUES ('John', 'Doe', 'john.doe@email.com');

上述SQL語句把一個新客戶的信息插入到Customers表格中,可以看到新增成功下面訊息會顯示一個資料列受到影響。
https://ithelp.ithome.com.tw/upload/images/20230928/20151470UFMDp2K2r9.png
這時候如果再查詢一次,可以看到下圖,我們新增的一筆資料被查出來瞜。
https://ithelp.ithome.com.tw/upload/images/20230928/20151470HhR9l8z50O.png

DELETE - 刪除數據

使用DELETE FROM語句可以從表格中刪除數據。您可以指定刪除的條件,以確定要刪除的記錄。

DELETE FROM Customers
WHERE CustomerID = 1;

上述SQL語句將從Customers表格中刪除CustomerID為1的客戶記錄。
https://ithelp.ithome.com.tw/upload/images/20230928/20151470IzhR3jkdCn.png


SQL Server和NoSQL之間的差異

SQL 資料庫為關聯式,而NoSQL 資料庫為非關聯式資料庫

我們所使用的SQL Server是一個關聯性資料庫管理系統(RDBMS),而NoSQL代表了多種不同類型的非關聯性資料庫系統。這兩者之間存在一些重要差異:

資料模型

  • SQL Server使用表格結構來組織數據,具有嚴格的結構和模式。
    NoSQL資料庫更靈活,可以存儲不同結構的數據。

查詢語言

  • SQL Server使用SQL語言來執行查詢,具有強大的查詢能力。
    NoSQL資料庫使用不同的查詢語言或API,具體取決於其類型。

擴展性

  • NoSQL資料庫通常更容易擴展,尤其是在大規模數據應用程式中。SQL Server需要較多的設定和管理。

一致性和完整性

  • SQL Server強調數據的一致性和完整性。NoSQL資料庫根據其類型可能犧牲一致性以獲得更高的性能。

第16天挑戰完成,不知不覺就這樣挑戰過半了~繼續完成剩下的兩周挑戰!!!


上一篇
Day 15 命名空間
下一篇
Day17 使用.NET Core 建立簡單的CRUD (part 1)
系列文
30天開啟.NET後端工程師的旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言