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.
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.
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.
-- 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.
