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…)

Flutter con SQLite3 en Windows

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…)

Guardar números de teléfono en base de datos

En este post vamos a hablar sobre cómo guardar números telefónicos, teléfonos o números de teléfono en las bases de datos, enfocándonos en el tipo de dato.

Esto va a responder a la pregunta de ¿Cuál tipo de dato usar para guardar números de teléfono?.

Lo expuesto aquí es mi opinión y sugerencia, pero al final puedes hacer lo que gustes. Aunque la respuesta parezca obvia, he visto que varios usuarios preguntan esto y por eso he decidido hacer este post.

(más…)

Abrir base de datos SQLite3 cifrada

Abrir base de datos SQLite3 cifrada

En este post te mostraré cómo abrir una base de datos de SQLite3 cifrada o protegida por contraseña (obviamente tomando en cuenta que cuentas con la clave de cifrado).

Suele pasar que intentamos abrir una base de datos de SQLite 3 cifrada, pero al abrirla con el programa DB Browser for SQLite3 nos marca el error de: file is not a database.

Esto sucede porque no se reconoce como una base de datos normal, ya que está cifrada. Así que hoy te enseñaré a explorar una base de datos de SQLite3 cifrada usando DB4S.

(más…)

Dashboard de sistema para estacionamientos - Mostrar gráficas y total de pagos

Sistema para estacionamientos gratuito

En este post te voy a mostrar un programa que acabo de crear (totalmente original) que sirve para el control de estacionamiento o parqueadero.

Básicamente es un software gratuito que sirve para llevar el registro en un parqueadero. Este sistema es gratuito, por lo que puedes usarlo sin ningún costo, además de explorar su código fuente.

Las características generales son:

  • Registro de vehículo, ya sea motocicleta, auto, camionetas, etcétera.
  • Registro de fecha y hora de entrada
  • Cálculo del tiempo que el vehículo pasó estacionado
  • Ajuste de costo por hora con redondeo y tolerancia
  • Reporte de vehículos con tiempo de estancia y ganancia
  • Escritorio con reporte general y gráficas
  • Soporte de impresión de ticket de entrada para comprobante de ingreso y comprobante de pago en impresora térmica

A lo largo de este post te mostraré los detalles del software así como las instrucciones de descarga y la ubicación del código fuente.

Nota: en las capturas de pantalla probablemente verás datos aleatorios o incoherentes, pues los he generado aleatoriamente así que no esperes que tengan sentido, solo son de relleno para mostrarte los módulos.

(más…)

Generar diagrama de base de datos con relaciones

En este post te mostraré un software gratuito que permite crear el diagrama de las tablas y sus relaciones a partir de una base de datos. No sé bien si se puede considerar así, pero esto permite generar el diagrama Entidad relación de manera automática.

Además de eso, esta herramienta permite exportar el diagrama a PDF, PNG, JPG y otros formatos. Entre las bases de datos que soporta, tenemos a:

  • DB2 LUW
  • DB2 z/OS
  • Derby
  • Exasol
  • H2
  • MariaDB
  • Mimer SQL
  • MySQL
  • NuoDB
  • Oracle
  • PostgreSQL
  • Redshift
  • SQLite
  • SQL Server
  • Sybase
  • Vertica

Yo he probado con SQLite y funciona de maravilla. Lo que vamos a usar se llama DbVisualizer.

(más…)

Insertar si no existe en SQL

SQL – Insertar fila si no existe usando WHERE

En este tutorial de SQL te mostraré cómo insertar datos a una tabla solo si el dato no existe, es decir, insertar un dato únicamente una vez usando una subconsulta y WHERE.

Este tutorial aplica para SQL en general, es decir, debería funcionar en cualquier motor, pero solo he podido probarlo en MySQL y SQLite 3.

Nota: no olvides que REPLACE INTO e INSERT IGNORE (o INSERT OR IGNORE) tienen similitudes con este método.

(más…)

PHP y bases de datos: ejemplos y tutoriales de conexión

En este artículo te muestro cómo conectar PHP con varias bases de datos. Aparte de los motores que usan SQL, PHP también puede consumir bases de datos No-SQL como MongoDB.

Conexión de PHP con Bases de datos

PHP es un lenguaje muy popular para la programación del lado del servidor. Funciona para muchísimas cosas, entre ellas, conectar con bases de datos a través del driver PDO por ejemplo.

Este post es un índice para ver cómo PHP puede conectarse con varios motores de bases de datos.

(más…)

6 - Copiar base de datos de dispositivo a PC con adb pull

Extraer base de datos de SQLite en Android sin root

Hoy vamos a ver cómo extraer una base de datos de SQLite de una aplicación de Android para copiarla a nuestra computadora y poder analizarla haciendo consultas; evitando pasar por la API de Java.

No vamos a necesitar root, simplemente tener el ejecutable de adb que se instala cuando comenzamos a programar en Android.

Por favor mira este tutorial en donde se ve cómo agregar adb.exe a la variable PATH de Windows.

(más…)

Columnas con autoincremento en SQLite3

Introducción

El mismo sitio de SQLite3 dice que no recomienda el autoincremento o las columnas auto incrementables. Sin embargo, algunas veces es necesario hacer esto y según yo, no afecta tanto al rendimiento.

Veamos cómo crear una tabla con autoincremento y cómo es que SQLite3 maneja eso internamente. Por cierto, ya sabemos que este motor crea la columna rowid pero no podemos confiar en ella.

(más…)