
- SQL 教程
- SQL - 首頁
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 資料庫
- SQL - 語法
- SQL - 資料型別
- SQL - 運算子
- SQL - 表示式
- SQL 資料庫
- SQL - 建立資料庫
- SQL - 刪除資料庫
- SQL - 選擇資料庫
- SQL - 重新命名資料庫
- SQL - 顯示資料庫
- SQL - 備份資料庫
- SQL 表
- SQL - 建立表
- SQL - 顯示錶
- SQL - 重命名錶
- SQL - 截斷表
- SQL - 克隆表
- SQL - 臨時表
- SQL - 修改表
- SQL - 刪除表
- SQL - 刪除表資料
- SQL - 約束
- SQL 查詢
- SQL - 插入查詢
- SQL - 選擇查詢
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - 更新查詢
- SQL - 刪除查詢
- SQL - 排序結果
- SQL 檢視
- SQL - 建立檢視
- SQL - 更新檢視
- SQL - 刪除檢視
- SQL - 重新命名檢視
- SQL 運算子和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布林 (BIT) 運算子
- SQL - LIKE 運算子
- SQL - IN 運算子
- SQL - ANY, ALL 運算子
- SQL - EXISTS 運算子
- SQL - CASE
- SQL - NOT 運算子
- SQL - 不等於
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 運算子
- SQL - UNION 運算子
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - 刪除連線
- SQL - 更新連線
- SQL - 左連線 vs 右連線
- SQL - UNION vs JOIN
- SQL 金鑰
- SQL - 唯一鍵
- SQL - 主鍵
- SQL - 外部索引鍵
- SQL - 組合鍵
- SQL - 備選鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - 唯一索引
- SQL - 聚集索引
- SQL - 非聚集索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - MIN & MAX
- SQL - NULL 函式
- SQL - CHECK 約束
- SQL - DEFAULT 約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 資料庫調優
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - 布林值
布林值是一種通用資料型別,用於儲存真或假值。在定義表中列的變數時使用。
例如,客戶想要所有紅色汽車的列表。因此,我們可以使用下表中所示的布林運算子找到它:

這裡,IS_RED 是布林列,根據汽車的顏色返回 TRUE 或 FALSE 值。
PostgreSQL 和 PL/SQL 等資料庫提供布林資料型別,縮寫為 BOOL。而 MySQL 和 Oracle SQL 等資料庫沒有布林資料型別。為了表示布林值,它們分別提供 TINYINT 和 BIT 資料型別。
MySQL 中的布林值
MySQL 提供了多種處理布林資料的方法。您可以使用 BOOL、BOOLEAN 或 TINYINT 來表示布林值。
當您使用 BOOL 或 BOOLEAN 時,MySQL 會將其內部轉換為 TINYINT。與許多程式語言(如 PHP、C 和 C++)類似,MySQL 將 TRUE 字面量表示為 1,將 FALSE 字面量表示為 0。
示例
在這裡,我們正在建立一個帶有布林列的表“CARS”。建立表的查詢如下:
CREATE TABLE CARS ( ID INT NOT NULL, Name VARCHAR(150), IsRed BOOLEAN );
在上例中,建立了一個帶布林列IsRed的表。您可以將 TRUE 作為 1 或 FALSE 作為 0 插入此列以表示相應的布林值。
MS SQL Server 中的布林值
在 MS SQL Server 中,沒有直接的布林資料型別。相反,您可以使用 BIT 資料型別來表示布林值,其中 0 表示 FALSE,1 表示 TRUE。BIT 資料型別還可以接受 NULL 值。
示例
以下是使用 SQL Server 建立帶有布林列的表的示例:
CREATE TABLE CUSTOMERS ( ID INT NOT NULL, Name VARCHAR(150), IsAvailable BIT );
在上例中,建立了一個名為 CUSTOMERS 的表,其中包含一個布林列IsAvailable,表示為 BIT 資料型別。您可以在此列中插入 0 表示 FALSE,1 表示 TRUE,或 NULL 表示未知值。
現在您已經瞭解了布林資料型別在 SQL Server 和 MySQL 中是如何實現的,讓我們來探討如何在 SQL 中處理布林資料,包括基於布林列的過濾和查詢。過濾布林資料
您可以根據 SQL 中的布林列過濾資料。例如,在 MySQL 中,要查詢所有紅色汽車,您可以使用布林列“IsRed”來過濾 TRUE 值,如下所示:
SELECT * FROM CARS WHERE IsRed = TRUE;
在 SQL Server 中,要查詢紅色的汽車,您可以過濾 TRUE 值 (IsRed = 1),如下所示:
SELECT * FROM CARS WHERE IsRed = 1;
否定布林條件
您還可以否定布林條件以查詢不是 TRUE 的記錄。例如,要查詢不是紅色的汽車,請在 MySQL 中使用以下查詢:
SELECT * FROM CARS WHERE IsRed = 0;
以下是 SQL Server 中的查詢:
SELECT * FROM CARS WHERE IsRed = FALSE;
處理 NULL 值
您也可以在 SQL 中處理布林資料的 NULL 值。如前所述,SQL Server 中的 BIT 資料型別以及 MySQL 中的 BOOL/BOOLEAN 資料型別可以接受 NULL 值,這可以表示未知或未指定的條件。
要過濾布林列中具有 NULL 值的記錄,您可以在 MySQL 和 SQL Server 中使用IS NULL 或IS NOT NULL 條件:
-- Finding cars with unspecified availability SELECT * FROM CARS WHERE IsAvailable IS NULL; -- Finding cars with specified availability SELECT * FROM CARS WHERE IsAvailable IS NOT NULL;
在上例查詢中,我們根據 IsAvailable 列是否為 NULL 或非 NULL 來過濾汽車。
更新布林值
您也可以更新 SQL 表中的布林值。要更改 MySQL 中布林列的值,您可以使用 UPDATE 語句,如下所示:
-- Changing IsRed to TRUE for car with ID 123 UPDATE CARS SET IsRed = TRUE WHERE ID = 123;
在上例中,我們更新了 ID 為 123 的特定汽車的 IsRed 列,將其設定為 TRUE。
要更新 SQL Server 中的布林值,請使用以下查詢:
-- Changing IsRed to TRUE for car with ID 123 UPDATE CARS SET IsRed = 1 WHERE ID = 123;