Allgemeine SQL-Befehle

Letzte Änderung mit MIKE Urban Version 2011 SP7.

Einleitung

Mit allgemeinen SQL-Befehlen können Sie Modelldaten in beliebiger Art bearbeiten, beispielsweise um den Rohrdurchmesser vom Nenndurchmesser auf den tatsächlichen Innendurchmesser zu ändern, oder um die Rohrrauhigkeit in Abhängigkeit vom Rohrmaterial festzulegen.

Sie können mehrere Befehle hintereinander ausführen, und die Befehlssequenz für eine neuerliche Verwendung speichern.

Dialogfeld

Klicken zum Vergrößern

Feld	Erklärung
Ausführen	führt die SQL-Befehle aus
Laden	öffnet eine Textdatei mit SQL-Befehlen
Speichern	speichert die angezeigten SQL-Befehle zur späteren Verwendung in eine Textdatei
Schließen	schließt den Editor ohne Ausführung der Befehle

Grundlegende Beispiele

Die folgenden Beispiele gelten, wenn die Datenbank im *.mdb-Format (Personal Geodatabase) vorliegt.

(a) Alle Zeilen der Tabelle Rohre (mw_pipe) werden aktualisiert, indem die Rauigkeit (rcoeff) mit 1,15 multipliziert wird:

UPDATE mw_pipe SET rcoeff = rcoeff * 1.15;

(b) In den Zeilen der Tabelle Schächte (msm_node), in denen der Durchmesser (diameter) 0,99 beträgt, wird der Durchmesser auf 1 gesetzt:

UPDATE msm_node SET diameter = 1.0 WHERE diameter = 0.99;

(c) Die Leitung "Schieber1" wird geschlossen und die Leitung "Schieber2" wird geöffnet:

UPDATE mw_Pipe SET StatusNo = 1 WHERE MUID = 'Schieber1'; UPDATE mw_Pipe SET StatusNo = 0 WHERE MUID = 'Schieber2';

(d) Die einfache Tabellenverknüpfung bezieht eine zusätzliche Tabellen mit ein. Im folgenden Beispiel wird das Feld Beschreibung (Description) der Schacht-Tabelle (msm_Node) mit der ID (MUID) des jeweils verknüpften Einzugsgebiets (msm_CatchCon.CatchID) gefüllt.

UPDATE msm_Node, msm_CatchCon SET msm_Node.Description = msm_CatchCon.CatchID WHERE msm_CatchCon.NodeID = msm_Node.MUID;

Technische Details

Allgemeine SQL-Befehle können auf alle Tabellen und Featureklassen in der MIKE Urban-Datenbank zugreifen.

Sie können den SQL-Befehl UPDATE zum Verändern der Feldinhalte verwenden.

Eine reine Auswahl mit dem SQL-Befehl SELECT ist nicht möglich. Behelfslösung: Feld "Markierung" mit UPDATE bearbeiten.

Zwar funktioniert auch der SQL-Befehl ALTER (zum Hinzufügen und Löschen von Spalten), DHI rät aber von der Verwendung ab und empfiehlt, Veränderungen an der Datenstruktur ausschließlich über ArcMap oder ArcCatalog durchzuführen.

Da es sich bei SQL um eine Art Programmiersprache handelt, müssen Sie bei Dezimalzahlen immer den DezimalPUNKT verwenden.

Mehrere SQL-Befehle hintereinander müssen durch Strichpunkte ; getrennt sein.

Zeilenumbrüche, mehrere aufeinander folgende Leerzeichen oder die Unterscheidung zwischen Klein- und Großschreibung haben keine Auswirkung auf SQL-Befehle, sie dienen lediglich der besseren Lesbarkeit.

Weiterführende Links

Wikibooks: Einführung in SQL

Die offizielle Dokumentation der "Allgemeinen SQL-Befehle" finden Sie im Handbuch "MIKE URBAN Model Manager" im Kapitel 2.11.3 "General SQL Command".

Weitere Beispiele

Folgender Ausdruck überträgt den undurchlässigen Anteil aus MOUSE Modell A auf den undurchlässigen Anteil in SWMM.1) Nützlich, wenn man ein MOUSE-Modell mit "Senden" auf ein SWMM-Modell überträgt; dabei werden die hydrologischen Eigenschaften nämlich nicht übertragen.

UPDATE mss_CatchModel, msm_HModA SET mss_CatchModel.Impervious = msm_HModA.ImpArea WHERE mss_CatchModel.CatchID = msm_HModA.CatchID;

Offene Punkte

ein Beispiel für Unterabfragen

SQL-Abfragen aus der MOUSE-Zeit ausgraben

Was ist, wenn die Datenbank nicht als Personal Geodatabase vorliegt?