Antworten:
Ich denke, Sie versuchen, in der Traumwelt von Joe Celko zu leben, in der Sie nur Standard-SQL verwenden können. In einer bestimmten Woche müssen Sie möglicherweise Ihren gesamten Code von SQL Server nach Oracle und dann von Oracle nach DB2 und dann wieder zurück zu SQL Server portieren . Zweimal.
Während die Kern- und Grundaspekte von Standard-SQL Ihnen überall helfen werden, ist der Versuch, sich aus Angst vor einer zukünftigen Portierung (oder nur aus Prinzip) auf diese Sprache zu beschränken, kein von mir empfohlener Weg. Persönlich halte ich mich an ANSI-Standard, wenn ich kann (z. B. <> vs.! =, COALESCE vs. ISNULL, CURRENT_TIMESTAMP vs. GETDATE () usw.), aber ich habe auch keine Angst davor, SQL Server-spezifisch zu verwenden Sachen, die mir die Arbeit erleichtern.
Es ist wichtig zu verstehen, wie SQL im Allgemeinen funktioniert. Ebenso wichtig ist es, die Funktionsweise der Sprache in Ihren RDBMS zu verstehen - einschließlich Abweichungen vom Standard, Abweichungen von der Art und Weise, wie ein anderes RDBMS möglicherweise dasselbe Konzept implementiert hat, und proprietäre Erweiterungen, die an keiner anderen Stelle vorhanden sind.
Beispielsweise deckt SQL Server einen Großteil des Standards ab und nähert sich der vollständigen Konformität mit jeder neuen Version. Wird es jemals 100% abdecken? Sehr zweifelhaft. Wird es weiterhin proprietäre Erweiterungen hinzufügen, die nicht im Standard enthalten sind? Bestimmt. Wenn alle den Standard abdecken würden und niemand außerhalb des Standards treten würde, hätte die Auswahl einer Plattform gegenüber einer anderen keine Vorteile, und wir würden alle dasselbe verwenden.
Keines von denen. Sie können Standard-SQL (-ish) für jedes RDBMS lernen.
Standard-SQL wird in der realen Welt nicht zum Bezahlen von Jobs für erfolgreiche Projekte verwendet ...
Davon abgesehen ist MySQL ein guter Anfang und hier ist ein Tutorial
constructive guidance
unglaublich scheinheilig. Wo ist Ihre konstruktive Anleitung für gbn, um seine Antwort zu verbessern?
Alle wichtigen RDBMS unterstützen die verschiedenen Versionen der SQL-Spezifikation in unterschiedlichem Maße, wobei die älteren Versionen der Spezifikation vollständiger unterstützt werden. Nicht alle nehmen die Konformität gleich ernst (Oracle hat beispielsweise 2001, fast ein Jahrzehnt nach SQL-92 , mit der Unterstützung von "ansi joins" begonnen ), und wie @gbn bereits sagte, müssen Sie in der Praxis die von jedem Produkt verwendete SQL- Version kennen Sie nutzen.
Postgres ist insofern eine Ausnahme, als es "stolz auf die Einhaltung von Standards ist" . Für "Lern- und Referenzzwecke" benötigen Sie praktische Übungen mit einer Datenbank, nicht nur Kenntnisse aus einem Buch oder Standard, und postgres ist eine ideale Plattform, um die Seile zu lernen, weil:
In Übereinstimmung mit Jack und gbn gibt es keinen Standard und Sie müssen eine Wahl treffen. Um diese Auswahl zu treffen, müssen Sie zuerst RDBMS auswählen. Ich würde empfehlen, über folgende Dinge nachzudenken: 1) Möchten Sie DB-Entwickler oder DBA werden? 2) Mit welchen Betriebssystemen möchten Sie arbeiten? Ich stimme zu, diese Frage ist wenig seltsam, aber wenn ich mit Studenten spreche, sagen sie, dass es wichtig ist.
Zum Beispiel (nur zum Beispiel, vielleicht irre ich mich), wenn Sie ein DBA sein und nicht mit Windows arbeiten möchten, müssen Sie nicht an MSSQL denken. Und wenn Sie DBA sein möchten und gerne mit Befehlszeichenfolgen und Konfigurationsdateien arbeiten möchten, ist Oracle möglicherweise das, was Sie brauchen. Wenn Sie Entwickler werden möchten und Ihr Wissen in freiberuflichen Projekten einsetzen möchten, benötigen Sie möglicherweise MySQL?