text: sql — Warum steht die Auswahl vor dem Von in einer SQL-Abfrage?
  /Warum steht die Auswahl vor dem Von in einer SQL-Abfrage?
  Warum steht die Auswahl vor dem Von in einer SQL-Abfrage?
  Das hat mich in der Schule sehr gestört.
  Als ich vor fünf Jahren SQL lernte, habe ich mich immer gefragt, warum wir zuerst die gewünschten Felder angeben und dann, woher wir sie möchten.
  Nach meiner Idee sollten wir schreiben:
  Warum sagt die Norm Folgendes?
  Ich habe Wochen gebraucht, um SQL zu verstehen, und ich weiß, dass ein Großteil dieser Zeit durch die falsche Reihenfolge der Elemente verbraucht wurde.
  Es ist wie in C # zu schreiben:
  Ich gehe also davon aus, dass dies einen historischen Grund hat. Warum?
  sqlhistorysyntax
  30.12.2011 Cyril Gandon
  Ursprünglich SQL-Sprache wurde SEQUEL genannt steht für
  Strukturierte englische Abfragesprache
  mit der Betonung auf Englisch unter der Annahme, dass die Schreibweise der natürlichen Sprache nahe kommt.
  Schreiben Sie diese beiden Aussagen so, wie Sie englische Sätze buchstabieren würden:
  "Aus Mitarbeitertabelle e Spalte e.Name auswählen"
  "Spalte e.Name aus Mitarbeitertabelle e auswählen"
  Zweitens klingt näher an der natürlichen englischen Sprache, deshalb ist es als Norm festgelegt.
  Übrigens gilt die gleiche Argumentation für Where etc - SQL-Anweisungen wurden absichtlich so entworfen, dass sie der natürlichen Sprache nahe kommen.
  30.12.2011 gnat
  Weil SELECT in einer select-Anweisung erforderlich ist und FROM nicht.
  Natürlich kann Ihre SQL-Anweisung analysiert werden, um nach SELECT, DELETE, UPDATE nach dem FROM zu suchen, aber ist das wirklich eine große Sache?
  Denken Sie daran, dies alles wurde vor Intellisense getan. Es ist nicht so kompliziert.
  Bearbeiten: Es gibt wahrscheinlich keinen Grund, warum SQL-Interpreter nicht für beides gebaut werden könnten.
  30.12.2011 JeffO
  Ich kenne keine Antwort, die ich durch Referenzen sichern könnte, aber wenn ich spekulieren müsste: SQL ist eine deklarative Sprache , eine Aussage einer solchen Sprache beschreibt was Sie möchten im Gegensatz zu tun, wie Sie es tun möchten.
  Daher klingt "SELECT X FROM Y" eine geeignetere Möglichkeit, um "Was möchte ich aus der Datenbank auswählen" zu beantworten, anstatt "FROM Y SELECT X" zu schreiben.
  Darüber hinaus gibt in SQL SELECT/UPDATE/INSERT die Art der Operation an, die Sie ausführen möchten, und FROM ist nur eine Klausel, mit der Sie aus der richtigen Tabelle in der Datenbank auswählen können. Wiederum hat was Sie mit Daten tun, Vorrang vor wie genau Sie werden das erreichen.
  30.12.2011 0x4B1D
  SQL ist eine strukturierte Abfragesprache für englischsprachige Personen. SELECT, INSERT, UPDATE und DELETE sind zwingende Befehle. Im Englischen beginnen imperative Befehle mit dem Satz oder der Aussage. Vergleichen Sie:
  SQL folgt dem zweiten (imperativen) Format. Auch die vier Imperativbefehle haben drei signifikant unterschiedliche Formate. Erwägen:
  Wenn Sie die Aktion kennen, die Sie ausführen, ist es einfacher, das richtige Format auszuwählen.
  Im Fall von select bestimmen Sie, welche Attribute Sie möchten, und fügen dann die Tabellen hinzu, die sie haben. Während Sie die Auswahlkriterien erstellen, können Sie zusätzliche Tabellen hinzufügen. Wenn Sie Kriterien dynamisch hinzufügen, kann dies normalerweise am Ende eines statischen Teils der Abfrage erfolgen.
  01.01.2012 BillThor
  SQL-Anweisungen beginnen mit Verben. Das war die Wahl der Sprachdesigner, und viele Programmiersprachen funktionieren so. Semantisch gesehen ist es nicht ungewöhnlich, dass Programmiersprachen wie folgt funktionieren:
  Im Fall der SELECT-Anweisung, die Sie als Beispiel angeben, würde Ihre vorgeschlagene Syntax das Objekt an die erste Stelle in der Anweisung setzen. Anstelle einer VSO-Satzreihenfolge (Verb, Subjekt, Objekt) hätten Sie OVS, was im Vergleich zu natürlichen Sprachen sehr seltsam wäre. SVO (z. B. Englisch), VSO (z. B. Arabisch) und SOV (z. B. Latein) sind vernünftigere Annäherungen an die menschliche Sprache.
  21.03.2012 David Cloutman
  Ich denke, dies würde das Parsen erheblich erschweren, insbesondere bei Unterabfragen, z.
  Das zu analysieren wäre komplizierter. Sie konnten nicht feststellen, dass das UPDATE ein Syntaxfehler war, bis Sie die FROM-Klausel analysiert hatten, und der Parser musste sich genügend Kontext merken, um zu wissen, dass eine Unterabfrage analysiert wurde. Ich denke nicht, dass Aktualisierungen in Unterabfragen sowieso zulässig sind, aber wenn dies der Fall wäre (möglicherweise mit einer RETURNING-Klausel), können Sie möglicherweise nicht feststellen, dass dies ungültig war, bis Sie die SELECT-Anweisung analysiert haben.
  Dies würde zumindest k (Lookahead) für die Grammatik erhöhen und sie im schlimmsten Fall kontextsensitiv machen, obwohl dies die Grenzen meiner eher schwach erinnerten Compiler-Designpapiere von der Universität erweitert.