Tipo de dato en SQL:
Tipos de Datos Numéricos:
1. INT o INTEGER: Este tipo de dato se utiliza para almacenar números enteros, que son valores completos sin partes decimales. Puede representar números positivos y negativos. Por ejemplo, 5 y -10 son valores INT.
2. TINYINT: TINYINT se utiliza para almacenar números enteros pequeños. Si es signado, su rango es de -128 a 127, lo que significa que puede almacenar números negativos y positivos. Si es sin signo, su rango es de 0 a 255, por lo que solo almacena números positivos.
3. SMALLINT: Similar a TINYINT, SMALLINT se utiliza para números enteros pequeños, pero tiene un rango más amplio en comparación con TINYINT.
4. MEDIUMINT: MEDIUMINT se utiliza para números enteros medianos. Ofrece un rango de valores más grande que TINYINT o SMALLINT.
5. BIGINT: BIGINT se emplea para almacenar números enteros muy grandes. Es adecuado para representar valores extremadamente grandes, como números de serie o identificadores únicos.
6. FLOAT: El tipo FLOAT se utiliza para almacenar números de punto flotante con precisión simple. Puede representar valores decimales y se utiliza en cálculos que no requieren alta precisión.
7. DOUBLE: Similar a FLOAT, pero con precisión doble. DOUBLE se usa cuando se necesita una alta precisión en cálculos con números decimales.
8. DECIMAL o NUMERIC: Estos tipos de datos se utilizan para números decimales con precisión fija. Son ideales para aplicaciones financieras y situaciones en las que se requiere una precisión exacta en los cálculos.
Tipos de Datos de Texto:
9. CHAR: CHAR se utiliza para almacenar cadenas de caracteres de longitud fija. Si defines CHAR(10), ocupará siempre 10 caracteres, incluso si el contenido es más corto.
10. VARCHAR: VARCHAR se usa para cadenas de caracteres de longitud variable. Ahorra espacio de almacenamiento en comparación con CHAR cuando la longitud del texto varía.
11. TEXT: El tipo TEXT se emplea para almacenar texto largo, como párrafos o documentos.
Tipos de Datos de Fecha y Hora:
12. DATE: DATE almacena fechas en formato 'YYYY-MM-DD'. Se utiliza para representar fechas.
13. TIME: TIME almacena horas en formato 'HH:MM:SS'. Útil para representar horas del día.
14. DATETIME: DATETIME combina fecha y hora en formato 'YYYY-MM-DD HH:MM:SS'.
15. TIMESTAMP: TIMESTAMP es similar a DATETIME y se utiliza para representar marcas de tiempo (fecha y hora) en registros.
16. YEAR: YEAR almacena años en formato de cuatro dígitos, como '2023'.
Tipos de Datos Lógicos:
17. BOOLEAN o BOOL: Estos tipos almacenan valores verdaderos o falsos, generalmente representados como 1 para verdadero y 0 para falso.
Tipos de Datos Binarios:
18. BLOB: BLOB se utiliza para almacenar datos binarios, como imágenes o archivos.
19. BINARY: BINARY almacena cadenas binarias de longitud fija.
20. VARBINARY: VARBINARY almacena cadenas binarias de longitud variable.
Tipos de Datos Geoespaciales (GIS):
21. GEOMETRY: GEOMETRY se usa para almacenar datos geométricos, como puntos, líneas y polígonos.
22. POINT: POINT almacena coordenadas de un punto en el espacio.
23. LINESTRING: LINESTRING se utiliza para representar secuencias de puntos que forman líneas.
24. POLYGON: POLYGON almacena descripciones de polígonos con coordenadas.
25. GEOMETRYCOLLECTION: GEOMETRYCOLLECTION almacena colecciones de objetos geométricos.
26. SPATIAL: SPATIAL es un tipo de dato espacial utilizado para consultas geoespaciales avanzadas.
Consulta SELECT Básica:
-- Selecciona todos los registros de la tabla 'clientes'
SELECT * FROM clientes;
Consulta SELECT con Filtro:
-- Selecciona clientes con un saldo mayor que 1000
SELECT * FROM clientes WHERE saldo > 1000;
Consulta SELECT con Ordenamiento:
-- Selecciona todos los productos ordenados por precio de forma ascendente
SELECT * FROM productos ORDER BY precio ASC;
Consulta SELECT con Limitación:
-- Selecciona los 10 primeros pedidos
SELECT * FROM pedidos LIMIT 10;
Consulta SELECT con Join:
-- Selecciona nombres de clientes y nombres de productos de la tabla 'pedidos'
-- y une las tablas 'clientes' y 'productos' usando 'cliente_id' y 'producto_id'
SELECT clientes.nombre, productos.nombre
FROM pedidos
INNER JOIN clientes ON pedidos.cliente_id = clientes.id
INNER JOIN productos ON pedidos.producto_id = productos.id;
Consulta UPDATE Básica:
-- Actualiza el precio de un producto con el ID 123
UPDATE productos SET precio = 19.99 WHERE id = 123;
Consulta DELETE Básica:
-- Elimina un registro de la tabla 'clientes' con ID 456
DELETE FROM clientes WHERE id = 456;
Consulta INSERT Básica:
-- Inserta un nuevo cliente en la tabla 'clientes'
INSERT INTO clientes (nombre, correo) VALUES ('Juan Pérez', 'juan@email.com');
Consulta SELECT con Subconsulta:
-- Selecciona clientes que han realizado pedidos
-- y muestra la cantidad de pedidos que han hecho
SELECT nombre, (SELECT COUNT(*) FROM pedidos WHERE pedidos.cliente_id = clientes.id) AS cantidad_pedidos
FROM clientes;
Consulta GROUP BY y HAVING:
-- Cuenta la cantidad de pedidos para cada producto
-- y muestra solo aquellos con más de 10 pedidos
SELECT producto_id, COUNT(*) AS cantidad_pedidos
FROM pedidos
GROUP BY producto_id
HAVING cantidad_pedidos > 10;
Consulta con Funciones de Agregación:
-- Calcula el total de ventas y el promedio de precio de productos vendidos
SELECT SUM(precio) AS total_ventas, AVG(precio) AS precio_promedio
FROM pedidos
INNER JOIN productos ON pedidos.producto_id = productos.id;
Consulta con Subconsulta Correlacionada:
-- Selecciona clientes que han realizado pedidos por un monto mayor
-- al promedio de gasto de todos los clientes
SELECT nombre
FROM clientes c
WHERE (SELECT AVG(total) FROM pedidos WHERE cliente_id = c.id) > (SELECT AVG(total) FROM pedidos);

Comentarios
Publicar un comentario