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.
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.
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.
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.
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.
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.
Hay muchos; estos tres cubren la inmensa mayoría de lo que te vas a encontrar trabajando.
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.
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.
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 sí 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.
Cinco palabras y ya se entiende cualquier documentación. Van con su equivalente en hoja de cálculo, que es de donde vienes.
Piensa el equivalente antes de voltear la tarjeta.
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.
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.
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.
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.
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.
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.
¿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?
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