Navicat 部落格

在 MySQL 和 PostgreSQL 中儲存三元資料 2021 年 12 月 8 日,由 Robert Gravelle 撰寫

在軟體開發中,有一種用於處理二進位狀態的布林(Boolean)資料類型。因此,它只有兩種可能的狀態:true 和 false。但是,在開發中存在必須經常考慮的第三種狀態,即「以上都不是」或「其他」。在關聯式資料庫中,NULL 似乎是這種狀態的一個很好的選擇,但由於其歷史背景而並非如此。回想一下以前的文章,NULL 在結構化查詢語言(SQL)中具有非常特殊的含義,表示資料庫中不存在數據值。NULL 值實際上是由關聯式資料庫模型的創造者 E. F. Codd 本人引入的。在 SQL 中,NULL 表示「缺少和/或不適用的資訊」。從這個角度來看,NULL 很難代表「以上都不是」或「其他」條件。那麼,在關式資料庫中表示三元或三態資料的最佳方式是什麼?我們今天將在這裡為 MySQL 和 PostgreSQL 回答這個問題。下週我們將涵蓋 SQL Server 和 Oracle。

在生產環境中測試 SQL 的危險 2021 年 12 月 1 日,由 Robert Gravelle 撰寫

i-dont-always-test-my-code-but-when-i-do-its-already-in-production

有多少次你發現某個查詢對經過清理的資料進行測試時能發揮充分的效能,但只在生產環境中卻只看到它停止一次?由於工作負載和資料量等環境之間的差異,這種情況一直在發生。因為這個原因,你可能會在生產環境中嘗試你的查詢。畢竟,調整生產查詢的最快方法是在生產伺服器上,不是嗎?雖然這是正確,但仍有許多危險等待著那些愚蠢到沒有採取保障措施和協議的人。在本文中,我們將探討在生產環境中測試查詢的一些相關風險。

SQL Server 中的 Unicode 和非 Unicode 字串資料類型 2021 年 11 月 19 日,由 Robert Gravelle 撰寫

SQL Server 提供了多種資料類型,支援你想儲存的所有類型的資料。你可能已經猜到,資料類型是一個屬性,用於指定欄可以儲存資料的類型。它可以是整數、字元字串、貨幣、日期和時間等。在資料庫設計人員和開發人員之間引起混淆的一種資料類型是用於儲存字元字串的資料類型。字元字串是作為一組操作的一系列字元。在關聯式資料庫的內容中,字元字串資料類型是那些讓你儲存固定長度(char)或可變長度資料(varchar)的資料類型。此外,SQL Server 將其字串類型分為兩大類:Unicode 和非 Unicode。Unicode 類型有 nchar、nvarchar 和 ntext,而非 Unicode 類型有 char、varchar/varchar (max) 和 text。在今天的文章中,我們將比較這兩個類別,以決定何時使用它們。

SQL 陳述式中 WHERE 1=1 的用途 2021 年 11 月 8 日,由 Robert Gravelle 撰寫

你是否曾在 SELECT 查詢中看到過 WHERE 1=1 條件。我在許多不同的查詢和許多 SQL 引擎中都有看過。這條件顯然意味著 WHERE TRUE,所以它只是傳回與沒有 WHERE 子句時相同的查詢結果。此外,由於查詢最佳化工具幾乎肯定會刪除它,因此對查詢執行時間沒有影響。那麼,WHERE 1=1 的用途是什麼?這就是我們今天要在這裡回答的問題!

Null 值和 SQL Count() 函式 2021 年 10 月 25 日,由 Robert Gravelle 撰寫

早在 2020 年 3 月,關聯式資料庫系統中的 NULL 值及其用途一文就介紹了 NULL 值及其在關聯式資料庫中的特殊意義。那篇文章還描述了如何在資料庫資料表中允許 NULL 值,以及如何在査詢中引用它們。在今天的文章中,我們將學習如何將 NULL 與 SQL Count() 函式結合起來,以實現各種目標。

Navicat 文章
頻道記錄
分享
部落格封存檔