En la sección anterior detallamos que una base de datos es todo conjunto de menciones textuales de datos vinculados con otros datos que le añaden significado.
También revisamos el aporte de E.F. Codd (1923-2003) y su modelo de base de datos relacional (o relational database management system, RDBMS en inglés); en la cual tablas, columnas y filas guardan datos creando significado útil junto con otros datos.
Ahora justificaremos qué sistema de base de datos usaremos y qué versión (basado en el estándart SQL) usaremos para la práctica de la sintaxis. Pero aclaremos algo: una base de datos es una estructura visual para entender cómo se organizan los datos; mientras que un sistema de base de datos es uno o más softwares dedicados a la gestión y organización de una o más bases de datos (Silva, 2019, p. 37).
SQL ESTÁNDART: LA VERSIÓN PADRE Y SUS HIJOS
Veamos al lenguaje SQL como un padre conceptual público de otras versiones-hijo de SQL. A esa versión padre se la conoce como estándart SQL. Fue adoptada en 1986 por la American National Standards Institute (ANSI), una entidad de gobierno estadounidense que define correctas normas de producción en tecnología o comercio (IBM Informix, 2021). Y esa entidad fijó una sintaxis base para SQL estándart (para crear bases de datos, tablas, etcétera) pero también las mínimas condiciones para los fabricantes de software que deseen intepretar esa versión SQL.
En la web existen decenas de utilidades para practicar o usar base de datos con SQL estándart. A esas aplicaciones se las conoce como motor SQL en línea (online SQL engine), como sqliteonline (de pago), o compliador o editor SQL, como W3C SQL Editor (gratis), o como el editor SQL en tiempo real (Live SQL Editor) de la empresa Oracle (gratuito en el modo de prácticas de código), pero donde será será necesario crear una cuenta. Pero deberemos dar atención al tipo de versión y a las variaciones en la sintaxis que cada versión presente.
El problema de algunos softwares para estándart SQL en línea es la demora en los resultados. Para la práctica en SQL estándart se recomienda el Live SQL Editor de Oracle por ser el más veloz en los resultados. Pero se debe atender a las variaciones o mejoras en la sintaxis SQL que la empresa Oracle ha generado para esa herramienta en línea.
SENTENCIAS Y COMANDOS SQL
Expresar o sentenciar es definir mediante sintaxis de código futuras alteraciones de valores. En el lenguaje estándart SQL las sentencias definen los datos que entran y se consultan en cada base de datos. Un comando es una palabra clave que ejecuta eventos ya preconfigurados para explorar los datos de las tablas. Según Beaulieu (2019, p. 39), el lenguaje estándart SQL está conformado por lo siguiente:
- Sentencias de esquema o de diseño (organizan y estructuran datos que se alojarán en datos internos del sistema llamados metadatos)
- Sentencias de datos (permiten alterar los diseños de esquema)
- Sentencias de trasacción o intercambio (controlan intercambios de datos)
- Comandos select, update, insert, delete
Una vez justificada la versión estándart SQL que usaremos, se revisará también la sintaxis de las sentencias y comandos de esa versión.
¿CUÁL VERSIÓN DE SQL USAREMOS Y CÓMO LA ACTIVAREMOS?
Aunque el lenguaje base sea SQL estándart, existe media docena de versiones, unas bajo una licencia propietaria y otras de código libre, pero casi todas con ligeras variaciones en su sintaxis según cada versión o empresa comercial. En otras palabras, debemos escoger (según nuestras necesidades técnicas) qué versión SQL adoptaremos. Pues una vez elegida deberemos respetar su correcta sintaxis para así extraerle provecho.
¿QUÉ VERSIÓN ADOPTAREMOS PARA EL RESTO DE SECCIONES?
MySQL 8 será la versión (y su sintaxis) que usaremos en las siguientes secciones. Esa versión está bien documentada tanto en sintaxis como en gestionador de tipos de datos disponibles para registros. Otras herramientas para práctica de MySQL 8 (pero no para desarrollo profesional) son onecompiler.com/mysql y mysql-compiler, entre muchos otros.
¿QUÉ SOFTWARE INSTALABLE EN COMPUTADOR USAR PARA BASE DE DATOS?
Cualquier software necesario para el uso de base de datos de forma local (desde nuestros equipos) cumplirá al menos estas funciones: interpretará sentencias y comandos, permitirá editar y consultar desde la versión elegida de SQL (en nuestro caso, desde MySQL) usando una interfaz visual comprensible, y convertirá nuestro computador en un contenedor seguro de base de datos relacionales.
¿QUÉ SOFTWARE EXISTE PARA DISEÑO, PRÁCTICA Y GESTIÓN DE BASE DE DATOS PARA LA VERSIÓN MYSQL?
Un motor de base de datos (un database engine, o un generador e intérprete de MySQL) instalable en nuestros computadores son: HeidiSQL (solo para Windows), Valentina Studio o Sequel Ace. Todos ellos fáciles de instalar y de entender su interfaz.
Elegimos ara las siguientes secciones los siguientes softwares accesibles para la práctica de MySQL: MySQLWorkbench funcionará como un motor (un ejecutor) de base de datos e intérprete del código de MySQL; y DBnging como un servidor local (es decir, para administrar las bases de datos desde nuestro computador).
Video tutoriales de Carlos Master Web , Roelcode y muchos otros explican paso a paso cómo instalar MySQLWorkbench y otros softwares útiles para gestión de base de datos.
Otros softwares similares y para sistemas operativos populares son XAMPP y Docker. Este último de gran alcance, pero requiere por sí mismo una mayor revisón de su documentación.
Una vez instalados esos programas (o usando las versiones en línea) aplicaremos la sintaxis de MySQL. Las siguientes secciones intentarán explicarlo para creación de tablas, creación y edición de base de datos, actualización y consulta. Al final de cada sección expongo la bibliografía revisada y sus vínculos correspondientes.
En los siguientes ejemplos de sintaxis de código MySQL escribiremos los comentarios (en el editor de código de MySQL WorkBench) en la forma (-- Texto o comentario bla bla...)
. Los comentarios son comprensibles solo por nosotros, no serán tomados en cuenta por el intérprete de MySQL.
-- Este es un comentario
-- Lo que sigue sí será interpretado por el sistema MySQL
CREATE DATABASE rock_Guayaco;
-- 👀 A mi me gusta el encebollado con pan de sal.
EL INICIO DE TODA BASE DE DATOS
Crear con CREATE DATABASE y borrar con DROP DATABASE
Crear CREATE DATABASE declaramos el nombre (sin espacios) de una base de datos relacional. DROP DATABASE borra toda existencia y contenido de una base de datos.
En SQL
--COMENTARIO: Creamos base de datos
CREATE DATABASE rock_Guayaco;
--Borramos base de datos
DROP DATABASE rock_Guayaco;
-- ERRORES !
-- NO deben haber espacios en el nombre
-- CREATE DATABASE soy un bacan;
-- NI iniciar con números
-- CREATE DATABASE 000soy_bacan;
Crear tablas con CREATE TABLE
No confundamos base de datos con tablas. La base de datos aloja tablas. Pero una tabla solo aloja datos.
CREATE TABLE declara (nombra, menciona) una tabla de datos junto con cada tipo de dato que permitirá insertar. Luego, el comando USE le dice al sistema que 'elegimos una tabla para insertar datos'. Hasta aquí, solo declaramos los nombres de los casilleros para guardar datos, pero aún no hay datos.
En SQL
CREATE DATABASE rock_Guayaco;
-- Insertar tabla en esta base de datos
USE rock_Guayaco;
-- Esta será una tabla (con un nombre único) pero vacía
CREATE TABLE Bandas (
-- Columna, Identificador único: tipo dato INT (entero), auto incrementado
bandas_id int,
-- Columna, tipo de dato varchar con máximo 20 caracteres
nombre varchar(20),
-- Columna, tipo de dato varchar con máximo 20 caracteres
ciudad varchar(15)
);
Hasta aquí, la tabla rock_Guayaco
recién creada tendría (en forma de concepto visual) solo columnas, aún falta ingresar los datos.
La columna bandas_id
es para un dato exclusivo y único que identifique cada cada fila con su nuevo dato insertado; la columna NOMBRE
para cada nombre de banda de rock guayaquileño (incluso si son nombres similares, el dato bandas_id
lo diferenciará); y finalmente la columna CIUDAD
para su respectiva ubicación.
Adelanto aquí un tema importante que poco a poco será explicado: cada columna ya tiene definidos los tipos de datos permitidos. Los datos para bandas_id solo solo serán números (operador int
); para nombre, solo hasta 20 caracteres (operador varchar(20)
); y para ciudad solo hasta 15 caracteres (operador varchar(15)
). Dada esa definición de tipos de datos, lo ingresado será rechazado si:
- Ingresamos un número donde deberían ser solo letras
- Ingresamos letras donde deberían ser solo números
- Ingresamos una palabra de más de 20 caracteres donde solo se permiten 20 caracteres.
- Ingresamos una palabra de más de 15 caracteres donde solo se permiten 15 caracteres.
Es así que la tabla Bandas
de la base de datos rock_Guayaco
tendrá las siguientes columnas vacías:
En la siguiente sección se revisará otros tipos de claves (primarias y foráneas) y más sintaxis de MySQL para base de datos relacionales.
BIBLIOGRAFÍA
Beaulieu, Alan (2019). Learning SQL, 3ra Ed., O’Reilly Media.Silva, Rick (2019). MYSQL CRASH COURSE, A Hands-on Introduction to Database Development. No Starch Press, Inc.
IBM Informix (2021). Standard SQL. Informix® 12.10.