这个激动人心的 Oracle Database 23c AI 的布尔数据类型实验室发布引入了对布尔数据类型的本地支持,这对数据库开发人员来说是一个改变游戏规则的功能。通过这一增强功能,您可以本地表示true、false 和null 值,简化数据建模,使 SQL 和 PL/SQL 开发更高效。
为了说明,让我们重新创建一个涉及学生信息系统的场景,在这个场景中,我们将使用新的布尔数据类型来跟踪学生当前是否在课程中注册。
这一功能提升了开发人员的生产力,使Oracle Database 更加直观易用。
创建带有布尔数据类型的表
我们将首先创建一个名为CURRENTLY_ENROLLED
的布尔列的STUDENTS
表:
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%';
更新布尔值
将学生标记为已注册
假设我们想更新鲍勃的注册状态:
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