㈠ Oracle的數據類型中有沒有布爾型
oracle中的boolean數據類型僅限於PL/sql,oracle本身沒有默認的提供布爾型的存儲方式
在設計資料庫表結構時,選擇一種高效的策略來存儲一個可以在很多編程環境中使用的邏輯布爾值是非常重要的。(雖然 Oracle 沒有 Boolean 數據類型來表示資料庫欄位,但是在 PL/SQL 中卻具有 Boolean 數據類型。)
任何布爾定義的欄位還應該被正確進行約束檢查,以確保在插入/更新時輸入了有效的值。
create table tbool (bool char check (bool in ('N','Y'));
insert into tbool values ('N');
insert into tbool values ('Y');
最常見的設計是模擬很多 Oracle 的數據字典視圖中使用的類似布爾的標志,選擇『Y』表示真,『N』表示假。然而,要正確地與宿主環境交互,比如與 JDBC、OCCI 和其它編程環境交互,最好選擇0表示假,選擇1表示真,從而使getBoolean 和setBoolean 能夠正確地處理它們。
We could define a Boolean as NUMBER(1); however, in Oracle's internal number format, 0 takes 1 byte and 1 takes 2 bytes after the length byte (so it's more efficient to store it as CHAR). Even though the character is defined as CHAR, SQL can convert and verify against actual numbers.
我們可以將一個布樂類型定義為 NUMBER(1);然而,在 Oracle 的內部數字格式中,0在長度位元組之後佔用一個位元組,而1在長度位元組之後佔用兩個位元組(所以更加高效地方式是將其存儲為 CHAR)。即使字元被定義為 CHAR,SQL 也可以轉換和驗證實際的數字。
create table tbool (bool char check (bool in (0,1));
insert into tbool values(0);
insert into tbool values(1);
㈡ 什麼是布爾型數據
布爾數據是sql server中的一個名詞,布爾數據由binary(二進制)數字組成,即0和1。
在計算機科學中,布爾數據類型又稱為邏輯數據類型,是一種只有兩種取值的原始類型:非零(通常是1或者-1)和零(分別等價於真和假)。
(2)資料庫中boolean擴展閱讀:
在一些語言中,布爾數據類型被定義為可代表多於兩個真值。例如,ISO SQL:1999標準定義了一個SQL布爾型可以儲存三個可能的值:真,假,未知(SQL null被當作未知真值來處理,但僅僅在布爾型中使用)。
這種數據類型在布爾和其他運算中使用,如與(AND, &, *),或(OR, |, +),異或 (xor, NEQV, ^), 等價(EQV, =, ==)以及非(NOT, ~, !),這些與邏輯代數和算術操作相一致。