Modelado físico relacional de bases de datos
Comandos adicionales en DQL:
Cláusula OR
La cláusula OR permite combinar múltiples condiciones, y devuelve verdadero si al menos una de las condiciones es verdadera.
Sintaxis:
1SELECT columnas 2FROM tabla 3WHERE condición1 OR condición2;
Ejemplo:
Supongamos que tenemos una tabla estudiantes con las columnas nombre, edad y clase. Queremos obtener los estudiantes que sean de la clase "Matemáticas" o tengan más de 20 años.
1SELECT nombre, edad, clase 2FROM estudiantes 3WHERE clase = 'Matemáticas' OR edad > 20;
Explicación: Este comando devolverá todos los estudiantes que estén en la clase "Matemáticas" o que tengan una edad mayor a 20 años.
Cláusula AND
La cláusula AND permite combinar múltiples condiciones, y devuelve verdadero solo si todas las condiciones son verdaderas.
Sintaxis:
1SELECT columnas 2FROM tabla 3WHERE condición1 AND condición2;
Ejemplo:
Si quieres obtener los estudiantes que estén en la clase "Matemáticas" y tengan más de 20 años, usarías AND.
1SELECT nombre, edad, clase 2FROM estudiantes 3WHERE clase = 'Matemáticas' AND edad > 20;
Explicación: Este comando devolverá solo los estudiantes que estén en la clase "Matemáticas" y que tengan más de 20 años. Ambos criterios deben cumplirse para que el registro sea devuelto.
Cláusula NOT
La cláusula NOT se usa para negar una condición. Devuelve verdadero si la condición dentro de NOT es falsa, y viceversa.
Sintaxis:
1SELECT columnas 2FROM tabla 3WHERE NOT condición;
Ejemplo:
Si deseas obtener los estudiantes que no estén en la clase "Matemáticas", usarías NOT.
1SELECT nombre, edad, clase 2FROM estudiantes 3WHERE NOT clase = 'Matemáticas';
Explicación: Este comando devolverá todos los estudiantes que no estén en la clase "Matemáticas".
Combinación de OR, AND y NOT
Puedes combinar estas cláusulas en una sola consulta para crear condiciones más complejas. Al combinar estas cláusulas, es importante usar paréntesis para asegurarte de que las condiciones se evalúan en el orden correcto.
Ejemplo combinado: Queremos obtener los estudiantes que estén en la clase "Matemáticas" y tengan más de 20 años o que no estén en la clase "Matemáticas".
1SELECT nombre, edad, clase 2FROM estudiantes 3WHERE (clase = 'Matemáticas' AND edad > 20) OR NOT clase = 'Matemáticas';
Explicación: Este comando seleccionará a todos los estudiantes que estén en la clase "Matemáticas" y tengan más de 20 años o que no estén en la clase "Matemáticas". Las condiciones dentro de los paréntesis se evalúan primero.
Ejemplo final: Imagina que quieres encontrar a los estudiantes que estén en la clase "Matemáticas" y tengan más de 20 años o que estén en la clase "Física" pero no tengan más de 18 años:
1SELECT nombre, edad, clase 2FROM estudiantes 3WHERE (clase = 'Matemáticas' AND edad > 20) OR (clase = 'Física' AND NOT edad > 18);
La cláusula EXISTS en SQL se utiliza para verificar si un subconsulta devuelve algún registro. Devuelve TRUE si la subconsulta contiene al menos un registro y FALSE si no contiene ninguno. Es comúnmente usada para comprobar la existencia de datos relacionados en una tabla.
Sintaxis básica:
1SELECT columnas 2FROM tabla 3WHERE EXISTS (subconsulta);
subconsulta: Es una consulta interna que devuelve un conjunto de resultados. La cláusulaEXISTSevalúa si este conjunto tiene uno o más registros.
Ejemplo:
Supongamos que tienes dos tablas, estudiantes y matriculas, y quieres obtener todos los estudiantes que tienen al menos una matrícula.
1SELECT nombre 2FROM estudiantes e 3WHERE EXISTS ( 4 SELECT 1 5 FROM matriculas m 6 WHERE m.estudiante_id = e.id 7);
En este ejemplo:
- La subconsulta
SELECT 1 FROM matriculas m WHERE m.estudiante_id = e.idbusca registros en la tablamatriculasdondeestudiante_idcoincide con eliddel estudiante. EXISTScomprueba si la subconsulta devuelve algún registro. Si encuentra al menos uno, el estudiante se incluye en los resultados.
Usos comunes:
- Validación de existencia: Verificar si hay registros relacionados en una tabla antes de realizar operaciones.
- Condiciones complejas: Combinar con otras cláusulas para consultas más específicas y optimizadas.
La cláusula EXISTS es particularmente útil cuando la mera presencia de registros es suficiente para tomar decisiones, sin importar su contenido exacto.
La condición IS NULL en SQL se utiliza para comprobar si un valor en una columna es NULL. En SQL, NULL representa un valor desconocido o no existente, por lo que no se puede comparar directamente con los operadores habituales como = o !=. En su lugar, se utiliza IS NULL para verificar la existencia de NULL en una columna.
Sintaxis básica:
1SELECT columnas 2FROM tabla 3WHERE columna IS NULL;
columna: Es la columna que quieres verificar si tiene valoresNULL.
Ejemplo:
Supongamos que tienes una tabla llamada estudiantes y deseas encontrar a los estudiantes que no tienen asignada ninguna clase.
1SELECT nombre 2FROM estudiantes 3WHERE clase IS NULL;
Este comando:
- Selecciona los nombres de los estudiantes cuya columna
clasetiene un valorNULL, es decir, no está asignada.
Uso de IS NOT NULL:
Si deseas encontrar registros donde una columna no sea NULL, puedes usar IS NOT NULL.
Ejemplo:
1SELECT nombre 2FROM estudiantes 3WHERE clase IS NOT NULL;
Este comando selecciona los nombres de los estudiantes que tienen una clase asignada.
Usos comunes:
- Verificar datos faltantes: Identificar registros donde ciertos campos no han sido completados.
- Filtrar resultados: Excluir o incluir registros con valores desconocidos en consultas.
La cláusula UNION en SQL se utiliza para combinar los resultados de dos o más consultas SELECT en un solo conjunto de resultados, eliminando los registros duplicados por defecto. Todas las consultas involucradas deben tener el mismo número de columnas, y los tipos de datos correspondientes en cada columna deben ser compatibles.
Sintaxis básica:
1SELECT columna1, columna2, ... 2FROM tabla1 3UNION 4SELECT columna1, columna2, ... 5FROM tabla2;
Ejemplo:
Supongamos que tienes dos tablas, estudiantes_matematicas y estudiantes_fisica, y quieres obtener una lista de todos los estudiantes únicos de ambas tablas.
1SELECT nombre, edad 2FROM estudiantes_matematicas 3UNION 4SELECT nombre, edad 5FROM estudiantes_fisica;
En este ejemplo:
UNIONcombina los resultados de las dos consultas.- Si un estudiante está en ambas tablas, aparecerá solo una vez en los resultados combinados.
Usos comunes:
- Combinar resultados de diferentes tablas: Especialmente cuando estás consultando tablas con datos similares o relacionados.
- Eliminar duplicados: Automáticamente elimina duplicados entre los conjuntos de resultados combinados.
Nota:
- Si quieres incluir los registros duplicados, puedes usar
UNION ALLen lugar deUNION.
Ejemplo de UNION ALL:
1SELECT nombre, edad 2FROM estudiantes_matematicas 3UNION ALL 4SELECT nombre, edad 5FROM estudiantes_fisica;
Este comando incluye todos los registros, sin eliminar duplicados.
Resumen de los comandos en DQL:
OR: Devuelve verdadero si al menos una de las condiciones es verdadera.AND: Devuelve verdadero solo si todas las condiciones son verdaderas.NOT: Niega una condición, devuelve verdadero si la condición es falsa.EXISTS: Verifica si existe un conjunto de registros que cumplan con una condición.IS NULL: Filtra registros con valoresNULL.UNION: Combina los resultados de dos o más consultas.
- Loading...