Oracle Database 23c AIのBooleanデータ型ラボのこのエキサイティングなリリースは、データベース開発者にとって画期的なブールデータ型のネイティブサポートを導入します。この強化により、ネイティブに 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%';
ブール値の更新
学生を登録済みとしてマークする
ボブの登録状況を更新したいとします:
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