Quiero concentrarme en una de las especificaciones del lenguaje SQL para fines de aprendizaje y referencia. ¿Qué versión del estándar SQL es más ampliamente compatible con todos los DBMS para que pueda concentrar mi tiempo y energía en él?
fuente
Quiero concentrarme en una de las especificaciones del lenguaje SQL para fines de aprendizaje y referencia. ¿Qué versión del estándar SQL es más ampliamente compatible con todos los DBMS para que pueda concentrar mi tiempo y energía en él?
Creo que está tratando de vivir en el mundo de los sueños de Joe Celko, donde solo puede usar SQL estándar y en cualquier semana puede tener que transferir todo su código de SQL Server a Oracle y luego de Oracle a DB2 y luego nuevamente a SQL Server. . Dos veces.
Si bien los aspectos centrales y fundamentales del SQL estándar lo ayudarán en cualquier parte, tratar de limitarse a ese conjunto de lenguaje por temor a la portabilidad futura (o simplemente por principio) no es un camino que recomendaría. Personalmente, me apego a las cosas estándar ANSI cuando puedo (por ejemplo, <> vs.! =, COALESCE vs. ISNULL, CURRENT_TIMESTAMP vs. GETDATE (), etc.), pero tampoco tengo miedo de usar el SQL Server específico cosas que facilitan mi trabajo.
Es importante comprender cómo funciona SQL en general; Es igualmente importante entender cómo funciona el lenguaje en su RDBMS, incluidas las desviaciones del estándar, las desviaciones de la forma en que otro RDBMS podría haber implementado el mismo concepto y las extensiones propietarias que no existen en otros lugares.
SQL Server, como ejemplo, cubre una buena parte del estándar y se acerca al cumplimiento total de cada nueva versión. ¿Alguna vez cubrirá el 100%? Muy dudoso. ¿Continuará agregando extensiones propietarias que no están en el estándar? Ciertamente. Si todos cubrieran el estándar y nadie saliera de él, entonces no habría ventajas al elegir una plataforma sobre otra, y todos estaríamos usando lo mismo.
Ninguno de ellos. Puede aprender SQL estándar (-ish) para cualquier RDBMS.
El SQL estándar no se usa en el mundo real para pagar trabajos en proyectos exitosos ...
Dicho esto, MySQL es un buen lugar para comenzar y aquí hay un tutorial
fuente
constructive guidance
increíblemente hipócrita. ¿Dónde está su guía constructiva aquí para que gbn mejore su respuesta?Todos los RDBMS principales admiten las diferentes versiones de la especificación SQL en diferentes grados, y las versiones anteriores de la especificación son más compatibles. No todos toman la conformidad con la misma seriedad (por ejemplo, Oracle comenzó a admitir 'uniones ansi' en 2001, casi una década después de SQL-92 ) y, como ya dijo @gbn, en la práctica debe conocer el sabor de SQL utilizado por cada producto tu usas.
Postgres es una excepción porque se enorgullece del cumplimiento de las normas . Para "fines de aprendizaje y referencia", necesita práctica práctica con una base de datos, no solo el conocimiento de un libro o estándar, y postgres es una plataforma ideal para aprender las cuerdas porque:
fuente
De acuerdo con Jack y gbn, no existe un estándar y debe tomar una decisión. Para hacer esta elección, primero debe seleccionar RDBMS. Recomiendo pensar en las siguientes cosas: 1) ¿quieres ser DB-developer o DBA? 2) ¿Con qué sistemas operativos desea trabajar? Estoy de acuerdo, esta pregunta es un poco extraña, pero cuando hablo con los estudiantes, dicen que es importante.
Por ejemplo (solo un ejemplo, tal vez estoy equivocado) si quiere ser un DBA y no quiere trabajar con Windows, no necesita pensar en MSSQL. Y si desea ser DBA y le gusta trabajar con cadenas de comandos y archivos de configuración, tal vez Oracle sea lo que necesita. Si quieres ser desarrollador, quieres usar tu conocimiento en proyectos independientes, ¿tal vez necesites MySQL?
fuente