Introducción a SQL y MySQL: bases de datos, tablas, registros y consultas desde cero


Cuando una aplicación necesita guardar información de forma permanente, ordenada y consultable, normalmente termina utilizando una base de datos. Un sistema de alumnos, una tienda, una red social, un banco o una plataforma médica tienen algo en común: necesitan almacenar datos y recuperarlos de forma confiable.

En esta primera guía vamos a construir una base conceptual sólida antes de empezar con las consultas. La idea es entender qué problema resuelven las bases de datos, qué es SQL, qué es MySQL y cómo se organiza la información.

¿Qué problema resuelve una base de datos?

Imaginemos una escuela que guarda sus alumnos en archivos de texto separados. Cada archivo podría contener nombre, documento, curso y teléfono. Al principio puede funcionar, pero enseguida aparecen problemas:

  • ¿cómo buscamos rápidamente a todos los alumnos de un curso?
  • ¿cómo evitamos cargar dos veces al mismo alumno?
  • ¿cómo actualizamos un teléfono sin modificar varios archivos?
  • ¿cómo relacionamos alumnos con cursos, profesores y materias?
  • ¿cómo permitimos que varias personas trabajen al mismo tiempo sin romper la información?

Una base de datos está diseñada precisamente para resolver ese tipo de problemas.

Dato, información y estructura

Un dato es un valor individual: por ejemplo 22, Ana o Santa Rosa. Cuando varios datos se organizan y adquieren contexto, se transforman en información útil.

Por ejemplo:

nombre: Ana
edad: 22
ciudad: Santa Rosa

En una base de datos, esos valores no se guardan de manera arbitraria: se organizan dentro de estructuras definidas.

¿Qué es una base de datos?

Una base de datos es un conjunto organizado de información que puede almacenarse, consultarse, modificarse y relacionarse de forma eficiente.

No es simplemente un archivo con datos. Una base de datos permite aplicar reglas, relaciones, permisos, restricciones y transacciones.

¿Cómo funciona una base de datos en una aplicación?

En una aplicación típica, el usuario no habla directamente con MySQL. La aplicación recibe una acción, construye una consulta SQL, la envía al servidor de base de datos y recibe un resultado.

Podemos imaginar el flujo así:

Usuario → Aplicación → SQL → MySQL → Resultado → Aplicación → Usuario

Esta separación es importante porque el motor de base de datos se especializa en almacenar, validar, buscar y relacionar información, mientras que la aplicación se ocupa de la interfaz y las reglas del sistema.

¿Qué es un SGBD?

Un Sistema Gestor de Bases de Datos o SGBD es el software encargado de administrar una base de datos.

Entre otras tareas, se ocupa de:

  • guardar y recuperar información;
  • procesar consultas;
  • controlar accesos;
  • mantener integridad;
  • gestionar concurrencia;
  • manejar transacciones;
  • optimizar consultas.

MySQL es un SGBD relacional.

¿Qué es SQL?

SQL significa Structured Query Language. Es el lenguaje que usamos para comunicarnos con bases de datos relacionales.

Con SQL podemos:

  • crear tablas;
  • insertar datos;
  • consultar información;
  • modificar registros;
  • eliminar datos;
  • crear relaciones;
  • administrar permisos;
  • controlar transacciones.

SQL es un lenguaje declarativo

Esto significa que normalmente indicamos qué resultado queremos, y el motor decide cómo obtenerlo.

Por ejemplo:

SELECT nombre, apellido
FROM alumnos
WHERE edad > 18;

Nosotros pedimos “los alumnos mayores de 18”. MySQL decide cómo localizar esos registros.

SQL y MySQL no son lo mismo

SQL es el lenguaje. MySQL es uno de los motores que implementan ese lenguaje.

También existen otros motores como PostgreSQL, SQL Server, Oracle o MariaDB. Todos utilizan SQL, aunque cada uno posee extensiones y diferencias propias.

Base de datos, esquema y tabla: no son lo mismo

Conviene distinguir tres conceptos:

  • base de datos: el conjunto general de información;
  • esquema: la organización lógica de objetos y estructuras;
  • tabla: una estructura concreta formada por columnas y filas.

En MySQL, en el uso cotidiano, los términos base de datos y schema suelen tratarse prácticamente como equivalentes.

¿Qué es una base de datos relacional?

Una base de datos relacional organiza la información en tablas. Esas tablas pueden relacionarse mediante claves.

Por ejemplo, en un sistema educativo podríamos tener:

  • alumnos;
  • cursos;
  • profesores;
  • inscripciones.

En lugar de guardar toda la información repetida en una única tabla enorme, se divide de forma lógica y después se relaciona.

