APATECH

Curso de SQL SERVER tipos de campos, funciones y declaraciones: Capitulo 4

Tipo de datos en SQL

Los tipos de datos en SQL Server son atributos que especifican el tipo de datos que una columna puede almacenar. Cada columna en una tabla tiene un tipo de dato asociado que define el tipo de información y el rango de valores que se pueden almacenar en esa columna.


Importancia de los Tipos de Datos

Elegir el tipo de dato correcto es crucial por varias razones:

  • Precisión y Exactitud: Ayuda a garantizar que los datos se almacenan y se manejan con precisión.
  • Optimización del Almacenamiento: Ayuda a optimizar el uso del espacio de almacenamiento.
  • Rendimiento: Mejora el rendimiento de las consultas y operaciones en la base de datos.
  • Integridad de Datos: Asegura que los datos son válidos y coherentes.

Tipos de Datos Numéricos]

Los tipos de datos más comunes en SQL Server, comenzando con los tipos numéricos:

  • INT: Almacena números enteros grandes, desde -2,147,483,648 hasta 2,147,483,647. Ideal para contar elementos.
  • SMALLINT: Almacena números enteros más pequeños, desde -32,768 hasta 32,767.
  • BIGINT: Para números enteros muy grandes, desde -9,223,372,036,854,775,808 hasta 9,223,372,036,854,775,807.
  • TINYINT: Almacena números enteros pequeños, desde 0 hasta 255.
  • DECIMAL(p, s) o NUMERIC(p, s): Almacenan números decimales con precisión y escala definidas, lo que es útil para cálculos financieros.
  • FLOAT y REAL: Para números de punto flotante que requieren una precisión variable.

Tipos de Datos de Carácter

Los tipos de datos de carácter se utilizan para almacenar cadenas de texto. Aquí están algunos ejemplos:

  • CHAR(n): Almacena cadenas de longitud fija, donde n es el número de caracteres. Ideal para datos que siempre tienen la misma longitud.
  • VARCHAR(n): Almacena cadenas de longitud variable, hasta n caracteres. Útil para texto de longitud variable.
  • TEXT: Para almacenar grandes cantidades de texto, aunque está en desuso y se recomienda usar VARCHAR(MAX) en su lugar.
  • NCHAR(n): Similar a CHAR, pero para caracteres Unicode, lo que permite almacenar texto en múltiples idiomas.
  • NVARCHAR(n): Similar a VARCHAR, pero para caracteres Unicode.
  • NTEXT: Similar a TEXT, pero para grandes cantidades de texto en formato Unicode, también en desuso a favor de NVARCHAR(MAX).

Tipos de Datos de Fecha

Los tipos de datos de fecha y hora son esenciales para trabajar con datos temporales:

  • DATE: Almacena solo la fecha (año, mes, día).
  • TIME: Almacena solo la hora (horas, minutos, segundos).
  • DATETIME: Almacena fecha y hora combinadas, útil para registrar eventos con precisión.
  • SMALLDATETIME: Similar a DATETIME, pero con menor rango y precisión.
  • DATETIME2: Una versión mejorada de DATETIME, con mayor precisión y rango.
  • DATETIMEOFFSET: Almacena la fecha y hora con un desplazamiento de zona horaria, útil para aplicaciones globales.

Otros tipos de datos comunes en SQL Server:

  • BIT: Almacena valores binarios (0 o 1), ideal para valores booleanos.
  • BINARY(n) y VARBINARY(n): Almacenan datos binarios de longitud fija o variable, respectivamente, útiles para archivos y datos encriptados.
  • UNIQUEIDENTIFIER: Almacena identificadores únicos globales (GUID), útil para claves primarias distribuidas.
  • XML: Almacena datos en formato XML, adecuado para datos semi-estructurados.
  • JSON: Aunque no hay un tipo de dato específico para JSON, puedes almacenar JSON en columnas de tipo NVARCHAR.

