這個令人興奮的 Oracle Database 23c AI 布爾數據類型實驗室的發布引入了對布爾數據類型的本地支持,這對數據庫開發人員來說是一個遊戲規則的改變。通過這一增強,您可以 本地表示 true、false 和 null 值,簡化數據建模,並使 SQL 和 PL/SQL 開發更加高效。
舉例來說,讓我們重建一個涉及 學生信息系統 的場景,我們將使用新的布爾數據類型來跟踪學生是否當前註冊課程。
這一特性提升了開發人員的生產力,並使 Oracle Database 更加直觀易用。
創建一個包含布爾數據類型的表
我們將開始創建一個名為 STUDENTS
的表,該表包含一個名為 CURRENTLY_ENROLLED
的布爾列:
DROP TABLE IF EXISTS STUDENTS CASCADE CONSTRAINT;
-- Create STUDENTS table with a boolean column
CREATE TABLE STUDENTS (
STUDENT_ID NUMBER PRIMARY KEY,
NAME VARCHAR2(100),
COURSE VARCHAR2(100),
CURRENTLY_ENROLLED BOOLEAN
);
使用布爾值插入數據
現在讓我們使用不同的布爾文字填充表格樣本數據:
-- Insert sample data using boolean values and accepted boolean literals
INSERT INTO STUDENTS VALUES (1, 'Alice', 'Mathematics', TRUE),
(2, 'Bob', 'Physics', FALSE),
(3, 'Charlie', 'Chemistry', 'yes'),
(4, 'Diana', 'Biology', 'no'),
(5, 'Eve', 'Computer Science', 'on'),
(6, 'Frank', 'Statistics', 'off'),
(7, 'Grace', 'History', 1),
(8, 'Hank', 'Philosophy', 0),
(9, 'Ivy', 'Engineering', NULL);
Oracle 將各種輸入,如 'yes'
、'no'
、1
和 0
映射到其相應的布爾值。讓我們驗證數據:
SELECT student_id, name, course, currently_enrolled
FROM students;
查詢布爾數據
查找當前註冊的學生
要檢索當前註冊的學生:
SELECT student_id, name, course
FROM students
WHERE currently_enrolled = TRUE;
對布爾列進行邏輯操作
布林值允許直接的邏輯運算。例如,過濾被視為「積極註冊」的學生:
SELECT student_id, name, course
FROM students
WHERE currently_enrolled AND TRUE;
尋找未註冊的學生
要識別目前未註冊的學生:
SELECT student_id, name, course
FROM students
WHERE NOT currently_enrolled;
將布林邏輯與其他條件結合
讓我們檢索已註冊或名字以 ‘A’ 開頭的學生:
SELECT student_id, name, course
FROM students
WHERE currently_enrolled OR name LIKE 'A%';
更新布林值
將學生標記為已註冊
假設我們想更新 Bob 的註冊狀態:
UPDATE students
SET currently_enrolled = TRUE
WHERE student_id = 2;
-- Verify the update
SELECT name, currently_enrolled
FROM students
WHERE student_id = 2;
使用 PL/SQL 和布林數據類型
PL/SQL 與新的布林數據類型無縫整合。讓我們新增一位學生:
DECLARE
l_student_id NUMBER := 10;
l_name VARCHAR2(100) := 'John';
l_course VARCHAR2(100) := 'Data Science';
l_enrolled BOOLEAN := TRUE;
BEGIN
INSERT INTO students (student_id, name, course, currently_enrolled)
VALUES (l_student_id, l_name, l_course, l_enrolled);
COMMIT;
END;
讓我們驗證新插入的數據。
結論
在 Oracle Database 23c AI 中引入布林數據類型簡化了數據庫設計,並提高了 SQL 和 PL/SQL 代碼的可讀性和可維護性。減少對數字或字符代碼等變通方法的依賴,使開發人員能夠編寫更清晰和更直觀的查詢。
無論是管理 學生資訊系統 還是任何其他應用程序,布林數據類型使處理邏輯值變得簡單而強大。今天就來獲取實踐經驗,看看這一功能如何提升您的數據庫項目。
Source:
https://dzone.com/articles/exploring-the-new-boolean-data-type-in-oracle-23c-ai