10 SQL Retrieval Tips

10 SQL Retrieval Tips - Dummies

Die SQL SELECT-Anweisung ist Ihr Werkzeug zum Auffinden von versteckten Informationen in einer Datenbank. Selbst wenn Sie eine klare Vorstellung davon haben, was Sie abrufen möchten, kann das Übersetzen dieser Idee in SQL eine Herausforderung sein. Wenn Ihre Formulierung nur ein wenig ausfällt, können Sie mit den falschen Ergebnissen enden. Verwenden Sie die folgenden zehn Prinzipien, um Ihre Chancen auf Irreführung zu reduzieren.

Überprüfen der Datenbankstruktur

Wenn Sie Daten aus einer Datenbank abrufen und Ihre Ergebnisse nicht angemessen erscheinen, überprüfen Sie das Datenbankdesign. Viele schlecht gestaltete Datenbanken sind in Gebrauch, und wenn Sie mit einem arbeiten, beheben Sie das Design, bevor Sie andere Abhilfemaßnahmen versuchen. Denken Sie daran - gutes Design ist eine Voraussetzung für die Datenintegrität.

Abfragen für eine Testdatenbank ausführen

Erstellen Sie eine Testdatenbank mit derselben Struktur wie Ihre Produktionsdatenbank, jedoch nur mit wenigen repräsentativen Zeilen in den Tabellen. Wählen Sie die Daten aus, damit Sie im Voraus wissen, wie die Ergebnisse Ihrer Abfragen aussehen sollen.

Führen Sie jede Testabfrage auf den Testdaten aus und sehen Sie, ob die Ergebnisse Ihren Erwartungen entsprechen. Wenn dies nicht der Fall ist, müssen Sie möglicherweise Ihre Abfragen neu formulieren. Wenn eine Abfrage korrekt formuliert ist, Sie aber trotzdem schlechte Ergebnisse erhalten, müssen Sie möglicherweise Ihre Datenbank neu strukturieren.

Erstellen Sie mehrere Testdatensätze und stellen Sie sicher, dass ungerade Fälle wie leere Tabellen und Extremwerte an der Grenze der zulässigen Bereiche enthalten sind. Versuchen Sie, sich an unwahrscheinliche Szenarien zu erinnern und überprüfen Sie das Verhalten, wenn sie auftreten. Im Verlauf der Prüfung auf unwahrscheinliche Fälle können Sie Einsicht in Probleme bekommen, die wahrscheinlicher sind.

Überprüfen von Abfragen mit Joins

Joins sind bekanntlich kontraintuitiv. Wenn Ihre Abfrage eine enthält, stellen Sie sicher, dass sie das tut, was Sie erwarten, bevor Sie WHERE-Klauseln oder andere komplizierende Faktoren hinzufügen.

Abfrage mit Subselects dreifach prüfen

Bei Abfragen mit Subselects werden Daten aus einer Tabelle entnommen und basierend auf den abgerufenen Daten einige Daten aus einer anderen Tabelle übernommen. Daher können solche Anfragen per Definition schwer zu bewerkstelligen sein. Stellen Sie sicher, dass die Daten, die das innere SELECT abruft, die Daten sind, die das äußere SELECT benötigt, um das gewünschte Ergebnis zu erzielen. Wenn Sie zwei oder mehr Subselect-Stufen haben, müssen Sie noch vorsichtiger sein.

Zusammenfassen von Daten mit GROUP BY

Sagen Sie, dass Sie einen Tisch (NATIONAL) haben, der den Namen (Spieler), das Team (Team) und die Anzahl der Home Runs (Homers) eines jeden Baseballspielers in der National League enthält. .. Sie können die Team-Homer-Summe für alle Teams mit einer Abfrage wie folgt abrufen:

 SELECT Team, SUM (Homers) VON NATIONAL GROUP BY Team; 

Diese Abfrage listet jedes Team auf, gefolgt von der Gesamtanzahl der Home Runs, die von allen Spielern des Teams getroffen wurden.

Watch GROUP BY-Klausel Einschränkungen

