Bases de datos SQL

Qué es una base de datos y cuál elegir

Lección 1 de 8 · 12 min

No es una hoja de cálculo grande

Casi todo el mundo llega a las bases de datos desde Excel, y con una idea razonable y equivocada: que una base de datos es lo que se usa cuando la hoja se queda pequeña.

El tamaño es lo de menos. La diferencia de fondo es que una hoja de cálculo acepta cualquier cosa que escribas, y una base de datos se niega a guardar lo que no tiene sentido.

Tres cosas que una hoja no puede hacer

Rechazar datos inválidos

Si una columna es de fechas, no entra «pendiente». Si un pedido tiene que pertenecer a un cliente que existe, no se puede guardar apuntando a uno que no existe.

La base de datos lo impide, no lo señala en rojo.

Varias personas a la vez

Diez personas escribiendo en la misma tabla al mismo tiempo, sin pisarse y sin archivos llamados inventario_copia_de_Ana.

Es lo que convierte un archivo en un sistema.

Todo o nada

Un traspaso entre dos cuentas son dos operaciones. Si la segunda falla, la primera se deshace sola.

En una hoja te quedas con el dinero descontado y no abonado. Eso se ve en la lección 8.

Por eso las reglas de la lección 3 -tipos, obligatoriedad, claves- no son burocracia: son el producto. Una base de datos sin reglas es una hoja de cálculo más lenta.

Qué es SQL, y por qué se aprende una vez

SQL es el idioma con el que se le pide algo a una base de datos. Y tiene una virtud enorme: es un estándar, así que lo esencial -SELECT, INSERT, JOIN, GROUP BY- se escribe igual en los tres motores de este curso.

Lo que cambia son los bordes: cómo se numera sola una columna, cómo se limitan los resultados, cómo se juntan dos textos, cómo se manejan las fechas. Ahí es donde una consulta migrada se rompe, y eso es justo lo que este curso pone lado a lado.

Los tres motores

Hay muchos; estos tres cubren la inmensa mayoría de lo que te vas a encontrar trabajando.

En qué se distingue cada uno

PostgreSQL

Libre y gratuito, sin ediciones de pago ni licencias por procesador. La versión actual es la 18, y cada versión mayor tiene cinco años de soporte.

Es el más estricto con los datos y el más completo en funciones. Es el que usa este curso.

MySQL

El más extendido en aplicaciones web y el que traen casi todos los alojamientos compartidos.

Tiene versiones de soporte prolongado -8.4 y 9.7-. Es propiedad de Oracle, con una edición comunitaria gratuita y otras de pago.

SQL Server

De Microsoft, el habitual en empresas con infraestructura Windows y aplicaciones .NET.

Licencia de pago, con una edición Express gratuita y limitada. Es el que más se separa de los otros dos en sintaxis.

La elección casi nunca es libre, y conviene saberlo antes de perder una semana comparando. Normalmente la decide el entorno: la aplicación que vas a instalar pide uno concreto, el alojamiento solo ofrece MySQL, o la empresa ya tiene licencias de SQL Server y personal que lo conoce.

Cuando la elección es libre y no hay ninguna razón que empuje hacia otro lado, PostgreSQL es una respuesta difícil de discutir: gratuito, muy capaz y sin sorpresas de licencia.

El vocabulario mínimo

Cinco palabras y ya se entiende cualquier documentación. Van con su equivalente en hoja de cálculo, que es de donde vienes.

De la hoja de cálculo a la base de datos

Piensa el equivalente antes de voltear la tarjeta.

Cómo está montado este curso

Cada vez que los tres motores hacen algo distinto, vas a ver los tres bloques de código juntos. No para memorizarlos, sino para reconocer la diferencia cuando te la encuentres.

Para practicar necesitas uno instalado, y el curso usa PostgreSQL: es gratuito, no pide registro y se instala en cualquier sistema. Todo lo que aprendas sirve para los otros dos, con las diferencias señaladas en su sitio.

La misma consulta, idéntica en los tres
SELECT nombre, ciudad, total
FROM ventas
WHERE total > 1000000
ORDER BY total DESC;

Esa consulta funciona sin cambiar una letra en PostgreSQL, en MySQL y en SQL Server. La mayor parte del SQL que vas a escribir es así de portátil: por eso las diferencias, cuando aparecen, sorprenden tanto.

Dudas del principio

¿Tengo que saber programar?

No. SQL no es un lenguaje de programación al uso: se le describe lo que quieres, no los pasos para conseguirlo.

Quien maneja fórmulas de Excel tiene más camino andado del que cree.

¿Y las bases de datos NoSQL?

Existen -MongoDB, Redis, Cassandra- y resuelven otros problemas: datos sin estructura fija o escala muy grande.

No sustituyen a SQL. Para datos con relaciones -clientes, pedidos, facturas-, lo relacional sigue siendo lo adecuado, y es lo que vas a encontrarte en el 90% de los trabajos.

¿SQL se escribe en mayúsculas?

Es una convención, no una obligación: se escriben en mayúsculas las palabras del lenguaje y en minúsculas los nombres de tablas y columnas.

Sirve para leer de un vistazo dónde está la orden y dónde tus datos.

¿Qué pasa con MariaDB?

Es una derivación de MySQL, nacida cuando Oracle lo compró. Comparte casi toda la sintaxis, así que todo lo que veas de MySQL en este curso le aplica.

Compruébalo tú mismo

¿Cuál es la diferencia de fondo entre una base de datos y una hoja de cálculo?

Vas a montar una aplicación nueva y no hay ninguna restricción de entorno. ¿Qué motor es una elección segura?

¿Es SQL igual en los tres motores?

Lo que sigue

En la siguiente lección instalas PostgreSQL, te conectas desde la terminal -verás también cómo se conecta uno a los otros dos- y creas tu primera base de datos. A partir de ahí, todo el curso es práctica.

Siguiente: Instalar y conectarse

Continuar