Fundamentos

SQL, PostgreSQL, MySQL y SQL Server: ¿cuáles son las diferencias?

SQL es el lenguaje común; PostgreSQL, MySQL y SQL Server son motores con sus propios dialectos y herramientas.

Equipo de SQL.tn10 min
Un lenguaje de datos común se divide en múltiples caminos hacia motores base con formas distintas.

Un lenguaje común, múltiples implementaciones

Decir "Yo uso SQL" es como decir "Yo uso un idioma": describe un idioma, no el software que almacena el documento. PostgreSQL, MySQL y Microsoft SQL Server son SGBD que incluyen SQL y agregan sus propias capacidades.

Una base es el contenido estructurado gestionado por el SGBD. El servidor es el servicio al que suelen conectarse las aplicaciones y herramientas. En SQL.tn, PGlite ejecuta un PostgreSQL compilado para el navegador: ningún servidor remoto recibe los datos del ejercicio ficticio.

La base SQL viaja bastante bien

SELECT, WHERE, GROUP BY, HAVING, JOIN, INSERT, UPDATE, DELETE, las claves y restricciones tienen ideas comunes. Una consulta sencilla puede funcionar en varios motores o sólo requerir una pequeña adaptación.

La portabilidad disminuye con fechas, texto, tipos, funciones JSON, generación de identificadores, UPSERT, procedimientos y administración. El motor debe especificarse tan pronto como un ejemplo sobrepase la base.

Lectura ampliamente portátil
SELECT ville, COUNT(*) AS clients
FROM clients
WHERE actif = TRUE
GROUP BY ville
ORDER BY clients DESC;

PostgreSQL: extensibilidad y rigor

PostgreSQL es un SGBD relacional de código abierto conocido por su conformidad, tipos enriquecidos, funciones de ventana, JSONB, búsqueda de texto, extensiones y un potente lenguaje de procedimientos. PGlite toma gran parte de este motor de WebAssembly.

Construcciones como INSERT ... ON CONFLICT, RETURNING, JSONB o funciones PL/pgSQL son características de PostgreSQL, incluso si otros motores ofrecen soluciones equivalentes con otra sintaxis.

UPSERT PostgreSQL
INSERT INTO stocks (id_produit, quantite)
VALUES (42, 8)
ON CONFLICT (id_produit)
DO UPDATE SET quantite = EXCLUDED.quantite
RETURNING id_produit, quantite;

MySQL y SQL Server satisfacen las mismas familias de necesidades

MySQL es muy común en aplicaciones web y tiene su propio ecosistema, motores de almacenamiento y sintaxis. SQL Server es SGBD de Microsoft, está muy integrado con sus herramientas y utiliza el dialecto T-SQL.

La limitación de filas ilustra la diferencia: PostgreSQL y MySQL comúnmente usan LIMIT, mientras que SQL Server usa TOP o OFFSET/FETCH. El objetivo empresarial sigue siendo el mismo, la forma cambia.

Dos dialectos para limitar a tres líneas
-- PostgreSQL y MySQL
SELECT produit, prix FROM produits
ORDER BY prix DESC
LIMIT 3;

-- SQL Server
SELECT TOP (3) produit, prix FROM produits
ORDER BY prix DESC;

¿Qué motor deberías aprender?

Para empezar, aprende los conceptos y un dialecto coherente. PostgreSQL es una opción sólida y SQL.tn la utiliza para su simulador. Si su empresa utiliza SQL Server o MySQL, practique sus diferencias en el entorno correspondiente.

El mejor motor también depende del motor existente, las habilidades del equipo, el alojamiento, los conectores, los requisitos operativos y el costo total. Un tutorial por sí solo no es suficiente para esta decisión arquitectónica.

Errores comunes

Especifique siempre el dialecto de un ejemplo avanzado y distinga lo que pertenece al idioma de lo que pertenece a SGBD o su administración.

  • Presentar PostgreSQL como idioma.
  • Decir que una consulta compleja es universal sin probarla en otro lugar.
  • Copie una función SQL Server en PostgreSQL porque ambas usan SQL.
  • Elegir un motor únicamente de una lista de características sin considerar el funcionamiento.

Ejercicio de lectura

Busque una consulta que esté utilizando. Clasifique cada elemento: SQL común, sintaxis específica del motor u operación administrativa. Por ejemplo, SELECT es común, ON CONFLICT es PostgreSQL y la configuración de la replicación es una cuestión administrativa.

La microformación dedicada detallará este método. Sigue en preparación: no se propone ninguna compra antes de sus ejercicios validados.

Sigue la preparación de esta competencia.

Consulta el resultado previsto, los requisitos y el estado real del microcurso.

Ver el microcurso