MySQL – Consultas básicas (I): SELECT e INSERT INTO

Siguiendo con el lenguaje SQL, y más concretamente usando MySQL, en este post voy a mostrar unas cuantas consultas de las más comunes y a la vez más útiles que tendremos que utilizar. Te recuerdo que también escribí tiempo atrás una entrada con los comandos para crear bases de datos y tablas.

Evidentemente puedes usar cualquier base de datos que tengas, pero si quieres seguir exactamente los ejemplos con los mismos datos que yo estoy utilizando, puedes descargar este archivo SQL. Cuando ejecutes el script tendrás la base de datos dbJuegos funcionando en tu equipo. Te recomiendo que eches un vistazo a mi anterior post sobre cómo crear y restaurar backups de bases de datos MySQL.

Para ejecutar las consultas puedes usar directamente el shell de MySQL o hacer uso de MySQL Workbench. Yo prefiero este último método, pues es mucho más cómodo de utilizar y más agradable a la vista 😉

Mostrar todos los registros

La consulta más sencilla es una de las más útiles, pues te muestra todos los registros de una o varias de las tablas de la base de datos. Su sintaxis es:

En nuestra base de datos:

Esto nos mostraría lo siguiente en workbench:
Mostrar todos los resultados

Como verás, las columnas idgenero e idplataf sólo muestran los índices. Al final veremos una versión modificada de esta consulta para que salga más entendible. Mientras tanto, te invito a que hagas las correspondientes consultas sobre las tablas tblgeneros y tblplataf para ver qué géneros y plataformas corresponden cada uno de los índices.

Insertar un nuevo registro

Usamos la siguiente sintaxis para el comando INSERT INTO:

Ahora queremos insertar en nuestra base de datos un juego cuyo titulo es ‘Blood of old’ (los campos de tipo texto los encerramos entre comillas simples), que es del género arcade (idgenero 1) y de la plataforma Steam (idplataf 1). La nota de gamerankings es 0.00 (porque no existe) y en el campo terminado también le ponemos un 0 porque no nos lo hemos pasado aún (si ponemos un 1 significa que ya lo hemos terminado). La consulta definitiva sería la siguiente:


Ufff… se me está quedando mucho más largo de lo que pensé en un principio. Dejo para próximaS entregaS los comandos para actualizar o eliminar un registro ya existente, así como el uso de las cláusulas WHERE y ORDER BY, que resultan indispensables.

¡Ah! Ahora ejecuta la siguiente consulta para ver todos los registros y fíjate en las columnas que contienen el género y la plataforma:

Mostrar todos los registros en potito

Java – Conectar a base de datos MySQL

En las semanas anteriores he comentado cómo instalar MySQL. También creamos una base de datos de ejemplo. Ahora es el momento de conectar a dicha base de datos desde código java. Por si las moscas, a continuación te digo qué posts de los que ya he publicado te van a hacer falta:

Conectar a una base de datos MySQL desde Java, usando el Conector J MySQL (JDBC)

Básicamente los pasos a seguir para lograr la conexión desde un proyecto Java a una base de datos MySQL son los que describo en el esqueleto de código siguiente.

A tener en cuenta

  • Se debe añadir la librería del conector al proyecto. En Eclipse:
    • Botón derecho sobre el nombre del proyecto – Build path – Configure Build path
    • Pestaña Libraries – Add External JARs
    • Navegar hasta donde tenemos nuestro JAR (mysql-connector-java-5.1.32-bin es la última versión en estos momentos) y Aceptar.
  • En el paso 3, cuando creamos el objeto Connection, deberemos sustituir los parámetros por los que correspondan, en este orden: dirección_url_conexión_jdbc, usuario, contraseña
  • En el paso 5 podemos crear tantos objetos ResultSet como necesitemos. En este caso simplemente recupero todos los registros que existen en la tabla tbljuegos, pero la sentencia SQL puede ser cualquier otra, evidentemente.
  • En el paso 6 obtenemos los datos que ya se encuentran en el ResultSet. Es muy importante usar el comando correcto. Por ejemplo: getInt() para recuperar datos de tipo entero, o getString() para datos de tipo VARCHAR. Entre paréntesis podemos indicar el nombre de la columna o campo entre comillas, o bien indicar el índice correspondiente a la columna. Ojo, este índice está basado en 1. Es decir, la primera columna sería el índice 1, la segunda el 2, etc…

Siguiendo este esquema, no deberías encontrar problemas para trabajar con tu base de datos MySQL. En cualquier caso no te preocupes. Estoy preparando un tutorial para crear un proyecto en Eclipse paso a paso, y estará listo dentro de poco. Hasta la próxima.

MySQL – Comandos básicos de SQL

Antes de conectar a una base de datos desde código es conveniente conocer algunos comandos básicos de SQL. En este post comentaré los más comunes, trabajando en MySQL Workbench sobre la base de datos dbjuegos que creamos en el post del pasado 19 de agosto. Así que ve abriendo dicha base de datos y pongámonos manos a la obra.

En Workbench, las sentencias se escriben en la ventana principal y se ejecutan haciendo click en el icono del rayo.

Desactivar modo seguro

Por defecto mysql viene con este parámetro activado para evitar pérdidas de datos. Sin embargo, a nosotros como administradores de la base de datos nos va a molestar más que otra cosa, ya que nos impedirá vaciar tablas, por ejemplo. Así que recomiendo ejecutar el siguiente comando:

Bases de datos

Mostrar las bases de datos

Cambiar de base de datos

Crear base de datos

Como ves, he incluido la cláusula IF EXISTS, que nos permite comprobar si existe la base de datos antes de ejecutar el comando DROP DATABASE.

Tablas

Crear tablas

La semana pasada vimos cómo crear tablas de forma visual. Ahora vamos a crear otra tabla llamada tbldistribuidoras usando exclusivamente el lenguaje SQL.
Nuestra nueva tabla tendrá un campo llamado “id_dist” (entero DE 4 dígitos y autoincremental; primary key) y otro llamado “nombre” (varchar de 45 caracteres).

Cambia a la base de datos dbjuegos (con USE dbjuegos; ) y escribe la sentencia siguiente para crear la nueva tabla:

Eliminar tablas

Rellenar tablas con datos

Introducimos los datos con el comando INSERT INTO . Deben estar en el orden en que tenemos los campos. Es decir, en nuestro caso, primero el id y luego el nombre. Como en este caso el id es autoincremental, lo podemos omitir:

Si queremos forzar el id hubiésemos introducido:

Por favor ten en cuenta que los valores del campo id_dist NO van entrecomillados porque son de tipo entero (INT), mientras que los del campo nombre sí, porque son cadenas (VARCHAR).

Mostrar todos los registros de una tabla

Vaciar datos de tablas

Con el comando DELETE podemos eliminar datos de una tabla (no la tabla en sí):

Los comandos anteriores son los mínimos indispensables para trabajar con mysql. En sucesivas entradas explicaré cómo refinar nuestras consultas, pero con esto ya tenemos suficiente hacer una conexión medio decente a nuestra base de datos.