為什麼我重新審視 MS SQL Server 基礎知識:深入探討字串資料類型

WBOY
發布: 2024-08-30 06:40:35
原創
263 人瀏覽過

今天,當我向經理提出公關(是關於商店流程)時,我的經理問了我幾個問題。

例如,為什麼將 string 的資料類型宣告為 varchar(n) 而不是 nvarchar(n) 等基於場景的問題?

您可能也遇到過與學長或大學老師類似的情況。

雖然我給了他答案,但這場辯論對我的基礎知識提出了疑問。

我決定從頭開始修改。

在修改的過程中,我注意到了幾點,想跟大家分享,所以我寫了這篇文章。

Why I Revisited MS SQL Server Basics: A Deep Dive into String Data Types

讓我們從頭開始。

當我們建立資料庫時,會在背景產生 2 個檔案。

  1. 資料檔:此檔案具有 (.mdf) 副檔名,稱為主資料檔。
  2. 日誌檔案:此檔案具有 (.ldf) 副檔名,稱為交易日誌檔案。

儘管如此,我們可以設定應產生多少個檔案。如果我們配置超過 2 個文件,則有第三個類別:

  • 使用者定義檔:以及那些副檔名為(.ndf)的輔助資料檔

每當我們執行任何資料庫事務時,它都會先儲存在日誌檔案中,一旦交易完成,它就會更新到主資料檔案中。

每個檔案的預設大小最小為 8 MB,最大沒有限制。而資料庫方面,根據微軟的說法,一個資料庫最大可達524PB。

選擇與列印查詢

如果您使用過「選擇」查詢,您可能也聽說過「列印」查詢。

讓我們了解何時使用哪一個。

基本上,「選擇」查詢以網格格式傳回表數據,而「列印」查詢以文字形式傳回資料。

因此,每當我們需要對錶資料執行操作時,我們都會使用「select」查詢,並且大多數情況下要列印日誌或錯誤,我們會使用「print」查詢。

現在,讓我們來討論一下最喜歡的面試問題。

Why I Revisited MS SQL Server Basics: A Deep Dive into String Data Types

Char、Varchar、Nvarchar?

角色:

字符儲存最多8000個字符,每個字符空間容納 1 個位元組。

  • 如果我們不指定大小,則預設會為其指派 1 個位元組並僅儲存一個字元。

  • 如果我們提供的輸入多於定義的大小,它會自動截斷資料。

  • Char 遵循靜態內存分配,因此如果我們分配20 字節大小並存儲10 個字符,SQL 仍會分配所有20 字節存儲,剩餘10 字節將被視為浪費空間。

Varchar:

  • Varchar 可以儲存最大 2GB數據,每個字元空間容納 1 個位元組。儘管它在表中存儲最多8000 位元組數據,但超出的任何內容都會儲存在文字檔案中。

  • 所以您可能已經在多篇文章中註意到其限制為 8000 位元組。

  • 要聲明一個欄位來儲存 2GB 數據,我們可以使用 varchar(max)。

  • Varchar 遵循動態記憶體分配。因此,如果我們分配 20 字節大小並存儲 10 個字符,SQL 將僅分配 10 字節存儲,其餘 10 字節將被保存。

Nvarchar:

  • Nvarchar 與 varchar 具有相同的屬性,唯一的差異是它使用 2 個位元組來儲存一個字元。

  • 因為它遵循Unicode標準數據,所以支援多種語言。
    而char、varchar則遵循ASCCI標準數據。

還有一個名為Text的資料類型,但它已被棄用,因此您可以忽略它。

有一篇文章我在研究過程中發現非常有用。它包含有關所有資料類型的詳細資訊。

您可以瀏覽它以獲取更多資訊。

如果您認為我遺漏了某些內容或需要更新,請隨時發表評論。這將對我以及我們的社區有所幫助。

以上是為什麼我重新審視 MS SQL Server 基礎知識:深入探討字串資料類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!