Oracle Database 23c AI를 위한 Boolean 데이터 타입 실험실의 이 흥미로운 릴리스는 데이터베이스 개발자들에게 게임 체인저가 될 Boolean 데이터 타입에 대한 네이티브 지원을 도입합니다. 이 개선을 통해 진짜 true, false, 및 null 값을 네이티브하게 표현할 수 있습니다, 데이터 모델링을 단순화하고 SQL 및 PL/SQL 개발을 더 효율적으로 만듭니다.
예를 들어, 새 Boolean 데이터 타입을 사용하여 학생들이 현재 수업에 등록되어 있는지를 추적하는 학생 정보 시스템 시나리오를 재현해 보겠습니다.
이 기능은 개발자의 생산성을 향상시키고 Oracle Database를 더 직관적으로 작업할 수 있게 만듭니다.
Boolean 데이터 타입을 가진 테이블 생성하기
우리는 STUDENTS
라는 테이블을 생성하여 CURRENTLY_ENROLLED
라는 이름의 Boolean 열을 포함할 것입니다:
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
);
Boolean 값을 사용한 데이터 삽입하기
이제 다양한 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
과 같은 다양한 입력을 해당 Boolean 값으로 매핑합니다. 데이터를 확인해 보겠습니다:
SELECT student_id, name, course, currently_enrolled
FROM students;
Boolean 데이터 쿼리하기
현재 등록된 학생 찾기
현재 등록되어 있는 학생들을 조회하기 위해:
SELECT student_id, name, course
FROM students
WHERE currently_enrolled = TRUE;
Boolean 열에서의 논리 연산
부울 값은 직접적인 논리 연산을 허용합니다. 예를 들어, “적극적으로 등록된” 학생을 필터링하는 방법은 다음과 같습니다:
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