Trabajar con bases de datos de cualquier tipo significa trabajar con datos. Estos datos pueden tener un par de formatos predefinidos. A medida que avance en su aprendizaje con LearnSQL.es, empezará a entender los diferentes tipos de datos de SQL.
La creación de tablas es el primer paso en todo proyecto de código SQL. Para ello, se utilizan instrucciones DDL (lenguaje de definición de datos) como CREATE y DROP, que explicamos en nuestro curso Cómo crear tablas en SQL. Cuando haya creado su tabla, empiece a declarar los nombres de las columnas y los tipos de datos en SQL. Digamos que tenemos la tabla "usuarios". La información de cada usuario está en las columnas para el nombre y para el número de teléfono. Los nombres se almacenarían en una columna para caracteres.
Procesamiento de Correos Electrónicos para su Almacenamiento en SQL
¿Tienes datos específicos atrapados en un acumulado de correos electrónicos que necesitas analizar y convertir en registros de base de datos? ¿Recibes un flujo diario de correos con datos que necesitas alimentar en tu aplicación? Si ya tienes una base de datos funcionando, puedes analizar tus correos automáticamente con Parseur y enviarlos directamente a tu base de datos.
Envía tus correos electrónicos a Parseur para analizar el contenido, extraer los datos relevantes y agregarlos como filas en tu tabla de SQL Server. Usando Parseur puedes extraer texto de cualquier correo electrónico y enviarlo a tu base de datos SQL Server en tiempo real como datos perfectamente estructurados. Zapier es una herramienta de automatización en la nube que conecta aplicaciones.
Correo Electrónico de Base de Datos en SQL Server
El Correo electrónico de base de datos es una solución empresarial para enviar mensajes de correo electrónico desde el motor de base de datos de SQL Server o Azure SQL Managed Instance. Sus aplicaciones pueden enviar mensajes de correo electrónico a los usuarios utilizando el Correo electrónico de base de datos a través de un servidor SMTP externo. El Correo electrónico de base de datos usa el protocolo estándar SMTP (Protocolo simple de transferencia de correo) para enviar correo electrónico.
Lea también: IVA 21% Excel
Características y Beneficios del Correo de Base de Datos
- Aislamiento de procesos: Para minimizar el impacto en SQL Server, el componente que entrega el correo electrónico se ejecuta fuera de SQL Server, en un proceso independiente. SQL Server continuará almacenando en cola los mensajes de correo electrónico incluso si el proceso externo se detiene o genera un error.
- Cuentas de conmutación por error: Los perfiles del Correo electrónico de base de datos permiten especificar más de un servidor SMTP.
- Compatibilidad con clústeres.
- Entrega en segundo plano: el Correo electrónico de base de datos permite realizar entregas en segundo plano o asincrónicas. El procedimiento almacenado se devuelve inmediatamente.
- Varios perfiles: el Correo electrónico de base de datos permite crear varios perfiles en una instancia de SQL Server.
- Varias cuentas: cada perfil puede incluir varias cuentas de conmutación por error.
- Seguridad de perfil: el Correo electrónico de base de datos aplica la seguridad para los perfiles de correo. El usuario elige cuáles son los usuarios o grupos de la base de datos msdb que tienen acceso a los perfiles del Correo electrónico de base de datos. Se puede conceder acceso a usuarios específicos o a todos los usuarios de msdb. Un perfil privado restringe el acceso a una lista especificada de usuarios.
- Regulador del tamaño de los datos adjuntos: el Correo electrónico de base de datos aplica un límite configurable para el tamaño de los datos adjuntos.
- Extensiones de archivo prohibidas: el Correo electrónico de base de datos mantiene una lista de extensiones de archivo prohibidas. Los usuarios no pueden adjuntar archivos con una extensión que aparezca en la lista.
- Configuración integrada: el Correo electrónico de base de datos mantiene la información de las cuentas de correo electrónico del motor de base de datos de SQL Server. No es necesario administrar un perfil de correo en una aplicación cliente externa.
Funcionamiento y Configuración
El Correo de Base de Datos se ejecuta bajo la cuenta de servicio del Motor de SQL Server. El proceso externo lee la información de correo electrónico y envía el mensaje de correo electrónico al servidor o servidores de correo electrónico adecuados. El proceso externo inserta un elemento en la cola de estado para indicar el resultado de la operación de envío. La inserción de la nueva entrada en la cola de estado inicia el procedimiento almacenado interno que actualiza el estado del mensaje de correo electrónico.
El Asistente para configuración del Correo electrónico de base de datos proporciona una interfaz adecuada para configurar el Correo electrónico de base de datos.
Registro y Auditoría
El Correo electrónico de base de datos conserva copias de los mensajes y datos adjuntos enviados en la base de datos msdb. Además de almacenar el mensaje de correo electrónico enviado, o no enviado, el Correo electrónico de base de datos también registra cualquier dato adjunto del correo electrónico en las tablas del sistema. El Correo electrónico de base de datos almacena información de configuración y seguridad en la base de datos msdb. La base de datos msdb actúa como la base de datos host de correo que contiene los objetos de mensajería que el correo de base de datos usa para enviar mensajes de correo electrónico.
Integración con el Agente SQL Server y Alertas
El Agente SQL Server se puede configurar para usar el Correo electrónico de base de datos. Cada paso de un trabajo puede también enviar un correo electrónico sin configurar el Agente SQL Server para usar el Correo electrónico de la base de datos. Se desencadene una alerta. Las alertas se pueden configurar para enviar una notificación por correo electrónico acerca de eventos específicos que se produzcan. Por ejemplo, las alertas se pueden configurar para notificar a un operador de un determinado evento de base de datos o una condición del sistema operativo que podría necesitar una acción inmediata. Se lleve a cabo o no se complete una tarea programada, como una copia de seguridad de la base de datos o un evento de replicación.
Consideraciones Técnicas y Limitaciones
SQL Server 2025 (17.x) introdujo compatibilidad con TDS 8.0 para correo electrónico de base de datos. El protocolo TDS 8.0 proporciona seguridad y cifrado mejorados para los datos transmitidos entre SQL Server y las aplicaciones cliente. Si intenta habilitar la opción sp_configure para el correo electrónico de base de datos cuando está conectado al agente de escucha del grupo de disponibilidad contenido, recibirá el error esperado: Changes to server configuration options are not permitted in the connection to Contained Availability Group. Change connection to SQL Server instance level and retry the operation. Para la de Microsoft SQL Server XXX Express, el nodo de administración no tiene correo de base de datos. Esto no quiere decir que no podamos usarlo porque no solo está disponible como interfaz, sino que aún está disponible en el Motor de base de datos de SQL Server. Al ejecutar este código podría mostrar este error. Para poder solucionar este problema, debemos cambiar el valor predeterminado de las opciones avanzadas de mostrar de 0 a 1. En esta pantalla se deja igual los parámetros y siguiente. Verifico la cuenta de correo y veo que se envío correctamente. Ricardo A. Especialista en SQL Server y Power BI.
Lea también: Guía IVA reducido
Comprendiendo los Tipos de Datos en SQL: El Ejemplo de los Tipos Numéricos
En este artículo, cubriremos las diferentes variaciones del tipo de datos numérico de SQL. Cuando haya creado su tabla, empiece a declarar los nombres de las columnas y los tipos de datos en SQL. Digamos que tenemos la tabla "usuarios". La información de cada usuario está en las columnas para el nombre y para el número de teléfono. Los números de teléfono en una columna numérica. Entonces, las columnas numéricas almacenan números y todos los números son iguales, ¿verdad? Hay diferentes tipos de números, y hay diferentes tipos de columnas numéricas.
Cualquiera que tenga conocimientos de estadística sabe que hay cuatro escalas diferentes que se aplican a los números: nominal, ordinal, de intervalo y ratio. A diferencia de los otros tipos de datos, los tipos numéricos pueden representar todas estas escalas (por eso, en lugar de hablar de tipo de datos numéricos en SQL, hablamos de tipos). Se pueden comparar los valores de los caracteres en SQL, por lo que es posible argumentar que los valores de los caracteres también podrían representar datos de intervalo.
Escalas de Medición Numéricas
- Valores Nominales: Los valores nominales solo se diferencian por su "nombre". Los valores nominales no se tratan como números; no se pueden sumar ni restar, y no tienen un orden inherente. Por ejemplo, los números de ID de los estudiantes y los números de teléfono son valores nominales. Se utilizan más como una etiqueta que como un número. Podemos decir que nuestros números de teléfono son iguales (misma importancia, misma longitud), pero no podemos compararlos ni decir que uno de ellos es el primero. No podemos sumarlos para obtener un número de teléfono significativo.
- Valores Ordinales: Los valores ordinales proporcionan un orden o rango. En los valores ordinales, lo importante es el orden que existe entre ellos. Supongamos que tenemos una escala de 1 a 3 que califica el estado de ánimo de una persona. "1" significaría sentirse infeliz, "2" estar contento y "3" estar feliz. Se sabe que "feliz" tiene un valor más alto que "contento" o "infeliz", pero eso es todo. No se puede sumar "contento" e "infeliz" para obtener un "feliz".
- Valores de Intervalo: Los valores de intervalo muestran las diferencias exactas. En una escala de intervalos, lo importante son las diferencias entre los valores. Si se resta 90 grados centígrados de 100 grados centígrados, se obtiene una diferencia de 10 grados. Los años, las fechas y la mayoría de las medidas de las personas son medidas de intervalo. Los valores de intervalo son numéricos y se representan como tales en la base de datos.
- Valores Ratio: Los valores ratio son intervalos con un valor cero definido. Al igual que en las escalas de intervalo, en las escalas ratio las diferencias entre los valores son calculables. Sin embargo, en estas escalas, el valor cero significa que no hay nada que medir. Por ejemplo, si pensamos en términos de masa, longitud y duración, si cualquiera de ellas tiene un valor cero, no hay nada. Las escalas ratio son muy importantes para la ciencia.
Todos los tipos de datos numéricos de SQL se utilizan para representar todos los valores anteriores, especialmente los intervalos y los ratios.
Tipos de Datos Numéricos Exactos
Los tipos de datos numéricos exactos de SQL están formados por los subtipos NUMERIC(p,s) y DECIMAL(p,s). Son números exactos, y los definimos por su precisión (p) y escala (s). La precisión es un número entero que representa el número total de dígitos permitidos en esta columna. Estos dígitos están en una base de tipos numéricos (radix) específica, es decir, binaria (base 2) o decimal (base 10), y suelen conllevar un punto decimal. Los tipos de datos numéricos exactos son SMALLINT, INTEGER, BIGINT, NUMERIC(p,s) y DECIMAL(p,s).
Existe una pequeña diferencia entre los tipos de datos numéricos NUMERIC(p,s) y DECIMAL(p,s) de SQL. NUMERIC determina la precisión y la escala exactas. DECIMAL especifica solo la escala exacta; su precisión es igual o mayor que la especificada por el programador. Además, sea consciente de que muchos de los principales sistemas de gestión de bases de datos tienen representaciones específicas del proveedor para los tipos de datos numéricos (por ejemplo, el tipo de datos NUMBER de Oracle).
Lea también: ¿Cómo localizar tus XML del SAT?
Veamos un ejemplo. Cuando inserte datos en una columna NUMERIC, recuerde sus límites de precisión. Si intenta insertar un número demasiado grande, es posible que obtenga un error. Esto producirá un error. ¿Por qué? El segundo intento funciona. Esto se debe a que el RDBMS redondea el número insertado, descartando cualquier dígito "extra" que esté a la derecha del punto decimal. En este caso, se mantiene ".11", pero se descarta el "23" siguiente.
Tipos de Datos Enteros
Los tipos de datos enteros (integer) contienen números enteros o sin punto decimal. En latín, integer significa entero. El estándar ANSI SQL define SMALLINT, INTEGER y BIGINT como tipos de datos enteros. Para estos tipos, el tamaño predeterminado de la columna es importante. Las columnas INTEGER redondean los decimales. ... los valores insertados se redondearían al primer dígito antes del punto decimal. Si usted utiliza tipos de datos enteros en las fórmulas, debe saber que el redondeo puede causar inconsistencias en las fórmulas. ... el valor insertado sería 123314. ... el resultado, ahora un número decimal, sería 123314.3147. Esto es una clara inconsistencia.
Tipos de Datos Numéricos Aproximados (Float)
Los tipos de datos numéricos float y relacionados con float de SQL contienen valores numéricos aproximados. Constan de una cifra significativa (un valor numérico con signo) y un exponente (un valor entero con signo que especifica el orden de magnitud de la cifra significativa). Si quiere entender realmente el tipo de datos numéricos de punto flotante de SQL, tendrá que estudiar un poco de ciencia de la computación. Es posible que lo encuentre divertido, pero, en esta etapa de su aprendizaje de SQL, creo que es excesivo. Los tipos de datos numéricos aproximados son FLOAT(p), REAL y DOUBLE PRECISION.
Representan números reales, pero no se escriben como números exactos en la base de datos. Más bien, son una aproximación al número real, debido a la forma en que los sistemas informáticos representan los números. La diferencia entre FLOAT(p) y REAL es que FLOAT tiene una precisión binaria (no decimal) igual o mayor que el valor definido. La precisión predefinida de REAL se basa en la base de datos usada. En los cálculos, los tipos aproximados pueden dar resultados extraños como 204.000000056, cuando el resultado exacto debería ser 204.
Si se está creando una base de datos para una aplicación de ingeniería o científica, los tipos de datos flotantes valdrían. También, hay una diferencia de velocidad; si se está haciendo un número excepcionalmente alto de cálculos complicados (por ejemplo, funciones trigonométricas, etc.), estos serían mucho más rápidos con tipos flotantes que con el resto de tipos de datos numéricos. El catálogo de tipos de datos numéricos de SQL no se limita a los enteros y decimales. Estos solo son un reflejo de la necesidad de almacenar los datos de forma segura, predecible y utilizable.
