Agregar columna a tabla si no existe en SQLite3 con Golang

En el tutorial de hoy te mostraré una pequeña función que te permite agregar una columna a una tabla solo si la misma no existe.

El motor de base de datos que vamos a usar será SQLite3 pero me imagino que debe funcionar para otros como PostgreSQL o MySQL.

Esto es necesario porque en ocasiones el cliente no puede hacer los cambios a la base de datos (no puede ejecutar sentencias SQL) y además se desean conservar los datos ya existentes.

Por ello es que hoy veremos cómo agregar una columna a una tabla conservando sus datos, y agregarla solo si no existe, verificando la tabla con PRAGMA en SQLite3.

(más…)

PostgreSQL: obtener varias filas de subconsulta en una columna

Hoy vamos a ver algo muy necesario al realizar consultas en bases de datos usando PostgreSQL.

Se trata de traer varios datos en una subconsulta pero colocarlos todos dentro de una columna, codificados de cierta manera. De este modo traemos varios datos de varias filas, por cada fila, como una columna.

Para esto vamos a usar las funciones JSON que PostgreSQL ofrece, en especial la función json_agg.

Con esto vamos a tener varios datos de una subconsulta como una cadena que podremos decodificar más adelante.

Si bien no es lo más adecuado, funciona y es muy rápido.

(más…)

Formatear fecha en MySQL

En este post de bases de datos en MySQL / MariaDB te enseñaré a formatear fechas en MySQL o mejor dicho a cambiar el formato de una fecha al hacer una consulta, usando date_format.

El formato más usado es YYYY-MM-DD pero en ocasiones es necesario cambiarlo a, por ejemplo, DD-MM-YYYY. Justamente de eso se trata este post.

(más…)

Por parzibyte, hace
Reporte de visitas y visitantes en PHP - Contador de visitas web

PHP – Contador de visitas avanzado con gráficas y reporte

Hace un tiempo te mostré un contador de visitas simple en PHP. Ahora te traigo una versión avanzada que brinda además gráficas y reportes.

Reporte de visitas y visitantes en PHP - Contador de visitas web

Reporte de visitas y visitantes en PHP – Contador de visitas web

Como bien sabes, anteriormente hicimos un script para contar los visitantes y visitas, pero fue algo muy simple y no contaba con total precisión.

En el sistema que te mostraré ahora se van a contar las visitas y visitantes, además de mostrar una gráfica con la cantidad de visitas y visitantes que se hayan tenido en un período.

Del mismo modo se van a mostrar las páginas más vistas según determinada fecha, y del mismo modo vamos a ver cómo han visitado determinada página en un rango de fechas.

Todo el sistema que te presentaré es gratuito y open source, así que a través del post colocaré el código fuente.

(más…)

Agregar índice en tabla de MySQL o MariaDB

Agregar índice a tabla en MySQL

En este post sobre bases de datos te enseñaré a agregar un índice a una columna de cualquier tabla en MySQL y MariaDB.

Recuerda que agregamos índices a las columnas para optimizar las consultas. Esto no siempre es necesario, solo lo es cuando vamos a hacer varias consultas (o consultas con varios datos) utilizando un campo en específico y queremos optimizarlas para, en general, hacerlas más rápidas.

(más…)

Por parzibyte, hace
Ejercicios resueltos de consultas con SQL en el gestor MySQL - MariaDB

Ejercicios resueltos con MySQL – Parte 4

Esta es la cuarta entrega donde muestro ejercicios propuestos con su respectiva solución para practicar consultas SQL usando el gestor MySQL o MariaDB. Básicamente se proponen algunos ejercicios de consultas sobre un banco de datos ya definido, y luego se resuelven.

La primera parte está aquí, la segunda aquí y la tercera aquí. Hoy vamos a ver algunas consultas y vamos a trabajar con datos de temperatura y humedad por fecha y hora que recogimos usando el sensor DHT22.

Entre algunas funciones que veremos está MAX, MIN, IF, AVG, SUBSTR y las operaciones usando WHERE, ORDER BY, DISTINCT y LIMIT. Verás que será muy entretenido y que sacaremos algunos ejercicios de todos estos datos.

(más…)

SELECT con 2 counts en MySQL

En este post te mostraré cómo hacer un select con group by pero además contar dos columnas distintas, es decir, hacer una consulta en MySQL usando dos counts (count).

Para ello vamos a usar la función sum pero además usaremos case. De este modo, por ejemplo, podremos contar el total de datos distintos de una columna dependiendo de su valor.

(más…)

CRUD con PHP y MySQLi – Conexión

En este post te mostraré cómo realizar las 4 operaciones de bases de datos usando el lenguaje PHP con la extensión MySQLi (MySQL improved, mejorado) y obviamente el motor MySQL o MariaDB.

Al final verás cómo insertar, obtener, actualizar y eliminar con este ejemplo sencillo que además usa Bootstrap como framework de diseño. En otras palabras veremos cómo hacer una conexión PHP y MySQL con mysqli.

Por cierto, este tutorial también usa sentencias preparadas para evitar inyecciones SQL y así agregar una capa de seguridad (te recomiendo encarecidamente que leas ese post del enlace, pues en él explico el uso de bind_param).

(más…)

Laravel: obtener SQL generado por ORM

En este post te mostraré cómo obtener el código SQL que Laravel ejecuta al usar el ORM. Es decir, obtener el SQL generado por Eloquent. Por ejemplo, si tú haces un DB::table("productos")->all(); te mostraré cómo obtener la consulta generada que sería SELECT * FROM productos.

Todo esto que te menciono es útil al depurar, pues así puedes ver si te estás equivocando en algún método. Además, también sirve para aprender Laravel, pues se puede observar cómo es que los métodos modifican a la consulta interna.

(más…)

Consulta manual con GORM

Otro post que escribo sobre GORM, un ORM de Go. En este caso vamos a ver cómo hacer una consulta manual y un escaneo manual, es decir, algo tipo raw. Algo así como una query personalizada.

Este tipo de consultas son poco comunes pero existen para cuando necesitamos hacer un reporte o traer ciertos datos que no corresponden a un único modelo.

(más…)

Consultas manuales / raw en Laravel

A pesar de que Laravel tiene su ORM y Query Builder en algunas ocasiones vamos a necesitar ejecutar consultas “a mano”, es decir, ejecutar una consulta raw o una query manual.

Una desventaja que traen las consultas raw (que reciben la consulta como cadena) es que son propensas a inyecciones SQL, pero con lo que te mostraré hoy podrás hacer consultas raw en Laravel evitando inyecciones SQL.

(más…)