MySQL: Qué es y para qué sirve
Categoría:
Soporte y Ayuda,
Sysadmin
Fecha:
21/10/2022
En el mundo de la programación es necesario trabajar con grandes cantidades de datos e información. Gracias a las bases de datos, dicha información puede estar almacenada y organizada de manera que puede ser consultada y modificada por una aplicación o web.
Para trabajar con bases de datos existen herramientas de gestión que permiten administrarlas de manera fácil y eficiente. MySQL es un sistema de gestión de bases de datos relacionales de código abierto (open source) que se basa en el modelo "cliente - servidor" y del cual te voy a hablar más en profundidad en este artículo. ¡Sigue leyendo!
[elementor-template id="80835"]
Qué es una base de datos
Antes de nada, voy a repasar un par de conceptos previos a explicarte qué es MySQL. Una base de datos es un conjunto organizado de información que, en este caso, se almacena de forma electrónica dentro de un sistema informático. Existe un tipo de base de datos llamado base de datos relacional, que es el que nos interesa en este artículo. En una base de datos relacional la información está estructurada en tablas (conjunto de datos) con columnas (campos) y filas (registros). Los conjuntos de datos o tablas pueden estar relacionados entre sí a través de claves primarias y foráneas. Estás claves son simplemente unos identificadores que permiten relacionar un conjunto de datos con otro. Un ejemplo básico sería la base de datos de una tienda online, en la que podría haber una tabla para los usuarios y otra para los pedidos. En la tabla "usuarios" estarían, por ejemplo, las columnas de ID, nombre, email y contraseña. Cada fila sería un registro de un nuevo usuario. La fila ID contendría las claves primarias o identificadores únicos de cada usuario. En la tabla "pedidos" estarían las columnas ID (con un identificador único para cada pedido), artículo e ID cliente. La columna "ID cliente" contendría claves foráneas, que se corresponden con el ID del usuario que haya realizado cada pedido. Este es un ejemplo muy básico de una base de datos relacional, pero realmente se pueden manejar y organizar conjuntos de datos mucho más complejos.Qué es SQL
SQL son las siglas en inglés de Lenguaje de Consulta Estructurada (Structured Query Language). Se trata de un tipo de lenguaje de programación que sirve para consultar y modificar datos de una base de datos. Actualmente, es el lenguaje más utilizado para las bases de datos relacionales.Cuando hablamos de SQL es para referirnos al lenguaje en sí y no hay que confundirlo con MySQL, que es un gestor de bases de datos.Con SQL es posible insertar datos, modificarlos, consultarlos o eliminarlos utilizando una serie de comandos o sentencias (SQL Queries). A continuación, te mostraré algunos ejemplos.
Sentencias de SQL con ejemplos
Como te decía, el lenguaje SQL permite el uso de una serie de sentencias mediante las cuales puedes manipular los datos de la base de datos. Para poder explicarte las más importantes, voy a basarme en esta base de datos con una tabla de ejemplo llamada "pokemon": SELECT: Utilizada para consultar y recuperar datos.SELECT * FROM pokemonPara seleccionar todo (el asterisco representa "todo") dentro de la tabla "pokemon". Es decir, todas las columnas (ID, nombre, tipo, altura...) y todos las filas (registros). En este caso, devolvería toda la información. Resultado:
- Bulbasaur - Planta - 0.7 - 6.9 - 45
- Charmander - Fuego - 0.6 - 8.5 - 39
- Squirtle - Agua - 0.5 - 9.0 - 44
- Pikachu - Eléctrico - 0.4 - 6.0 - 35
- Ditto - Normal - 0.3 - 4.0 - 48
- Snorlax - Normal - 2.1 - 460.0 - 160
SELECT nombre, tipo FROM pokemonEn lugar de un asterisco para seleccionar todo, puedes elegir qué columnas quieres seleccionar. El ejemplo anterior devolvería solamente las columnas nombre y tipo, dentro de la tabla: Resultado: Bulbasaur - Planta Charmander - Fuego Squirtle - Agua Pikachu - Eléctrico Ditto - Normal Snorlax - Normal SELECT DISTINCT: Igual que "SELECT" pero evitando valores repetidos.
SELECT DISTINCT tipo FROM pokemonDevolvería toda la columna “tipo” pero sin repetir valores./ Resultado: Planta Fuego Agua Eléctrico Normal WHERE: Sirve para filtrar y extraer registros de la base de datos con determinadas condiciones. Por ejemplo:
SELECT * FROM pokemon WHERE tipo='Normal'Devolvería todo (ID, nombre, tipo, altura, peso y HP) de la tabla “pokemon” pero solamente de los que su campo tipo sea “normal”. Es decir: Resultado: 5 - Ditto - Normal - 0.3 - 4.0 - 48 6 - Snorlax - Normal - 2.1 - 460.0 - 160 AND, OR y NOT: Son operadores que se pueden usar junto con “WHERE”.
SELECT nombre FROM pokemon WHERE tipo='Normal' AND peso=4.0Resultado: Ditto
SELECT nombre FROM pokemon WHERE tipo='Agua' OR tipo=’Normal’Resultado: Squirtle Ditto Snorlax
SELECT nombre FROM pokemon WHERE NOT tipo=’Normal’Resultado: Bulbasaur Charmander Squirtle Pikachu ORDER BY: Para ordenar la consulta realizada según un valor o valores, tanto de manera ascendente (ASC) cómo descendente (DESC).
SELECT nombre,hp FROM pokemon ORDER BY hp ASCResultado: Pikachu - 35 Charmander - 39 Squirtle - 44 Bulbasaur - 45 Ditto - 48 Snorlax - 160 INSERT INTO: Para añadir un registro nuevo a una tabla de la base de datos. Hay que indicar las columnas con sus respectivos valores.
INSERT INTO pokemon (nombre, tipo, altura, peso, hp) VALUES ('Mewtwo', 'Psíquico', 2.0, 122.0, 106)El código anterior insertaría una nueva fila en la tabla “pokemon” con el siguiente registro: 7 - Mewtwo - Psíquico - 2.0 - 122.0 - 106 Cómo puedes ver, no he especificado el ID en la sentencia SQL. Esto es porque en este caso el ID es la clave primaria y es autoincremental, por lo que se añade automáticamente en cada registro. UPDATE: Para modificar un registro existente en una tabla de la base de datos. Hay que indicar con el comando SET las columnas que queremos modificar, el valor correspondiente y el registro que quieres actualizar. Para esto último, es recomendable utilizar el campo id ya que siempre va a ser un valor único para cada registro.
UPDATE pokemon SET altura = 3.0, hp= 305 WHERE id = 6El código anterior modificaría el registro: 6 - Snorlax - Normal - 2.1 - 460.0 - 160 Con estos nuevos parámetros: 6 - Snorlax - Normal - 3.0 - 460.0 - 305
Es MUY IMPORTANTE que utilices “WHERE” para indicar sobre qué registro vas a hacer los cambios; si no, se actualizarán todos los registros.DELETE: Para eliminar registros de una tabla de la base de datos.
DELETE FROM pokemon WHERE tipo='normal'Con el código anterior eliminarías de la tabla “pokemon” todos los registros cuyo tipo sea “normal”. Al igual que con “UPDATE”, es importante que utilices “WHERE”. De lo contrario, eliminarás todos los registros de la tabla. Estos son solo algunos ejemplos simples de sentencias SQL que sirven para consultar y alterar tablas de una base de datos. Pero, además de estas, existen otras sentencias (cómo los “JOIN”) para realizar consultas más avanzadas. Además, también es posible crear tablas nuevas con “CREATE TABLE” o incluso una nueva base de datos con “CREATE DATABASE”.
Qué es MySQL
Ahora sí, vamos al lío y vamos a ver qué es MySQL. MySQL es probablemente el sistema de gestión de bases de datos relacionales de código abierto más conocido del mercado. Fue desarrollado en 1995 por la empresa MySQL AB, que fue adquirida en 2008 por Sun Microsystems y a su vez por Oracle Corporation en 2010. Un sistema de gestión de bases de datos relacionales o RDBMS como MySQL es simplemente un software pensado para gestionar y administrar bases de datos. MySQL es el RDBMS más utilizado en aplicaciones web y se puede ejecutar en diferentes sistemas operativos. Por ejemplo, es utilizado en algunos de los CMS más conocidos como WordPress, Drupal o Joomla. A estas alturas, puede que te estés preguntando cuál es la diferencia entre SQL y MySQL. La respuesta es sencilla:- SQL es el lenguaje que se utiliza para consultar y manipular las bases de datos.
- MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) que sirve para administrar una base de datos utilizando SQL.
- Tinyint, Int, Smallint, Mediumint, Bigint: Números enteros con signo positivo o negativo.
- Float y Double: Para números con decimales.
- Decimal: Parecido a “float” y “double” pero, al contrario que estos, con “decimal” los cálculos son exactos. Por ello, es recomendado para almacenar precios.
- Boolean: Número entero con valor 0 (falso) o 1 (verdadero).
- Char y Varchar: Para almacenar cadenas de texto. “Char” para cadenas de tamaño fijo y “Varchar” para tamaño variable.
- Tinyblob, Blob, Mediumblob y Longblob: Para guardar información en formato binario como imágenes, audio, archivos, etc.
- Set: Para almacenar un conjunto de valores de una lista (hasta un máximo de 64).
- Enum: Almacena valores de una lista enumerada previamente definida. Es útil, por ejemplo, para almacenar los roles de usuario (administrador, suscriptor, etc.).
- Tinytext, Text, Mediumtext y Longtext: Para almacenar grandes cantidades de texto.
- Date: Para almacenar fechas con el formato año/mes/día.
- Datetime: Para almacenar fecha y hora con el formato año/mes/día/horas/minutos/segundos.
- Time: Para almacenar una hora con el formato horas/minutos/segundos.
- Timestamp: Es parecido a “datetime” pero con fecha y hora UTC.
- Year: Para almacenar el año.
- Mejoras en el rendimiento: Al hacer consultas más ligeras sobre consultas más complejas, se consigue optimizar la base de datos MySQL.
- Mejoras en la privacidad: Ya que puedes dar al usuario sólo la información que consideres oportuna y no toda la tabla.
- Entorno de pruebas: Puedes realizar pruebas sin miedo a romper nada, ya que estás trabajando sobre tablas virtuales.
- Procedimientos almacenados: Son fragmentos de código que puedes reutilizar para tareas repetitivas.
- Funciones almacenadas: Son un conjunto de operaciones SQL que devuelven un solo valor.
- Triggers: Disparador que se activa cuando ocurre algún evento (insertar, actualizar, borrar, etc.) en una tabla.