Entidad, atributo y registro

Una entidad representa algo del mundo real que queremos guardar. Por ejemplo, un alumno.

Sus atributos podrían ser nombre, apellido, fecha de nacimiento o email.

Un registro es una instancia concreta de esa entidad.

Tabla, fila y columna

En una tabla:

  • cada fila representa un registro;
  • cada columna representa un atributo;
  • la tabla completa representa una entidad o relación.

Clave primaria

Una clave primaria identifica de forma única cada fila.

id INT AUTO_INCREMENT PRIMARY KEY

Dos registros no pueden compartir el mismo valor de clave primaria.

Clave foránea

Una clave foránea permite relacionar una tabla con otra.

Por ejemplo, un alumno puede guardar un curso_id que apunte al id de la tabla cursos.

¿Por qué relacionar tablas en lugar de repetir datos?

Supongamos que 500 alumnos pertenecen al mismo curso. Si escribimos el nombre completo del curso en cada alumno, repetimos el mismo dato 500 veces.

En cambio, podemos guardar el curso una sola vez:

cursos
id | nombre
1  | Programación

alumnos
id | nombre | curso_id
1  | Ana    | 1
2  | Juan   | 1

El valor curso_id = 1 significa que ambos alumnos apuntan al mismo curso. Si el nombre del curso cambia, se modifica una sola fila.

Relaciones entre tablas

Las relaciones principales son:

  • uno a uno: un registro se relaciona con uno;
  • uno a muchos: un registro se relaciona con muchos;
  • muchos a muchos: varios registros de una tabla se relacionan con varios de otra.

Concurrencia e integridad

Una de las grandes diferencias frente a guardar información en archivos sueltos es que un SGBD está preparado para que varios usuarios trabajen al mismo tiempo.

Además, puede hacer cumplir reglas. Por ejemplo, puede impedir que dos usuarios tengan el mismo email si definimos una restricción UNIQUE, o evitar que un alumno apunte a un curso inexistente mediante una clave foránea.

Persistencia y transacciones

Los datos sobreviven al cierre de la aplicación porque se almacenan de forma persistente. Y cuando una operación requiere varios pasos, las transacciones permiten tratarlos como una sola unidad: o se completan todos o se deshacen.

Ventajas de una base de datos relacional

  • organización clara;
  • menos duplicación innecesaria;
  • integridad mediante claves y restricciones;
  • consultas potentes;
  • seguridad;
  • transacciones;
  • mantenimiento más sencillo;
  • capacidad para manejar grandes volúmenes de información.

Tipos de instrucciones SQL

SQL suele dividirse conceptualmente en grupos:

  • DDL: define estructuras. Ejemplo: CREATE TABLE.
  • DML: modifica datos. Ejemplo: INSERT, UPDATE, DELETE.
  • DQL: consulta datos. Principalmente SELECT.
  • TCL: controla transacciones. Ejemplo: COMMIT, ROLLBACK.
  • DCL: administra permisos y accesos.

Crear nuestra primera base

CREATE DATABASE colegio;
USE colegio;

Crear una tabla

CREATE TABLE alumnos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100),
    apellido VARCHAR(100),
    edad INT,
    email VARCHAR(150)
);

Insertar un registro

INSERT INTO alumnos (nombre, apellido, edad, email)
VALUES ('Ana', 'Pérez', 22, 'ana@email.com');

Consultar datos

SELECT * FROM alumnos;

El asterisco indica que queremos todas las columnas.

Modificar datos

UPDATE alumnos
SET edad = 23
WHERE id = 1;

Eliminar datos

DELETE FROM alumnos
WHERE id = 1;

CRUD

Estas cuatro operaciones fundamentales se conocen como CRUD:

  • Create: crear;
  • Read: leer;
  • Update: modificar;
  • Delete: eliminar.

Ejercicio práctico

Creá una base llamada biblioteca y una tabla libros con:

  • id;
  • título;
  • autor;
  • año;
  • disponible.

¿Qué sigue?

En la próxima guía vamos a aprender a consultar datos con SELECT, aplicar filtros con WHERE y ordenar resultados.

¿Te sirvió esta guía? ☕

Si este contenido te ayudó y querés apoyar a Club Programador para seguir publicando ejercicios, proyectos y guías gratuitas, podés colaborar mediante:

☕ Apoyar con Mercado Pago

🌎 Apoyar con PayPal


Ruta SQL / MySQL

Ver todos los contenidos de SQL / MySQL

SELECT en SQL →


Descubre más desde Club Programador

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Un comentario en “Introducción a SQL y MySQL: bases de datos, tablas, registros y consultas desde cero”

Deja un comentario

Descubre más desde Club Programador

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo