Parzibyte's blog

Blog de conocimiento gratuito: linux, programación, open source, bases de datos, android, frameworks, web e informática en general.

Total vendido agrupado por mes – SQL y reportes con gráficas

En este post vamos a ver cómo calcular el total vendido en un período de fechas agrupado por mes, ya sea para mostrar un reporte o una gráfica de barras o líneas.

Básicamente veremos el algoritmo y ejemplos de código para sacar el desglose del total vendido por mes en el año o en cualquier período de tiempo, tomando los datos de una base de datos, agrupando, ordenando, sumando, etcétera.

No importa cuál motor de base de datos utilices ni el lenguaje de programación. Veremos el algoritmo para sumar el total vendido por mes.

(más…)

Telegram y MySQL: conexión usando bot

En este post vamos a ver cómo realizar la conexión de Telegram con MySQL a través de un bot, de modo que podamos guardar y consultar datos de una base de datos de MySQL desde Telegram.

Telegram bot con MySQL - Listar e insertar registros a base de datos con comandos

Telegram bot con MySQL – Listar e insertar registros a base de datos con comandos

Con lo que veremos vamos a poder insertar datos en una tabla de MySQL desde Telegram y cualquier chat (siempre y cuando nuestro bot pueda leer los mensajes).

También vamos a ver cómo guardar el nombre del usuario y la fecha de envío del mensaje. Será un CRUD (sin Update) básico pero puedes partir del mismo para hacer cosas más específicas.

(más…)

¿Cómo almacenar contraseñas en bases de datos?

El día de hoy te voy a compartir un poco de mi experiencia como programador al guardar contraseñas en bases de datos, sin importar lenguaje de programación ni motor de base de datos.

Te daré algunos consejos para almacenar passwords en una base de datos y que obviamente queden seguras para que ni siquiera tú sepas cuál es la contraseña pero puedas resetearla en caso de ser necesario.

(más…)

Agrupar condiciones WHERE en SQL usando Laravel

En el post de hoy vamos a trabajar con Laravel, PHP y consultas SQL con WHERE. Como bien sabes, en MySQL o motores similares podemos agrupar condiciones usando paréntesis, estableciendo así un orden.

Por ejemplo, si queremos encerrar 2 condiciones y luego evaluarlas con un AND, haríamos algo así:

select * from `productos` where `id_establecimiento` = ? and (`descripcion` LIKE ? or `codigo_barras` LIKE ?) order by `descripcion` asc;

En este caso hacemos un and entre la primera comparación y el resultado de la segunda que está encerrada entre paréntesis para evaluar un or.

Esto es importante porque (para este ejemplo) si no se usaran paréntesis se podrían ver los productos de todos los establecimientos si es que el código de barras coincide.

Entonces veamos cómo agrupar y evaluar condiciones booleanas de la base de datos entre paréntesis usando el Query Builder y ORM de Laravel.

(más…)

Flutter y SQLite multiplataforma

En este post te enseñaré a usar Flutter con SQLite en varias plataformas, excepto la web. El paquete oficial soporta solo Android, iOS y MacOS, pero no Windows ni Linux.

Aquí veremos cómo usar SQLite con Flutter en Android, iOS, MacOS, Windows y Linux usando un paquete adicional llamado sqflite_ffi que es compatible con Linux y Windows.

Nota: si tú solo quieres usar SQLite en Android, iOS o MacOS entonces tal vez quieras buscar un tutorial más simple como este, ya que aquí enseño a cómo tener SQLite en la mayor cantidad de plataformas posibles.

(más…)

SQL: obtener varias filas de subconsulta en una sola, simulando JSON para agrupar

Hace tiempo te mostré cómo “encapsular” varias filas de datos en una sola fila usando JSON con PostgreSQL y las funciones que de JSON que este motor ofrece.

Hoy te enseñaré a obtener varias filas “comprimidas” dentro de una fila simulando un JSON concatenando los resultados, por lo que será compatible con varios motores de bases de datos.

En pocas palabras ingresaremos un arreglo de filas en una fila, agrupando varias filas en una sola, o mejor dicho, colocar resultados de una subconsulta como JSON.

(más…)

Agregar clave foránea en ALTER TABLE con SQLite

En este post te enseñaré algo muy simple pero de lo cual no encontré información al respecto: cómo agregar una clave foránea (relación) a una tabla de SQLite con un ALTER TABLE agregando una columna con ADD COLUMN.

Es decir, vamos a agregar una Foreign Key a una tabla existente agregando la columna y la relación al mismo tiempo

(más…)

Guardar fechas en bases de datos: tipo de dato

En el post de hoy vamos a hablar sobre el almacenamiento de fechas y horas en las bases de datos y cómo trabajar con ellas al usarlas en nuestros sistemas.

Te diré algunos consejos desde mi experiencia para que puedas guardar y recuperar timestamps a cualquier base de datos y en cualquier lenguaje de programación.

(más…)