Hola! Este es el mapa para cuando yo ya no esté al lado
Este libro te dio lo que cambia entre los cuatro motores. Lo que viene ahora son los sitios donde mirar cuando te toque el quinto caso, el que no está aquí 🐣
Y una cosa antes de las listas: la documentación oficial de cada motor es la única fuente que no envejece. Los tutoriales sueltos de internet están llenos de sintaxis de MySQL 5.6 y de respuestas de hace doce años, y por eso tanta gente pega código que no corre.
Documentación oficial de los cuatro
Esta tabla es la que yo tendría abierta en pestañas. Está toda en inglés menos algunos trozos, y aun así es lo primero que hay que consultar.
| Motor | Dónde | Lo que más se busca |
|---|---|---|
| PostgreSQL | postgresql.org/docs | Funciones y operadores |
| MySQL | dev.mysql.com/doc/refman | Funciones de fecha |
| SQL Server | learn.microsoft.com, referencia de T-SQL | Funciones de T-SQL |
| SQLite | sqlite.org/docs | Sintaxis del lenguaje |
La de SQLite tiene algo que las otras no: una página entera dedicada a sus
rarezas, escrita por sus propios autores. Ahí está explicado por qué el
tipado es flexible, por qué las claves foráneas vienen apagadas y por qué
GROUP BY deja pasar lo que otros no. Es de lo más honesto que he
visto en documentación de software.
Lo que este libro afirma sobre cada motor
Estas son las páginas concretas de donde salen las tablas de dialectos, por si quieres comprobar alguna o leerla completa.
- 🐘 PostgreSQL. El
ON CONFLICTdel capítulo 11 está en la página de INSERT, y elEXPLAINdel capítulo 12 tiene su propio capítulo sobre cómo leerlo. - 🐬 MySQL. Lo de
ONLY_FULL_GROUP_BYdel capítulo 6 está en el manejo de GROUP BY, y el commit implícito del capítulo 11 tiene su propia página con la lista completa de sentencias que lo provocan. - 🪟 SQL Server. El
MERGEdel capítulo 11 está en su página de referencia, y las tablasinsertedydeleteddel capítulo 13, en la de disparadores. - 🪶 SQLite. Que no tenga tipo fecha está en
los tipos de datos, las claves foráneas apagadas
en su página de claves foráneas, y el
AUTOINCREMENTdel capítulo 10 en la página que explica por qué casi nunca lo necesitas.
Cómo se lee una página de documentación sin agobiarse
Porque la primera vez asusta y es normal 💛
- 1️⃣ Vete directo a los ejemplos. Casi todas las páginas los tienen abajo del todo. Se entienden mucho antes que la descripción formal.
- 2️⃣ Comprueba la versión. Arriba de la página siempre dice cuál es. La mitad de los "no me funciona" son leer la doc de la 16 teniendo la 13.
- 3️⃣ Los corchetes son opcionales. En
SELECT [DISTINCT] columna [, ...], lo de dentro de corchetes puedes no ponerlo. Esa notación es la misma en las cuatro documentaciones. - 4️⃣ Busca dentro del sitio, no en el buscador.
site:postgresql.org string_aggte lleva a la fuente; buscarstring_agga secas te lleva a un foro de 2013.
El estándar, para cuando quieras saber quién tiene razón
SQL es una norma ISO de verdad, la ISO/IEC 9075, y va por partes que se actualizan cada pocos años. La norma cuesta dinero y casi nadie la lee, así que en la práctica lo que se hace es mirar qué tienen tres de los cuatro motores y asumir que eso es lo estándar.
Lo que sí es gratis y útil es la historia de las versiones del estándar, que te dice en qué año se añadió cada cosa. Ahí se ve por qué las funciones de ventana se escriben igual en los cuatro (llegaron tarde y ya estandarizadas) y por qué los tipos de datos no (venían de antes de la norma).
Dónde practicar con datos de verdad
Cuando tienda.db se te quede chica, que se te va a quedar:
- 🇵🇪 Datos Abiertos del Perú. Datos oficiales peruanos, que es lo más parecido a lo que te va a tocar en el trabajo.
- 🌎 Datasets de Kaggle. Miles, de todo tipo, con buscador.
- 🏛️ Repositorio de la Universidad de California en Irvine. Los clásicos de siempre, bien documentados.
Y un consejo que vale más que los tres enlaces: si tienes acceso a datos de tu propio trabajo, practica con esos. Aprendes SQL y de paso entiendes tu negocio, que es exactamente por lo que te van a pagar 💰
Los clientes de SQL que uso
Del capítulo 2, con sus enlaces por si te los saltaste:
- 🪶 DB Browser for SQLite. Gratis, ligero y suficiente para todo este libro.
- 🔧 DBeaver Community. Gratis y se conecta a los cuatro motores desde la misma ventana, que para este libro es perfecto.
- 🐘 pgAdmin para PostgreSQL y SQL Server Management Studio para SQL Server, los dos oficiales y gratis.
Qué leer después de este libro
Cuatro que valen la pena de verdad. Los cuatro están en inglés, para que lo sepas antes.
| Libro | Autoría | Para qué |
|---|---|---|
| SQL Performance Explained (2011) | Markus Winand | Índices y planes, para los cuatro motores a la vez. La versión web es Use The Index, Luke y es gratis |
| SQL for Data Analysis (2021) | Cathy Tanimura, O'Reilly | SQL pensado para analizar, no para programar aplicaciones |
| Designing Data-Intensive Applications (2017) | Martin Kleppmann, O'Reilly | Qué pasa por debajo: transacciones, réplicas, consistencia |
| The Art of PostgreSQL (2020) | Dimitri Fontaine | Si te toca PostgreSQL y quieres exprimirlo |
El primero es el que más recomiendo si tu problema es que algo va lento, y su versión web completa es gratis y legal en la página del autor.
Y aquí mismo
Las guías que siguen naturalmente a esta:
- 🐍 Python para análisis de datos. El paso siguiente natural: sacas los datos con SQL y los trabajas con pandas.
- 📊 Estadística para analizar datos. Para saber si esa diferencia entre canales del capítulo 14 significa algo o es ruido.
- 🤖 Machine learning desde cero. Para predecir quién se va a ir antes de que se vaya.
- 📈 Power BI desde cero. Para que lo que sacaste con SQL lo vea alguien que no sabe SQL.
- 📗 Excel desde cero. Porque el 90% de los informes de este país terminan ahí, y no pasa nada.
Y si prefieres que lo veamos juntas y en vivo, eso es el Full Day IA.
Gracias por llegar hasta aquí
Quince capítulos, y si los hiciste con las manos en el teclado ahora sabes SQL. No "has visto SQL": sabes 💛
Sabes leer una base que no conocías, sabes cuándo un número está mal antes de entregarlo, y sabes que hay cuatro motores y en qué se separan, que es lo que casi nadie sabe el primer día de trabajo.
Si algo de este libro te sirvió, o si encuentras un error (que los hay, siempre hay), escríbeme. Me hace ilusión de verdad 🌸
Que tengas lindo día!