今天,當我向經理提出公關(是關於商店流程)時,我的經理問了我幾個問題。
例如,為什麼將 string 的資料類型宣告為 varchar(n) 而不是 nvarchar(n) 等基於場景的問題?
您可能也遇到過與學長或大學老師類似的情況。
雖然我給了他答案,但這場辯論對我的基礎知識提出了疑問。
我決定從頭開始修改。
在修改的過程中,我注意到了幾點,想跟大家分享,所以我寫了這篇文章。
當我們建立資料庫時,會在背景產生 2 個檔案。
儘管如此,我們可以設定應產生多少個檔案。如果我們配置超過 2 個文件,則有第三個類別:
每當我們執行任何資料庫事務時,它都會先儲存在日誌檔案中,一旦交易完成,它就會更新到主資料檔案中。
每個檔案的預設大小最小為 8 MB,最大沒有限制。而資料庫方面,根據微軟的說法,一個資料庫最大可達524PB。
如果您使用過「選擇」查詢,您可能也聽說過「列印」查詢。
讓我們了解何時使用哪一個。
基本上,「選擇」查詢以網格格式傳回表數據,而「列印」查詢以文字形式傳回資料。
因此,每當我們需要對錶資料執行操作時,我們都會使用「select」查詢,並且大多數情況下要列印日誌或錯誤,我們會使用「print」查詢。
現在,讓我們來討論一下最喜歡的面試問題。
角色:
字符儲存最多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中文網其他相關文章!