SQL ist überall, SQL ist einfach zu erlernen und SQL-Lösungen lassen sich problemlos implementieren. Egal, ob man nun SQL häufig oder nur gelegentlich verwendet, diese Tricks und Ratschläge für die Arbeit mit der Datenbanksprache helfen auf jeden Fall, Fehler zu vermeiden und die Performance zu verbessern.
Viele SQL-Versionen sind anbieterspezifisch. Die folgenden Tipps gelten für Jet- und Transact-SQL, aber sie können auf andere SQL-Produkte adaptiert werden.
1. Arbeiten mit Jet-SQL im Access-SQL-Fenster
Access-Benutzer erstellen jedes Mal, wenn sie eine Abfrage generieren, auch gleichzeitig SQL-Anweisungen, sie wissen es nur nicht. Sie benutzen das Query-Design-Fenster, eine grafische Darstellung des eigentlichen SQL. Die wenigsten Benutzer sind in der Lage, die geeigneten SQL-Anweisungen zu erstellen, die sie benötigen, weshalb die grafische Oberfläche sehr hilfreich ist. Doch auch für Programmierer bietet sie einige Vorteile. Wenn es einem zum Beispiel schwer gelingt, ohne Hilfsmittel einen fehlerfreien SQL-Code zu erstellen, kann man auf das SQL-Fenster zurückgreifen:
Nicht jede SQL-Anweisung kann direkt aus dem Modul in das SQL-Fenster kopiert werden. Wenn die Anweisung Verkettungen oder Variablen enthält, sollte man eine Debug.Print-Anweisung direkt nach der Definitionsanweisung einfügen. Falls ein Debugging für die Anweisung durchgeführt werden soll, kopiert man die evaluierte Anweisung aus dem Immediate-Fenster. Die folgende Anweisung im Code funktioniert beispielsweise wegen der Variablen und der Verkettung im SQL-Fenster nicht:
Ist dagegen eine Debug.Print-Anweisung dahinter gesetzt, lassen sich die evaluierten Ergebnisse aus dem Immediate-Fenster kopieren:
2. Reservierte Wörter in SQL
SQL reserviert bestimmte Wörter als Schlüsselwörter. Sie sollten nicht zur Bezeichnung von Spalten, Tabellen, Variablen oder Objekten verwendet werden. Kommen diese Wörter außerhalb des von der Engine vorgesehenen Kontexts zum Einsatz, verwirrt dies die Engine und verursacht Fehler oder sogar ohne Fehlermeldung falsche Ergebnisse.
3. Der Unterschied zwischen ALL, DISTINCT und DISTINCTROW
Die SQL-Anweisung SELECT unterstützt drei Prädikate: ALL, DISTINCT und DISTINCTROW. ALL ist der Standard und gibt alle Einträge aus, welche die jeweils eingegebenen Bedingungen erfüllen. DISTINCT beschränkt die Ergebnisse auf in einer oder mehreren Spalten nur einmal vorkommende Werte. Zum Beispiel würde die folgende Anweisung nur einen Eintrag für jeden LastName-Wert ausgeben:
Mit anderen Worten: Wenn ein Eintrag sowohl für John Smith als auch für Mary Smith vorhanden ist, gibt diese Anweisung nur einen Eintrag für Smith aus. DISTINCT funktioniert jedoch für alle Spalten, nicht nur für die unmittelbar folgende Spalte. Das bedeutet, dass diese Anweisung einen Eintrag für John und Mary ausgibt, da die kombinierten Spalten keinen doppelten Eintrag ergeben:
Wenn die SELECT-Klausel auf mehr als eine Spalte bezogen wird, muss die Kombination der Werte aus allen ausgewählten Spalten für einen bestimmten Eintrag einzigartig sein.
DISTINCT weist ein paar Besonderheiten auf, die man kennen sollte:
Während DISTINCT mit Spalten funktioniert, bezieht sich DISTINCTROW auf Einträge. (Transact-SQL unterstützt DISTINCTROW nicht.) Dieses Prädikat weist ebenfalls einige Einschränkungen auf, die das Beheben eines Fehlers erschweren können:
Check Point warnt vor offener Schwachstelle, die derzeit von Hackern für Phishing ausgenutzt wird.
Video-Babyphones sind ebenfalls betroffen. Cyberkriminelle nehmen vermehrt IoT-Hardware ins Visier.
Der Downloader hat hierzulande im April einen Anteil von 18,58 Prozent. Im Bereich Ransomware ist…
Unternehmen greifen von überall aus auf die Cloud und Applikationen zu. Dementsprechend reicht das Burg-Prinzip…
Hacker nutzen eine jetzt gepatchte Schwachstelle im Google-Browser bereits aktiv aus. Die neue Chrome-Version stopft…
Microsoft bietet seit Anfang der Woche einen Patch für die Lücke. Kaspersky-Forscher gehen davon aus,…