☑️ Invitación a classroom
Representación simbólica de un atributo o variable cuantitiva o cualificada.
Como representa una entidad, hecho o momento (sólo uno) aisladamente es irrelevante, incomprensible y no contiene información.
Colección de datos informativos organizados en un mismo contexto para su uso y vinculación.
Lenguaje de modelado para la definición de esquemas.
- Esquema
- Representación Gráfica o Simbólica de cosas materiales o inmateriales.
- Modelo de archivos planos
- Difíciles de manejar
- Modelo jerárquico
- Tiene estructuras como entidades, atributos y relaciones
- Modelo de redes
- Grafos
- Modelo relacional
- Teoría de los conjuntos, álgebra relacional, relaciones, tuplas, lenguaje de alto nivel ...
- Primera Forma normal: La Forma de Los Grupos Repetitivos
- Segunda Forma normal: Forma de la Dependencia Funcional completa
- Tercera Forma normal: Un atributo no primo no depende transitivamente de una clave candidata. Consideremos los siguientes campos para una librería:
- ID_PEDIDO
- TITULO_LIBRO
- AUTOR_LIBRO
- EDITORIAL_LIBRO.
El campo, ID_PEDIDO depende directamente de TITULO_LIBRO, dado que cada pedido está asociado a un título de libro específico. Sin embargo, tanto AUTOR_LIBRO como EDITORIAL_LIBRO dependen indirectamente de ID_Pedido a través de su dependencia con TITULO_LIBRO, puesto que cada libro (identificado por su título) está vinculado a un único autor y a una única editorial. Esta cadena de dependencias muestra que AUTOR_LIBRO y EDITORIAL_LIBRO tienen una dependencia transitiva respecto a ID_PEDIDO a través de TITULO_LIBRO.
Se puede definir una entidad como cualquier objeto (real o abstracto) que existe en lo realidad y acerca del cual queremos almacenar información en la base de datos.
ℹ️ La estructura genérica que describe un conjunto de ejemplares aplicando la abstracción de lo clasificación se denomina tipo de entidad mientras que la entidad es cada uno de los ejemplares.
Una de las características que Edgar Frank Codd destaca en el modelo modelo conceptual es que éste:
ℹ️ Provee las bases para un lenguaje de consulta de alto nivel. Por tanto se debe brindar independencia de la estructura de los datos en la máquina.
En este nivel ya hablamos de SQL
-
☑️ DDL (Data Definition Language)
DDL es un conjunto de comandos SQL utilizados para crear, modificar y eliminar estructuras de bases de datos, pero no los datos propios.
-
☑️ DQL (Data Query Language)
Las declaraciones DQL se utilizan para realizar consultas sobre los datos dentro de los objetos del esquema.
-
☑️ DML(Data Manipulation Language)
DML Los comandos SQL que se ocupan de la manipulación de datos presentes en la base de datos pertenecen a DML o Data Manipulation Language y esto incluye la mayoría de las declaraciones SQL.
-
☑️ DCL (Data Control Language)
DCL incluye comandos como GRANT y REVOKE que se ocupan principalmente de los derechos, permisos y otros controles del sistema de base de datos.
-
☑️ TCL (Transaction Control Language)
Las transacciones (TCL) agrupan un conjunto de tareas en una sola unidad de ejecución. Cada transacción comienza con una tarea específica y termina cuando todas las tareas del grupo se completan con éxito.
Para obtener información de las tablas entre otras cosas ver los nombres de las "constraints" o restricciones
SHOW CREATE TABLE nombre_tabla;
Usar la palabra clave BINARY
en MySQL es útil para realizar búsquedas que distinguen entre mayúsculas y minúsculas. A continuación se presentan ejemplos detallados de cómo realizar búsquedas utilizando BINARY
en diferentes contextos.
Supongamos que tienes una tabla usuarios
con una columna nombre_usuario
y quieres seleccionar todos los registros donde nombre_usuario
sea exactamente 'Admin', diferenciando entre mayúsculas y minúsculas.
SELECT *
FROM usuarios
WHERE BINARY nombre_usuario = 'Admin';
En este ejemplo, solo se seleccionarán los registros donde nombre_usuario
sea exactamente 'Admin'. No se seleccionarán variantes como 'admin' o 'ADMIN'.
Puedes combinar BINARY
con LIKE
para realizar búsquedas que respeten la distinción entre mayúsculas y minúsculas y que incluyan comodines.
SELECT *
FROM documentos
WHERE BINARY titulo LIKE 'Report%';
Este ejemplo selecciona todos los registros donde el título comience exactamente con 'Report'. No se seleccionarán títulos que comiencen con 'report', 'REPORT', etc.
SELECT *
FROM documentos
WHERE BINARY titulo LIKE '%Report';
Este ejemplo selecciona todos los registros donde el título termine exactamente con 'Report', diferenciando entre mayúsculas y minúsculas.
SELECT *
FROM documentos
WHERE BINARY titulo LIKE '%Report%';
Este ejemplo selecciona todos los registros donde el título contenga la palabra 'Report' en cualquier posición, respetando la distinción entre mayúsculas y minúsculas.
- Sintaxis:
IFNULL(expr1, expr2)
- Propósito: Devuelve
expr2
siexpr1
esNULL
; de lo contrario, devuelveexpr1
. - Compatibilidad: Esta función es específica de MySQL.
- Número de argumentos: Acepta exactamente dos argumentos.
SELECT IFNULL(nombre, 'Desconocido') FROM usuarios;
En este ejemplo, si el valor de nombre
es NULL
, se devuelve 'Desconocido'; de lo contrario, se devuelve el valor de nombre
.
- Sintaxis:
COALESCE(expr1, expr2, ..., exprN)
- Propósito: Devuelve el primer valor no nulo en la lista de expresiones.
- Compatibilidad: Esta función es parte del estándar SQL y es compatible con la mayoría de las bases de datos (MySQL, PostgreSQL, SQL Server, Oracle, etc.).
- Número de argumentos: Puede aceptar dos o más argumentos.
SELECT COALESCE(nombre, apodo, 'Desconocido') FROM usuarios;
En este ejemplo, se devuelve el primer valor no nulo entre nombre
, apodo
y 'Desconocido'. Si nombre
es NULL
, se evalúa apodo
; si ambos son NULL
, se devuelve 'Desconocido'.
se utiliza para extraer el año de una fecha dada.
Obtener el año de una fecha específica:
SELECT YEAR('2024-05-17') AS year;
Devuelve al fecha actual
En MySQL se utiliza para restar un intervalo de tiempo a una fecha. Esta función puede tomar dos formas principales: restar un número de días o restar un intervalo específico. A continuación, se muestran ejemplos de ambas formas:
- Restar un número de días de una fecha
SELECT SUBDATE('2024-05-19', 10) AS fecha_menos_diez_dias;
En este ejemplo, se resta 10 días de la fecha '2024-05-19'. El resultado será '2024-05-09'.
- Restar un intervalo específico de una fecha
Puedes restar un intervalo de tiempo específico utilizando la función INTERVAL
. Los intervalos pueden ser días, meses, años, horas, minutos, segundos, etc.
- Ejemplo de restar días:
SELECT SUBDATE('2024-05-19', INTERVAL 10 DAY) AS fecha_menos_diez_dias;
Este ejemplo también resta 10 días de la fecha '2024-05-19'. El resultado será '2024-05-09'.
- Ejemplo de restar meses:
SELECT SUBDATE('2024-05-19', INTERVAL 2 MONTH) AS fecha_menos_dos_meses;
Este ejemplo resta 2 meses de la fecha '2024-05-19'. El resultado será '2024-03-19'.
- Ejemplo de restar años:
SELECT SUBDATE('2024-05-19', INTERVAL 1 YEAR) AS fecha_menos_un_año;
Este ejemplo resta 1 año de la fecha '2024-05-19'. El resultado será '2023-05-19'.
- Ejemplo práctico en una tabla
Supongamos que tienes una tabla eventos
con una columna fecha_evento
y quieres seleccionar todas las filas donde la fecha del evento sea al menos 30 días antes de hoy.
SELECT *
FROM eventos
WHERE fecha_evento <= SUBDATE(CURDATE(), INTERVAL 30 DAY);
En este ejemplo, CURDATE()
devuelve la fecha actual, y SUBDATE(CURDATE(), INTERVAL 30 DAY)
devuelve la fecha actual menos 30 días. La consulta selecciona todos los eventos que ocurrieron hace 30 días o más.
Estos ejemplos demuestran cómo se puede utilizar la función SUBDATE
en MySQL para restar intervalos de tiempo de fechas.
La función ADDDATE
en MySQL se utiliza para sumar un intervalo de tiempo a una fecha. Similar a SUBDATE
, ADDDATE
tiene dos formas principales: sumar un número de días o sumar un intervalo específico. A continuación se muestran ejemplos de ambas formas:
SELECT ADDDATE('2024-05-19', 10) AS fecha_mas_diez_dias;
En este ejemplo, se suman 10 días a la fecha '2024-05-19'. El resultado será '2024-05-29'.
Puedes sumar un intervalo de tiempo específico utilizando la función INTERVAL
. Los intervalos pueden ser días, meses, años, horas, minutos, segundos, etc.
- Ejemplo de sumar días:
SELECT ADDDATE('2024-05-19', INTERVAL 10 DAY) AS fecha_mas_diez_dias;
Este ejemplo también suma 10 días a la fecha '2024-05-19'. El resultado será '2024-05-29'.
- Ejemplo de sumar meses:
SELECT ADDDATE('2024-05-19', INTERVAL 2 MONTH) AS fecha_mas_dos_meses;
Este ejemplo suma 2 meses a la fecha '2024-05-19'. El resultado será '2024-07-19'.
-Ejemplo de sumar años:
SELECT ADDDATE('2024-05-19', INTERVAL 1 YEAR) AS fecha_mas_un_año;
Este ejemplo suma 1 año a la fecha '2024-05-19'. El resultado será '2025-05-19'.
en SQL se utiliza para contar el número de filas en un conjunto de resultados que cumplen con una condición específica. Es una de las funciones de agregación más comunes y útiles en SQL.
- expression: Puede ser una columna específica o un asterisco (
*
).COUNT(*)
: Cuenta todas las filas en el conjunto de resultados.COUNT(column_name)
: Cuenta las filas en las quecolumn_name
no esNULL
.COUNT(DISTINCT column_name)
: Cuenta las filas únicas en las quecolumn_name
no esNULL
.
Contar todas las filas de una tabla:
SELECT COUNT(*) AS total_filas FROM empleados;
Este ejemplo cuenta todas las filas de la tabla empleados
.
Contar las filas que no tienen valores nulos en una columna específica:
SELECT COUNT(email) AS total_emails FROM usuarios;
Este ejemplo cuenta las filas de la tabla usuarios
donde la columna email
no es NULL
.
Contar filas con valores distintos en una columna:
SELECT COUNT(DISTINCT departamento) AS departamentos_unicos FROM empleados;
Este ejemplo cuenta el número de valores únicos en la columna departamento
de la tabla empleados
.
COUNT(*)
es generalmente más rápido queCOUNT(column_name)
porque no necesita verificar si los valores sonNULL
.COUNT(column_name)
es útil cuando necesitas contar solo las filas donde la columna específica no esNULL
.COUNT(DISTINCT column_name)
es útil para contar valores únicos en una columna, ignorando duplicados yNULL
.
En resumen, la función COUNT
es extremadamente versátil y esencial para realizar análisis de datos y generar reportes en SQL.