Autor Beitrag
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Do 17.10.13 19:19 
Moin,

ich suche eine möglichst umfangreiche Referenz, wo allgemein definierte SQL-Standards drin stehen, vorerst nur zu Select.

Hintergrund ist der, dass ich eine möglichst allgemeine, umfangreiche und flexible Struktur schaffen möchte, für die dann verschiedene SQL-Standards implementiert werden können.

Um sicher zu stellen, dass ich alles unterstütze, was alle Standards gleich haben, suche ich eine Liste alles Operatoren und deren vollständige Syntax.

Wichtig ist mir dabei, dass auch möglichst viele Varianten aufgezeigt werden, wo z.B. auch gezeigt wird, an welchen Stellen Sub-Selects möglichst sind und wo nicht.


Wenn ich selber suche, finde ich zwar Einiges, meist aber eher kleinere Tutorials, oder spezielle Standards, wie Transact SQL und das möchte ich nicht nehmen, da ich dann nicht weiß, was ich davon als allgemein anerkennen kann.
Auch kann ich nicht einschätzen, ob die Seite, die ich mir anschaue, auch wirklich meinen Ansprüchen entspricht.


Kennt da jemand eine gute Seite, die ich verwenden kann?


Gruß




PS:
Es geht mir auch nicht darum, dass etwas erklärt wird, sondern nur, dass ich eine Liste habe, was dazu gehört.
Es sollte soweit verständlich sein, dass ich mir Erklärungen selber zusammen suchen kann, aber mir reicht schon eine reine Auflistung, wenn sie dafür möglichst vollständig und allgemein ist.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 17.10.13 20:05 
Du mußt dich leider zwischen allgemein oder vollständig entscheiden beides ist bei SQL nicht mal annähernd möglich.

Wenn du vollständig einen Standard haben willst mußt du den bei der ANSI oder ISO Gruppe kaufen die sind nicht öffentlich. Total dämlich bei einem Standard aber wer hört schon auf mich :( Wenn du mit einer von möglichst allen Datenbanken genügenden Untermenge klarkommst dann bleibt tatsächlich nicht mehr über als du in irgendwelchen Tutorial findest. W3Schools scheint recht ordentlich zu sein obwohl die eigentlich schon wieder etwas zu weit gehen. Nicht jede Datenbank kennt zum Beispiel Full Outer Joins. Bei den Datentypen und der Begrenzung von Ergebnismengen haben die erst gar nicht versucht die des Standards zu erklären. Hält sich ja eh keine der Datenbanken dran.
Palladin007 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Do 17.10.13 21:01 
Ich hab hier grad was gefunden, das scheint ganz gut zu sein:

de.wikibooks.org/wik...SQL:_Befehlsreferenz
www.sqldocu.com/referenz/index.php

Meinst du, ich kann das so nehmen?


Da steht jetzt so direkt keine Spezialisierung dabei.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 17.10.13 21:30 
SqlDocu sieht ganz ok aus.
Beim überfliegen habe ich nichts gefunden das ich als Datenbankabhängig ansehen würde dafür fehlte "UNION ALL" und "EXISTS" das ich in die Kategorie Standard einordnen würde und die Beschreibung der "HAVING" Clause ist eher dünn. Bei den (Aggregat)Funktionen solltest du ein wenig vorsichtig sein aber vermutlich sind die für dich eh nicht relevant. Persönlich würde ich immer noch Die Beschreibung der W3schools vorziehen ist aber nur ein gradueller Unterschied.

Völlig übergangen wird die TOP, LIMIT, ROWNUM etc. Problematik zum Begrenzen der Ergebnismenge. Wenn du das allgemein willst wird das schwierig. Entweder du unterstützt das erst gar nicht oder du wirst zwangsweise DB abhängig. Im ANSI Standard gibt da was aber erst seit ANSI2003 (glaub ich). 10 Jahre reichen bei SQL leider nicht das das auch in irgendeine DB Einzug hält die nicht zufällig schon vorher Standardkonform war ;)
Palladin007 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Do 17.10.13 21:47 
Danke ^^

Es reichen schon die Stichworte, wenn du sie mir nennst, dann hab ich etwas, nach dem ich suchen und mich entsprechend informieren kann.

An sich geht es mir aber auch nicht darum, genau zu wissen, was wo passiert. Vorerst geht es mir ausschließlich um die Struktur , damit ich die Definitionen dann entsprechend vorbereiten und planen kann.


Und klar interessieren mich die Funktionen, ich versuche dafür auch noch eine möglichst allgemeine Definition zu finden, dass für verschiedene Standards auch möglichst viele verschiedene Funktionen definiert werden können.

Ganz so "einfach" ist das aber auch nicht, weil ich vorhabe, noch so etwas wie Validierung einzubauen, oder dass der Builder auf einmal prüft, ob eine Tabelle eine auch die verlangte Spalte mit dem richtigen Typ hat.
Vielleicht fällt mir auch was schönes ein, wie ich das ganze mit dynamischen Typen bauen kann, das würde es dem Entwickler noch viel leichter machen, SQL im Code zu schreiben.
Das Ganze soll ja auch noch LINQ Querys unterstützen, soweit die eben mit spielt.


Auf jeden Fall ein (für meine Verhältnisse) riesiges Vorhaben und ich möchte nachträglich nichts mehr an der reinen Interface-Struktur ändern müssen, da ich auch Vieles (Erweiterungsmethoden, Vordefinierte Funktionalitäten, etc.) vollständig darauf aufbaue, dass das alles auch für jeden DB-Standard verfügbar ist.


Das Ganze soll ja sowas wie ein Framework werden, was Andere frei erweitern können, indem sie die variablen Teile durch konkrete Implementierungen definieren, der Rest und alle Vereinfachungen automatisch greifen.
Palladin007 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Fr 18.10.13 14:25 
Was mir gerade einfällt, wo ein Missverständnis entstanden sein könnte:

Ich suche eine Referenz, die alle Möglichkeiten aufzeigt, die möglichst viele Standards und Dialekte unterstützen. Wie diese umgesetzt wurden, ist komplett egal.
Es geht mir nur darum, dass ich z.B. eine Methoden Join vorgebe und bei der jeweiligen SQL-Variante muss dann definiert werden, wie dieser Join umgesetzt wird.

Wie die SQL-Syntax am Ende tatsächlich im Genauen aussieht, interessiert nicht, ich schreibe gerade nur, was wie vorgegeben wird.

Das Einzige, was wichtig ist, das ist die grobe Syntax, also z.B., dass hinter der dazu gejointen Tabelle immer ein ON mit einer entsprechenden Bedingung kommt, denn dafür definiere ich dann wieder eine Methode.
In der jeweiligen Implementierung kann dann nur dafür gesorgt werden, dass eine solche On-Methode ignoriert wird, einen Fehler wirft, optional ist oder dem Aufrufer überlassen bleibt, ob er sie nutzt.