Esta emocionante versión del Laboratorio de Tipo de Datos Booleano para Oracle Database 23c AI introduce soporte nativo para el tipo de datos booleano, un cambio radical para los desarrolladores de bases de datos. Con esta mejora, puedes representar nativamente verdadero, falso y nulo valores, simplificando la modelación de datos y haciendo que el desarrollo en SQL y PL/SQL sea más eficiente.
Para ilustrar, recreemos un escenario que involucra un Sistema de Información Estudiantil, donde rastrearemos si los estudiantes están actualmente inscritos en cursos utilizando el nuevo tipo de datos booleano.
Esta característica mejora la productividad del desarrollador y hace que Oracle Database sea más intuitivo para trabajar.
Creando una Tabla Con el Tipo de Datos Booleano
Comenzaremos creando una tabla STUDENTS
que incluya una columna booleano llamada 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
);
Insertando Datos Con Valores Booleanos
Ahora vamos a poblar la tabla con datos de muestra utilizando diferentes literales booleanos:
-- 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 asigna diversas entradas, como 'sí'
, 'no'
, 1
y 0
a sus correspondientes valores booleanos. Vamos a verificar los datos:
SELECT student_id, name, course, currently_enrolled
FROM students;
Consultando Datos Booleanos
Encontrando Estudiantes Actualmente Inscritos
Para recuperar estudiantes que están actualmente inscritos:
SELECT student_id, name, course
FROM students
WHERE currently_enrolled = TRUE;
Operaciones Lógicas en Columnas Booleanas
Los valores booleanos permiten operaciones lógicas directas. Por ejemplo, filtrando estudiantes considerados “matriculados activamente”:
SELECT student_id, name, course
FROM students
WHERE currently_enrolled AND TRUE;
Encontrando Estudiantes No Matriculados
Para identificar a los estudiantes que no están actualmente matriculados:
SELECT student_id, name, course
FROM students
WHERE NOT currently_enrolled;
Combinando Lógica Booleana Con Otras Condiciones
Recuperemos estudiantes que estén matriculados o cuyos nombres comiencen con ‘A’:
SELECT student_id, name, course
FROM students
WHERE currently_enrolled OR name LIKE 'A%';
Actualizando Valores Booleanos
Marcando a un Estudiante como Matriculado
Supongamos que queremos actualizar el estado de matrícula de Bob:
UPDATE students
SET currently_enrolled = TRUE
WHERE student_id = 2;
-- Verify the update
SELECT name, currently_enrolled
FROM students
WHERE student_id = 2;
Usando PL/SQL Con el Tipo de Dato Booleano
PL/SQL se integra perfectamente con el nuevo tipo de dato booleano. Agreguemos un nuevo estudiante:
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;
Validemos los datos recién insertados.
Conclusión
La introducción del tipo de dato booleano en Oracle Database 23c AI simplifica el diseño de bases de datos y mejora la legibilidad y mantenibilidad de tu código SQL y PL/SQL. Reducir la dependencia de soluciones alternativas como códigos numéricos o de caracteres permite a los desarrolladores escribir consultas más limpias e intuitivas.
Ya sea gestionando un Sistema de Información Estudiantil o cualquier otra aplicación, el tipo de dato booleano facilita el manejo de valores lógicos de manera directa y robusta. Obtén experiencia práctica hoy y descubre cómo esta característica puede elevar tus proyectos de base de datos.
Source:
https://dzone.com/articles/exploring-the-new-boolean-data-type-in-oracle-23c-ai