Nehmen wir an, Sie wollen eine Liste der Nationalliga-Powerhitter. Betrachten Sie die folgende Abfrage:

 SELECT Player, Team, Homers FROM NATIONAL WHERE Homers> = 20 GROUP BY Team; 

In den meisten Implementierungen gibt diese Abfrage einen Fehler zurück. Im Allgemeinen werden nur Spalten, die für die Gruppierung verwendet werden, oder Spalten, die in einer Mengenfunktion verwendet werden, in der Auswahlliste angezeigt. Wenn Sie jedoch diese Daten anzeigen möchten, funktioniert die folgende Formulierung:

 SELECT Player, Team, Homers FROM NATIONAL WHERE Homers> = 20 GROUP BY Team, Player, Homers; 

Da alle Spalten, die Sie anzeigen möchten, in der GROUP BY-Klausel angezeigt werden, ist die Abfrage erfolgreich und liefert die gewünschten Ergebnisse. Diese Formulierung sortiert die resultierende Liste zuerst nach Team, dann nach Player und schließlich nach Homers.

Klammern mit AND, OR und NOT verwenden

Manchmal verarbeitet SQL den Ausdruck nicht in der von Ihnen erwarteten Reihenfolge, wenn Sie UND und ODER mischen. Verwenden Sie Klammern in komplexen Ausdrücken, um sicherzustellen, dass Sie die gewünschten Ergebnisse erzielen. Das Eingeben einiger zusätzlicher Tastenanschläge ist ein kleiner Preis für bessere Ergebnisse.

Klammern helfen auch sicherzustellen, dass das Schlüsselwort NOT auf den Begriff oder Ausdruck angewendet wird, auf den es angewendet werden soll.

Kontroll-Abrufberechtigungen

Viele Benutzer verwenden nicht die in ihrem DBMS verfügbaren Sicherheitsfunktionen. Sie wollen sie nicht belästigen, weil sie denken, dass Missbrauch und Veruntreuung von Daten Dinge sind, die nur anderen Menschen passieren. Warten Sie nicht, um sich zu verbrennen. Richten Sie die Sicherheit für alle Datenbanken ein und behalten Sie sie bei.

Sichern Sie Ihre Datenbanken regelmäßig

Warnung wegen Unterabsatz: Daten können nur schwer abgerufen werden, wenn ein Stromausfall, ein Brand, ein Erdbeben oder eine andere Katastrophe Ihre Festplatte zerstört. (Denken Sie daran, dass Computer manchmal ohne guten Grund sterben.) Machen Sie häufige Backups und legen Sie die Backup-Medien an einem sicheren Ort ab.

Was einen sicheren Ort ausmacht, hängt davon ab, wie kritisch Ihre Daten sind. Es könnte sich um einen feuerfesten Safe im selben Raum wie Ihr Computer handeln. Es könnte in einem anderen Gebäude sein. Es könnte in der Wolke sein. Es könnte in einem Betonbunker unter einem Berg sein, der gehärtet wurde, um einem nuklearen Angriff standzuhalten. Entscheiden Sie, welches Sicherheitsniveau für Ihre Daten angemessen ist.

Fehlerhafte Bedingungen elegant behandeln

Unabhängig davon, ob Sie Ad-hoc-Abfragen von einer Workstation ausführen oder Abfragen in eine Anwendung einbetten, gibt SQL gelegentlich eine Fehlermeldung zurück und nicht die gewünschten Ergebnisse. Auf einer Workstation können Sie basierend auf der zurückgegebenen Nachricht entscheiden, was als Nächstes zu tun ist.

In einer Anwendung ist die Situation anders. Der Anwendungsbenutzer weiß wahrscheinlich nicht, welche Aktion angemessen ist. Setzen Sie umfassende Fehlerbehandlung in Ihre Anwendungen ein, um alle denkbaren Fehler zu vermeiden. Das Erstellen von Code zur Fehlerbehandlung ist sehr aufwendig, aber es ist besser, als den Benutzer bei einem fixierten Bildschirm fragend anzustarren.