SQL

 


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