Funciones SQL SERVER

Las funciones en SQL Server son herramientas poderosas que permiten realizar una variedad de tareas, desde cálculos simples hasta operaciones complejas con datos. Ya sean funciones incorporadas o definidas por el usuario, su uso adecuado puede mejorar significativamente la eficiencia y la legibilidad de las consultas SQL. En SQL Server, las funciones son bloques de código que se pueden utilizar para realizar tareas específicas. Las funciones pueden aceptar parámetros de entrada, realizar operaciones y devolver un valor. Existen dos tipos principales de funciones en SQL Server: las funciones escalares y las funciones de tabla.

Tipos de Funciones en SQL Server

  1. Funciones Escalares
  • Descripción: Devuelven un único valor, como un número, una cadena o una fecha.
  • Ejemplos Comunes:
    • LEN(): Devuelve la longitud de una cadena de caracteres.
    • GETDATE(): Devuelve la fecha y hora actuales.
    • ROUND(): Redondea un número a un número especificado de decimales.
  1. Funciones de Tabla
  • Descripción: Devuelven un conjunto de filas, es decir, una tabla. Se pueden utilizar en la cláusula FROM de una consulta SQL.
  • Ejemplos Comunes:
    • STRING_SPLIT(): Divide una cadena en una tabla de subcadenas basadas en un delimitador.
    • OPENJSON(): Analiza un objeto JSON y devuelve una tabla.

Categorías de Funciones en SQL Server

  • Funciones de Agregado: Realizan cálculos en un conjunto de valores y devuelven un valor único.
  • Ejemplos: SUM(), AVG(), COUNT(), MAX(), MIN()
  • Funciones de Cadena: Realizan operaciones en cadenas de texto.
  • Ejemplos: CONCAT(), SUBSTRING(), CHARINDEX(), REPLACE()
  • Funciones de Fecha y Hora: Trabajan con valores de fecha y hora.
  • Ejemplos: GETDATE(), DATEADD(), DATEDIFF(), FORMAT()
  • Funciones Matemáticas: Realizan operaciones matemáticas.
  • Ejemplos: ROUND(), ABS(), POWER(), SQRT()
  • Funciones de Conversión: Convertir datos de un tipo a otro.
  • Ejemplos: CAST(), CONVERT()
  • Funciones Lógicas: Evalúan expresiones lógicas.
  • Ejemplos: ISNULL(), COALESCE()

Creación de Funciones Definidas por el Usuario

Además de las funciones incorporadas, SQL Server permite a los usuarios crear sus propias funciones definidas por el usuario (UDFs):

  1. Funciones Escalares Definidas por el Usuario (UDFs Escalares)
  • Devuelven un solo valor.
  • Ejemplo: CREATE FUNCTION dbo.Saludo (@Nombre NVARCHAR(50)) RETURNS NVARCHAR(100) AS BEGIN RETURN 'Hola, ' + @Nombre + '!' END; Uso: SELECT dbo.Saludo('Juan');
  1. Funciones de Tabla Definidas por el Usuario (UDFs de Tabla)
  • Devuelven un conjunto de filas.
  • Ejemplo: CREATE FUNCTION dbo.ObtenerEstudiantesActivos () RETURNS TABLE AS RETURN ( SELECT ID, Nombre, Edad FROM Estudiantes WHERE Activo = 1 ); Uso: SELECT * FROM dbo.ObtenerEstudiantesActivos();

Ventajas de Usar Funciones en SQL Server

  • Reutilización de Código: Las funciones permiten encapsular la lógica que puede ser reutilizada en múltiples consultas.
  • Modularidad: Facilitan la división de tareas complejas en componentes más manejables y comprensibles.
  • Mantenimiento: Hacen que el código sea más fácil de mantener y actualizar.
  • Claridad: Mejoran la legibilidad y comprensión del código SQL.

Capitulo 4