SQL-Abfrage in MS Access. Einführung. SQL – Sprache für den Zugriff auf und die Verwaltung von Datenbanken. Beispiele für SQL-Abfragen in Access

SQL ist eine der gebräuchlichsten Programmiersprachen zum Erstellen und Verwalten einer Datenbank sowie zum Ausführen verschiedener Aktionen mit den Daten selbst.

Wie die Praxis zeigt, ist es recht einfach zu erlernen und nutzt den Standardwortschatz optimal aus Englische Sprache. Wie jede andere Programmiersprache verfügt auch SQL über eine eigene Logik und Syntax Hauptbefehle und Regeln für deren Verwendung.

Klassifizierung von SQL-Befehlen

Alle Standardvarianten können je nach Zweck in Betracht gezogen werden. Als Grundlage für die informelle Klassifizierung können folgende Mengen herangezogen werden:

    Befehle zum Erstellen von Abfragen.

    Befehle integrierter Prozeduren und Funktionen.

    Befehle für Trigger und Systemtabellen.

    Kombinationssätze für die Arbeit mit Datums- und Zeichenfolgenvariablen.

    Befehle zum Arbeiten mit Daten und Tabellen.

Diese Klassifizierung kann unbegrenzt fortgesetzt werden, aber die Hauptsätze von SQL-Befehlen werden genau auf der Grundlage dieser Typen erstellt.

Wenn man über die Klassifizierung der Sprache nachdenkt, kann man nicht umhin zu erwähnen, dass sie universell ist, was durch den Umfang ihrer Verwendung belegt wird. Diese Programmiersprache und ihre Varianten werden nicht nur in der Standardumgebung verwendet, sondern auch in anderen Programmen, die Sie auf die eine oder andere Weise verwendet haben.

Der Einsatzbereich von SQL kann aus bürokratischer Sicht betrachtet werden Software, nämlich MicrosoftAccess. Mit dieser Sprache bzw. ihrer Version MySQL können Sie Datenbanken verwalten Internet-Netzwerke. Sogar die Oracle-Entwicklungsumgebung verwendet SQL-Befehle als Kern ihrer Abfragen.

Verwenden von SQL in MicrosoftAccess

Einer der meisten einfache Beispiele Als Sprache für die Datenbankprogrammierung gilt das Microsoft Office-Softwarepaket. Ich studiere das Softwareprodukt wird im Schulinformatikkurs vorgesehen und in der elften Klasse wird das Datenbankverwaltungssystem MicrosoftAccess besprochen.

Durch das Erlernen dieser Anwendung werden die Schüler mit der Datenbankentwicklungssprache vertraut und erlangen ein grundlegendes Verständnis für alles, was damit zusammenhängt. Access-SQL-Befehle sind natürlich recht primitiv, wenn man sie auf professioneller Ebene betrachtet. Die Ausführung solcher Befehle ist sehr einfach und sie werden in einem benutzerdefinierten Code-Editor erstellt.

Schauen wir uns ein konkretes Beispiel an:

SELECT Pe_SurName

WHERE Pe_Name = "Mary";

Anhand der Syntax des Befehls können Sie erkennen, dass der Nachname einer Person, in diesem Fall einer Frau namens Mary, an den Benutzer zurückgegeben wird, der in der Datenbanktabelle „Kontakte“ gespeichert ist.

Wenngleich mit SQL Der Zugriff ist begrenzt, manchmal können solche einfachen Abfragen die anstehende Aufgabe erheblich vereinfachen.

Verwenden von SQL-Befehlen in Oracle

Oracle ist wahrscheinlich der einzige ernsthafte Konkurrent von Microsoft SQL-Server. Es ist diese Entwicklungs- und Verwaltungsumgebung, die ständig zur Verbesserung der Funktionen des Softwareprodukts von Microsoft führt, denn Wettbewerb ist der Motor des Fortschritts. Trotz des ständigen Wettbewerbs replizieren die SQL-Teams von Oracle SQL. Es ist erwähnenswert, dass Oracle zwar als fast vollständige Kopie von SQL gilt, die Logik dieses Systems und der Sprache insgesamt jedoch als einfacher gilt.

Das Oracle-System weist bei Verwendung eines bestimmten Befehlssatzes keine so komplexe Struktur auf. Angesichts der Fähigkeiten dieser Datenbankentwicklungsumgebungen verfügt Oracle nicht über eine komplexe verschachtelte Abfragestruktur.

Dieser Unterschied ermöglicht eine um ein Vielfaches schnellere Arbeit mit Daten, führt aber im Gegenteil in Einzelfällen zu einer irrationalen Speichernutzung. Die Struktur von Oracle basiert hauptsächlich auf temporären Tabellen und deren Verwendung. Als Beispiel: SQL-Befehle in diesem System sind analog zu den Standards der SQL-Sprache selbst aufgebaut, weichen jedoch geringfügig davon ab.

SELECTCONCAT(CONCAT(CONCAT('Employee', sname), CONCAT(SUBSTR(fname, 0, 1), SUBSTR(otch, 0, 1)), CONCAT('accepted', Acceptdate)) FROM Mitarbeiter WHERE Acceptdate > to_date ( '01.01.80′,'dd.mm.yyyy');

Diese Abfrage liefert Daten über Mitarbeiter, die in einem bestimmten Zeitraum eingestellt wurden. Obwohl die Abfragestruktur unterschiedlich ist, ist die Ausführung von SQL-Befehlen in diesen Systemen bis auf kleinere Details ähnlich.

Verwendung von SQL im Internet

Mit dem Aufkommen des World Wide Web, also des Internets, erweitert sich der Einsatzbereich der SQL-Sprache. Wie Sie wissen, werden viele Informationen im Netzwerk gespeichert, diese werden jedoch nicht zufällig lokalisiert, sondern nach bestimmten Kriterien auf Websites und Servern abgelegt.

Datenbanken sind wie auch anderswo direkt für die Speicherung von Informationen im Internet verantwortlich und Websites sind Verwaltungssysteme. In der Regel sind Websites und deren Programmcode in organisiert verschiedene Sprachen Programmierung, aber Datenbanken basieren auf einer der Varianten von SQL, nämlich der Datenbankerstellungssprache, die sich an MySQL-Webschnittstellen orientiert.

Die Syntax und der grundlegende Befehlssatz dieser Sprache kopieren vollständig das bekannte SQL, weisen jedoch einige eigene Ergänzungen auf, die sie von Microsoft tSQL Server unterscheiden.

SQL-Befehle sind nicht nur in der Syntax, sondern auch im Standardsatz an Funktionswörtern völlig ähnlich. Der einzige Unterschied besteht im Aufruf und der Strukturierung der Anfrage. Sie können beispielsweise eine Anfrage zum Erstellen einer neuen Tabelle in Betracht ziehen. Dies ist das Erste, was Kindern in Informatikschulen beigebracht wird:

$link = mysqli_connect("localhost", "root", "", "tester");

if (!$link) die("Fehler");

$query = "Tabellenbenutzer erstellen(

anmelden VARCHAR(20),

Passwort VARCHAR(20)

if (mysqli_query($link, $query)) echo „Die Tabelle wurde erstellt.“;

elseecho „Tabelle nicht erstellt: „.mysqli_error();

mysqli_close($link);

Als Ergebnis der Ausführung einer solchen Abfrage können Sie eine neue „Benutzer“-Tabelle erhalten, die zwei Felder enthält: Login und Passwort.

Die Syntax wurde für das Web geändert, basiert jedoch auf MicrosoftSQLServer-Befehlen.

Erstellen von MicrosoftSQLServer-Abfragen

Die Auswahl aus Tabellen eines bestimmten Datensatzes ist eine der Hauptaufgaben von SQL. Für solche Operationen steht der Select-Befehl in SQL zur Verfügung. Darauf wird im Folgenden eingegangen.

Die Regeln zum Erstellen eines Befehls sind sehr einfach, und der Auswahlbefehl selbst in SQL ist wie folgt aufgebaut. Beispielsweise gibt es eine Tabelle, die Daten über einen Mitarbeiter enthält, der beispielsweise den Namen Person trägt. Stellen wir uns die Aufgabe, aus der Tabelle Daten über Mitarbeiter auszuwählen, deren Geburtsdatum im Zeitraum vom 1. Januar bis einschließlich 1. März des laufenden Jahres liegt. Für eine solche Auswahl müssen Sie einen SQL-Befehl ausführen, der nicht nur die Standardkonstruktion, sondern auch die Auswahlbedingung enthält:

Wählen Sie * unter Person aus

Wobei P_BerthDay >= ‚01.01.2016‘ und P_BerthDay<= ‘03/01/2016’

Wenn Sie einen solchen Befehl ausführen, werden alle Daten zu Mitarbeitern zurückgegeben, deren Geburtstag in dem von Ihnen angegebenen Zeitraum liegt. Manchmal besteht die Aufgabe darin, nur den Nachnamen, Vornamen und Vatersnamen eines Mitarbeiters anzuzeigen. Dazu müssen Sie die Anfrage etwas anders aufbauen, zum Beispiel so:

SelectP_Name – Name

P_SurName – Nachname

P_Patronimic – Patronym

Wobei P_BerthDay >= ‚01.01.2016‘ und P_BerthDay<= ‘03/01/2016’

Dies ist jedoch nur eine Auswahl von etwas. Es hat im Wesentlichen keinen Einfluss auf irgendetwas, sondern liefert nur Informationen. Wenn Sie sich jedoch dazu entschließen, die SQL-Sprache ernst zu nehmen, müssen Sie lernen, wie Sie Änderungen an Datenbanken vornehmen, da der Aufbau ohne diese Sprache einfach unmöglich ist. Wie dies geschieht, wird weiter unten besprochen.

Grundlegende SQL-Befehle zum Ändern von Daten

Die Sprachsyntax ist nicht nur für die Ausführung von Abfragen, sondern auch für die Bearbeitung von Daten konzipiert. Die Hauptaufgabe eines Datenbankprogrammierers besteht darin, Skripte für Auswahlen und Berichte zu schreiben. Manchmal ist es jedoch erforderlich, Änderungen an Tabellen vorzunehmen. Die Liste der SQL-Befehle für solche Aktionen ist klein und besteht aus drei Hauptbefehlen:

    Einfügen (trans. Einfügen).

    Update (trans. Update).

    Löschen (trans. Löschen).

Der Zweck dieser Befehle ist leicht zu ermitteln; Sie müssen lediglich ihren Namen übersetzen. Diese Befehle sind einfach zu verwenden und haben eine einfache Struktur. Es ist jedoch erwähnenswert, dass einige von ihnen bei falscher Verwendung irreparable Schäden an der Datenbank verursachen können.

In der Regel müssen Sie vor der Verwendung solcher MSSQL-Befehle sorgfältig darüber nachdenken und alle möglichen Konsequenzen ihrer Ausführung berücksichtigen.

Nachdem Sie diese Befehle erlernt haben, können Sie vollständig mit der Arbeit mit Datenbanktabellen beginnen, diese ändern und einige neue Variablen hinzufügen oder alte löschen.

Befehl einfügen

Um Daten in eine Tabelle einzufügen, ist der Befehl „Einfügen“ der sicherste. Falsch eingegebene Daten können jederzeit gelöscht und erneut in die Datenbank eingegeben werden.

Der Befehl „Einfügen“ dient zum Einfügen neuer Daten in eine Tabelle und ermöglicht das Hinzufügen sowohl eines vollständigen Satzes als auch selektiv.

Betrachten Sie beispielsweise den Befehl zum Einfügen in die zuvor beschriebene Person-Tabelle. Um Daten in eine Tabelle einzugeben, müssen Sie einen SQL-Befehl ausführen, der es Ihnen ermöglicht, alle Daten in die Tabelle einzufügen oder sie selektiv zu füllen.

In Person einfügen

Wählen Sie „Grigoriev“, „Vitaly“, „Petrovich“, „01.01.1988“.

Befehle dieser Art füllen automatisch alle Tabellenzellen mit den angegebenen Daten. Es gibt Situationen, in denen ein Mitarbeiter keinen zweiten Vornamen hat, beispielsweise weil er als Austauschstudent aus Deutschland zur Arbeit gekommen ist. In diesem Fall müssen Sie einen Dateneinfügungsbefehl ausführen, der nur das in die Tabelle einträgt, was benötigt wird. Die Syntax eines solchen Befehls lautet wie folgt:

Insertintoperson(P_Name, P_SurName, P_BerthDay)

Werte („David“, „Hook“, „11.02.1986“)

Ein solcher Befehl füllt nur die angegebenen Zellen und alle anderen haben den Wert Null.

Befehl zum Ändern von Daten

Um die Daten sowohl der gesamten Zeile als auch einiger Zellen zu ändern, verwenden Sie den Befehl „SQL aktualisieren“. Sie müssen einen solchen Befehl nur unter einer bestimmten Bedingung ausführen, nämlich genau angeben, an welcher Zeile Sie Änderungen vornehmen müssen.

Der Befehl „SQL aktualisieren“ hat eine einfache Syntax. Für eine korrekte Verwendung müssen Sie angeben, welche Daten in welcher Spalte und in welchem ​​Datensatz geändert werden sollen. Als nächstes erstellen Sie ein Skript und führen es aus. Schauen wir uns ein Beispiel an. Wir müssen das Geburtsdatum von David Hooke ändern, der in der Mitarbeitertabelle als Nummer 5 aufgeführt ist.

Legen Sie P_BerthDay = '02/10/1986' fest, wobei P_ID = 5 ist

Die Bedingung (in diesem Skript) ermöglicht es Ihnen nicht, das Geburtsdatum in allen Tabellendatensätzen zu ändern, sondern aktualisiert nur die erforderlichen.

Dieser Befehl wird von Programmierern am häufigsten verwendet, da er es Ihnen ermöglicht, die Daten in der Tabelle zu ändern, ohne dass alle Informationen erheblich beschädigt werden.

Befehle zur Verwendung integrierter Prozeduren und Funktionen

Mit der SQL-Sprache können Sie nicht nur Abfragen erstellen, sondern auch integrierte Mechanismen für die Arbeit mit Daten erstellen. In der Regel gibt es Zeiten, in denen Sie eine Auswahl verwenden müssen, die zuvor im Hauptteil einer Anfrage geschrieben wurde.

Wenn Sie logisch urteilen, müssen Sie den Text der Auswahl kopieren und an der richtigen Stelle einfügen, aber Sie können auch mit einer einfacheren Lösung auskommen. Betrachten wir ein Beispiel, bei dem auf der Arbeitsoberfläche eine Schaltfläche zum Drucken eines Berichts, beispielsweise in Excel, angezeigt wird. Dieser Vorgang wird nach Bedarf durchgeführt. Für solche Zwecke werden integrierte gespeicherte Prozeduren verwendet. Die Befehle werden in diesem Fall in eine Prozedur eingeschlossen und mit dem SQLExec-Befehl aufgerufen.

Nehmen wir an, dass eine Prozedur erstellt wurde, um das Geburtsdatum von Mitarbeitern aus der zuvor beschriebenen Personentabelle anzuzeigen. In diesem Fall ist es nicht erforderlich, die gesamte Anfrage zu schreiben. Um die erforderlichen Informationen zu erhalten, führen Sie einfach den Befehl Exec [Prozedurname] aus und übergeben Sie die für die Stichprobenerhebung erforderlichen Parameter. Als Beispiel können wir den Mechanismus zum Erstellen einer Prozedur dieser Art betrachten:

CREATEPROCEDUREPrintPerson

@DBsmalldatetime

@DE smalldatetime

SELECT * aus Person

VON HumanResources.vEmployeeDepartmentHistory

WHERE P_BerthDay >= @DB und P_BerthDay<= @DE

ANDEndDateISNULL;

Dieses Verfahren gibt alle Informationen über Mitarbeiter zurück, deren Geburtstag in einem bestimmten Zeitraum liegt.

Organisation der Datenintegrität. Auslöser

Einige MS SQL-Befehle, man könnte sogar Konstrukte sagen, ermöglichen es Ihnen, nicht nur Manipulationen mit Daten zu organisieren, sondern auch deren Integrität sicherzustellen. Zu diesem Zweck enthält die Sprache Systemkonstrukte, die vom Programmierer selbst erstellt werden. Dabei handelt es sich um sogenannte Trigger, die eine Datenkontrolle ermöglichen können.

In diesem Fall werden Standard-SQL-Abfragebefehle verwendet, um die Überprüfung der Bedingungen zu organisieren. In Triggern können Sie zahlreiche Bedingungen und Einschränkungen für die Arbeit mit Daten erstellen, die nicht nur dabei helfen, den Zugriff auf Informationen zu kontrollieren, sondern auch das Löschen, Ändern oder Einfügen von Daten zu verhindern.

Es gibt keine Einschränkungen hinsichtlich der Arten von SQL-Befehlen, die in einem Trigger verwendet werden können. Schauen wir uns ein Beispiel an.

Wenn wir den Mechanismus zum Erstellen eines Triggers beschreiben, sind die Arten von SQL-Befehlen hier dieselben wie beim Erstellen einer Prozedur. Der Algorithmus selbst wird im Folgenden beschrieben.

Zunächst müssen wir den Servicebefehl zum Erstellen von Triggern beschreiben:

Wir geben an, für welchen Datenvorgang (in unserem Fall handelt es sich um einen Datenänderungsvorgang).

Der nächste Schritt besteht darin, die Tabellen und Variablen anzugeben:

@ID int deklarieren. @Date smalldatetime @nID int. @nDatesmalldatetime

Deklarieren Sie den Cursor C1, um P_ID und P_BerthDay aus Eingefügt auszuwählen

Deklarieren Sie Cursor C2 für die Auswahl von P_ID und P_BerthDay aus gelöscht

Wir legen die Datenauswahlschritte fest. Anschließend schreiben wir in den Körper des Cursors die Bedingung und die Reaktion darauf:

wenn @ID = @nID und @nDate = "01.01.2016"

sMasseges „Der Vorgang kann nicht durchgeführt werden. Das Datum ist nicht geeignet“

Erwähnenswert ist, dass ein Trigger nicht nur erstellt, sondern auch vorübergehend deaktiviert werden kann. Diese Manipulation kann nur von einem Programmierer durch Ausführen der SQL SERVER-Befehle durchgeführt werden:

altertablePERSONdisabletriggerall – um alle für diese Tabelle erstellten Trigger zu deaktivieren, und dementsprechend altertablePERSONenabletriggerall – um sie zu aktivieren.

Diese grundlegenden SQL-Befehle werden am häufigsten verwendet, ihre Kombinationen können jedoch variiert werden. SQL ist eine sehr flexible Programmiersprache und bietet dem Entwickler maximale Möglichkeiten.

Abschluss

Aus all dem können wir die einzige Schlussfolgerung ziehen: Kenntnisse der SQL-Sprache sind für diejenigen, die sich ernsthaft mit dem Programmieren beschäftigen möchten, einfach notwendig. Es liegt allen Vorgängen zugrunde, die sowohl im Internet als auch in Heimdatenbanken ausgeführt werden. Deshalb muss ein angehender Programmierer viele Befehle dieser Sprache kennen, denn nur mit deren Hilfe kann man sozusagen mit einem Computer kommunizieren.

Natürlich gibt es wie bei allem auf dieser Welt auch Nachteile, aber diese sind so unbedeutend, dass sie im Vergleich zu den Vorteilen einfach in den Hintergrund treten. Unter allen Programmiersprachen ist SQL praktisch die einzige ihrer Art, da sie universell ist und fast allen Websites Kenntnisse im Schreiben von Skripten und Codes zugrunde liegen.

Der Hauptvorteil von SQL ist zweifellos seine Einfachheit, denn schließlich ist es im Lehrplan der Schule enthalten. Sogar ein unerfahrener Programmierer, der Sprachen nicht wirklich versteht, kommt damit zurecht.

Erstellen einer Power-Design-Tabelle mit DDL

Alle Datenbankdefinitionsschritte, die mit einem RAD-Tool wie Access durchgeführt werden können, können auch mit SQL durchgeführt werden. Anstatt auf Menüelemente zu klicken, geben Sie in diesem Fall Befehle über die Tastatur ein. Für diejenigen, die es vorziehen, grafische Objekte zu manipulieren, sind die RAD-Tools einfach und natürlich zu verstehen und zu erlernen. Andere, die Wörter lieber in Sätze mit einer bestimmten Logik einfügen, glauben, dass SQL-Befehle einfacher und natürlicher seien. Da einige Dinge mit dem Objektparadigma leicht darzustellen sind und andere mit SQL leicht zu handhaben sind, ist es hilfreich, über gute Kenntnisse beider Methoden zu verfügen.

In den folgenden Abschnitten wird SQL verwendet, um dieselben Tabellenerstellungs-, Änderungs- und Löschaktionen auszuführen, die im vorherigen Abschnitt mit dem RAD-Tool ausgeführt wurden.

Verwendung von SQL mit Microsoft Access

Access wurde als RAD-Tool (Rapid Application Development) konzipiert, das keine Programmierung erfordert. Obwohl Sie SQL-Befehle direkt in Access schreiben und ausführen können, ist dies auch über die Hintertür möglich. Um den Haupteditor zu öffnen, der zur Eingabe von SQL-Code dient, gehen Sie folgendermaßen vor:

  1. Öffnen Sie die Datenbank und wählen Sie dann Abfragen aus der Objektliste aus.
  2. Wählen Sie im Aufgabenbereich auf der rechten Seite des Fensters die Option Abfrage in Entwurfsansicht erstellen aus. Das Dialogfeld „Tabelle hinzufügen“ wird angezeigt.
  3. Wählen Sie eine der Tabellen aus und klicken Sie auf die Schaltflächen „Hinzufügen“ und „Schließen“. Ignorieren Sie den blinkenden Cursor im neu erstellten Abfragefenster.
  4. Wählen Sie im Hauptmenü von Access die Option SQL-Modus anzeigen aus. Es erscheint ein Editorfenster mit der startenden SQL-SELECT-Anweisung.
  5. Entfernen Sie die SELECT-Anweisung und geben Sie dann die erforderliche SQL-Anweisung ein.
  6. Wenn Sie fertig sind, klicken Sie auf das Symbol Speichern. Access fordert Sie auf, einen Namen für die soeben erstellte Abfrage einzugeben.
  7. Geben Sie einen Namen für die Anfrage ein und klicken Sie auf OK.

Der soeben erstellte Befehl wird gespeichert und später als Abfrage ausgeführt. Leider führt Access nicht den gesamten Umfang der SQL-Befehle aus. Beispielsweise wird der Befehl CREATE TABLE nicht ausgeführt. Sobald Sie jedoch eine Tabelle erstellt haben, können Sie nahezu jede erforderliche Transformation der darin enthaltenen Daten durchführen.

Eine Tabelle erstellen

Wenn Sie mit einem voll ausgestatteten DBMS wie Microsoft SQL Server, Oracle 9i oder IBM DB2 arbeiten, müssen Sie beim Erstellen einer Tabelle mit SQL dieselben Informationen eingeben wie beim Erstellen einer Tabelle mit einem RAD-Tool. Der Unterschied besteht darin, dass das RAD-Tool Sie dabei unterstützt, indem es Ihnen ein Dialogfeld zur Tabellenerstellung (oder eine ähnliche Struktur) zur Verfügung stellt und Sie daran hindert, falsche Feldnamen, -typen oder -größen einzugeben. SQL wird Ihnen nicht so viel Aufmerksamkeit schenken. Wenn Sie mit SQL arbeiten, sollten Sie von Anfang an genau wissen, was zu tun ist. Es muss eine vollständige CREATE TABLE-Anweisung eingegeben werden, bevor SQL dies überhaupt bemerkt, geschweige denn, dass Ihnen mitgeteilt wird, ob die Anweisung Fehler enthält.

Der folgende Befehl erstellt eine Tabelle, die mit der zuvor erstellten identisch ist:

TABELLE PowerSQL ERSTELLEN
Vorschlagsnummer KLEINE INT
Vorname CHAR (15),
Nachname CHAR(20),
Adresse CHAR(30),
Stadt CHAR(25),
StaatProvinz CHAR(2),
Postleitzahl CHAR(10),
Land CHAR(30),
Telefon CHAR (14),
WieWissen CHAR(30),
Vorschlag CHAR(50),
BusinOrCharity CHAR(1);

Wie Sie sehen, sind die Informationen im Wesentlichen dieselben wie beim Erstellen einer Tabelle mit RAD-Tools (wie weiter oben in diesem Kapitel beschrieben). Sie können jeder Methode zum Erstellen von Tabellen den Vorzug geben. Das Gute an der SQL-Sprache ist jedoch ihre Vielseitigkeit. Die gleiche Standardsyntax funktioniert in jedem Datenbankverwaltungssystem.

Erinnern:
Jeder Aufwand, der in das Erlernen von SQL investiert wird, wird sich mit der Zeit auszahlen, denn diese Sprache wird nicht so schnell verschwinden. Und der Aufwand, den Sie investieren, um ein Experte in Ihrer Entwicklungsumgebung zu werden, wird sich wahrscheinlich weniger auszahlen. Und egal wie großartig das neueste RAD-Tool ist, Sie können sicher sein, dass es innerhalb von zwei bis drei Jahren durch bessere Technologie ersetzt wird. Es wäre großartig, wenn Sie in dieser Zeit die Mühe, die Sie in das Erlernen dieses Instruments gesteckt haben, wieder hereinholen könnten! Wenn Sie können, dann nutzen Sie es. Und wenn das nicht möglich ist, dann wäre es klüger, beim alten und bewährten Mittel zu bleiben. SQL-Kenntnisse werden sich viel länger auszahlen
.

In früheren Artikeln wurden die Probleme erörtert. Berücksichtigt wird die Technologie zur Erstellung der Struktur der Datenbanktabellen „sql_training_st.mdb“ auf Basis von SQL-Abfragen. Darüber hinaus wurden mittels SQL-Abfragen die ACCESS DBMS-Tabellen „sql_training_st.mdb“ gefüllt.

Es ist bekannt, dass die SQL-Sprache in relationalen Datenbanken darauf ausgelegt ist, Daten zu manipulieren, die Struktur der Datenbank und ihrer Komponenten zu definieren, den Benutzerzugriff auf die Datenbank zu steuern und Transaktionen zu verwalten oder Änderungen in der Datenbank zu verwalten.

Die SQL-Sprache besteht aus vier Gruppen:

  • Datenmanipulationssprache DML;
  • DDL-Datendefinitionssprache;
  • Datenverwaltungssprache DCL;
  • TCL-Transaktionskontrollsprache.

Die DML-Gruppe umfasst vier Haupttypen von SQL-Abfragen:

  • INSERT – dient zum Hinzufügen eines oder mehrerer Datensätze am Ende der Tabelle;
  • UPDATE – zum Ändern vorhandener Datensätze in Tabellenspalten oder zum Ändern von Daten in der Tabelle;
  • DELETE – dient zum Löschen von Datensätzen aus der Tabelle;
  • SELECT – dient zum Auswählen von Daten aus Tabellen.

Auf der Seite wurden die ersten drei Arten von SQL-Abfragen (INSERT, UPDATE, DELETE) besprochen, die sich auf Korrekturabfragen an die Datenbank beziehen

In diesem Artikel betrachten wir Abfragen zum Abrufen von Daten aus Access-Datenbanktabellen.

Um in einer Access 2003- oder 2007-Datenbank gespeicherte Informationen abzurufen, können Sie eine SELECT-Abfrage verwenden, um Daten aus Tabellen auszuwählen.

Lassen Sie uns die folgende SQL-Abfrage (SQL-Anweisung) für die Stichprobe verfassen. Wählen Sie dazu den SQL-Modus aus, indem Sie den Befehl „View/SQL-Modus“ ausführen. Geben Sie über die Tastatur die folgende SQL-Anweisung ein:

WÄHLEN *
VON Studenten;

Diese Anweisung besteht aus zwei Klauseln „SELECT *“ und „FROM Students“. Die erste Klausel enthält eine SELECT-Anweisung und einen Bezeichner * („Bezeichner *“ bedeutet die Auflistung aller Spalten der Tabelle). Die zweite Klausel enthält die FROM-Anweisung und den Bezeichner „Students“.

FROM – Definiert die Students-Tabelle, die die in der SELECT-Klausel angegebenen Felder enthält. Zu beachten ist, dass eine Auswahlabfrage immer zwei Anweisungen enthält: SELECT und FROM. Abhängig von den Auswahlbedingungen können weitere Betreiber in der Auswahlanfrage enthalten sein. Abbildung 1 zeigt einen Screenshot einer Anfrage zum Abrufen von Daten.


Reis. 1. SQL SELECT-Abfrage zur Auswahl von Daten

In diesem Beispiel wird eine Datenstichprobe aus allen Spalten der Tabelle „Studenten“ generiert.

Speichern Sie die Anfrage unter dem Namen „Students-query1“. Als Ergebnis der Ausführung des Befehls „Speichern“ erscheint im „Navigationsbereich“ ein Objekt – „Anfragen: Studenten-Anfrage1“.

Nachdem Sie die Auswahlanfrage gespeichert haben, müssen Sie diese durch Klicken auf das Symbol „Ausführen“ ausführen. Die Ergebnisse des Befehls „Ausführen“ sind in Abb. dargestellt. 2.



Reis. 2. Auswählen von Daten aus allen Spalten der Tabelle „Studenten“.

Die SQL-Sprache verfügt nicht über die Funktionen einer vollwertigen Entwicklungssprache, sondern konzentriert sich auf den Datenzugriff und ist daher in Programmentwicklungstools enthalten. In diesem Fall heißt es eingebettetes SQL. Der SQL-Sprachstandard wird von modernen Implementierungen der folgenden Programmiersprachen unterstützt: PL/1, Ada, C, COBOL, Fortran, MUMPS und Pascal.

In spezialisierten Anwendungsentwicklungssystemen vom Client-Server-Typ wird die Programmierumgebung in der Regel zusätzlich durch Kommunikationstools (Auf- und Abbau von Verbindungen zu Datenbankservern, Erkennen und Behandeln von im Netzwerk auftretenden Fehlern usw.) und Tools für die Entwicklung ergänzt Benutzeroberflächen, Designtools und Debugging

Es gibt zwei Hauptmethoden für die Verwendung von eingebettetem SQL: statisch und dynamisch.

Bei statisch Sprachgebrauch (statisches SQL) Der Programmtext enthält Aufrufe von SQL-Sprachfunktionen, die nach der Kompilierung fest in das ausführbare Modul eingebunden sind. Änderungen an aufgerufenen Funktionen können mithilfe von Programmiersprachenvariablen auf der Ebene einzelner Aufrufparameter erfolgen.

Bei dynamisch Sprachgebrauch (dynamisches SQL) Es geht von der dynamischen Konstruktion von SQL-Funktionsaufrufen und der Interpretation dieser Aufrufe aus, beispielsweise beim Zugriff auf Daten aus einer entfernten Datenbank während der Programmausführung. Die dynamische Methode wird üblicherweise in Fällen verwendet, in denen die Anwendung die Art des SQL-Aufrufs nicht im Voraus kennt und im Dialog mit dem Benutzer erstellt wird.

Der Hauptzweck der SQL-Sprache (sowie anderer Sprachen für die Arbeit mit Datenbanken) besteht darin, Abfragen vorzubereiten und auszuführen. Als Ergebnis der Stichprobenentnahme von Daten aus einer oder mehreren Tabellen kann eine Reihe von Datensätzen namens „ Präsentation.

Leistung ist im Wesentlichen eine Tabelle, die als Ergebnis der Ausführung einer Abfrage erstellt wird. Wir können sagen, dass es sich um eine Art gespeicherte Abfrage handelt. Sie können mehrere Ansichten mit denselben Tabellen erstellen. Die Ansicht selbst wird durch die Angabe der Ansichtskennung und der Anforderung, die zum Abrufen gestellt werden muss, beschrieben.



Um die Arbeit mit Ansichten zu erleichtern, wurde das Konzept eines Cursors in die SQL-Sprache eingeführt. Cursor ist eine Art Zeiger, mit dem man sich bei der Verarbeitung durch Datensätze bewegen kann.

Die Beschreibung und Verwendung eines Cursors in SQL lautet wie folgt. Im beschreibenden Teil des Programms wird eine Variable vom Typ Cursor (CURSOR) mit einer SQL-Anweisung (normalerweise einer SELECT-Anweisung) verknüpft. Im ausführenden Teil des Programms wird der Cursor geöffnet (OPEN<имя курсора», перемещение курсора по записям (FETCI-1 <имя курсора>...), gefolgt von der entsprechenden Verarbeitung und schließlich dem Schließen des Cursors (CLOSE<имя курсора>).

In relationalen DBMS werden zur Durchführung von Operationen an Beziehungen zwei Gruppen von Sprachen verwendet, deren mathematische Grundlage die von E. Codd vorgeschlagenen theoretischen Abfragesprachen sind:

Relationale Algebra;

Beziehungsrechnung.

In der relationalen Algebra Die Operanden und Ergebnisse aller Aktionen sind Beziehungen. Relationale Algebrasprachen sind prozedural, da die Beziehung, die sich aus einer Abfrage in einer relationalen Datenbank ergibt, durch die Ausführung einer Folge relationaler Operatoren ausgewertet wird, die auf die Beziehungen angewendet werden. Operatoren bestehen aus Operanden, also Beziehungen, und relationalen Operationen.

Die Operationen der relationalen Algebra nach Codd können in zwei Gruppen unterteilt werden: grundlegende mengentheoretische und spezielle relationale. Die erste Gruppe von Operationen umfasst die klassischen Operationen der Mengenlehre: Vereinigung, Differenz, Schnittmenge und Produkt. Die zweite Gruppe stellt die Entwicklung gewöhnlicher mengentheoretischer Operationen hin zu realen Problemen der Datenmanipulation dar; sie umfasst die Operationen: Projektion, Auswahl, Division und Verbindung.

Kalkülsprachen sind nicht prozedural (beschreibend oder deklarativ) und ermöglichen das Ausdrücken von Abfragen mithilfe eines Prädikats erster Ordnung (Funktionsanweisungen), das Tupel oder relationale Domänen erfüllen müssen. Eine mit einer solchen Sprache ausgeführte Datenbankabfrage enthält nur Informationen über das gewünschte Ergebnis. Diese Sprachen zeichnen sich durch das Vorhandensein von Regelsätzen zum Schreiben von Abfragen aus. Zu den Sprachen dieser Gruppe gehört insbesondere SQL.

Merkmale der Anwendung SQL-Abfragen

Eine SQL-Abfrage ist eine Abfrage, die mithilfe einer SQL-Anweisung erstellt wird. Beispiele für SQL-Abfragen sind Join-Abfragen, Serverabfragen, Kontrollabfragen und untergeordnete Abfragen.

Eine Join-Abfrage ist eine Abfrage, die Felder (Spalten) aus einer oder mehreren Tabellen oder Abfragen in einem einzelnen Feld oder einer einzelnen Spalte im Ergebnissatz von Datensätzen kombiniert. Beispielsweise stellen sechs Verkäufer dem Management jeden Monat eine Bestandsaufnahme ihres Lagerbestands zur Verfügung. Durch das Erstellen einer Join-Abfrage können Sie diese Bestände in einer Ergebnismenge von Datensätzen kombinieren und dann eine Abfrage zum Erstellen einer Tabelle basierend auf der Join-Abfrage entwickeln.

Eine Anfrage an den Server übermittelt SQL-Befehle über ODBC an einen Server, beispielsweise Microsoft SQL Server. Mit Serverabfragen können Sie direkt mit Tabellen auf dem Server arbeiten, anstatt sie zu verknüpfen. Das Ergebnis einer Anfrage an den Server kann das Laden von Datensätzen oder das Ändern von Daten sein.

Eine Kontrollabfrage erstellt oder ändert Datenbankobjekte, z. B. Access- oder SQL Server-Tabellen.

Eine Unterabfrage besteht aus einer SQL-SELECT-Anweisung innerhalb einer anderen Auswahl- oder Änderungsabfrage. Diese Anweisungen werden in die Zeile „Feld“ des Anforderungsformulars eingegeben, um ein neues Feld zu definieren, oder in die Zeile „Auswahlbedingung“, um die Feldauswahlbedingung zu definieren. Unterabfragen werden für Folgendes verwendet:

Überprüfen einer Unterabfrage auf das Vorhandensein einiger Ergebnisse mithilfe der reservierten Wörter EXISTS oder NO EXISTS;

Durchsucht die Hauptabfrage nach Werten, die gleich, größer oder kleiner als die in der Unterabfrage zurückgegebenen Werte sind (unter Verwendung der reservierten Wörter ANY, IN oder ALL);

Erstellen von Unterabfragen innerhalb von Unterabfragen (verschachtelte Unterabfragen).

Die SQL-Sprache in Access kann zum Entwickeln von Masken und Berichten sowie zum Erstellen von Makros und VBA-Programmen verwendet werden.

Beziehung zwischen QBE- und SQL-Sprachen

In Access besteht eine enge Beziehung zwischen den Sprachen QBE und SQL. Vom Benutzer ausgefüllte Abfragetabellen (Formulare) in der QBE-Sprache werden vor der sofortigen Ausführung in SQL-Ausdrücke umgewandelt. Das heißt, die SQL-Sprache ist ein interner Standard zum Ausführen von Abfragen. Dieser Mechanismus bietet den Vorteil, dass das Access-System die Vorbereitung von Abfragen für die Ausführung auf lokalen und Remote-Computern vereinheitlichen kann. Im letzteren Fall wird die SQL-Nachricht tatsächlich an den Computer – den Anfrageserver – übermittelt.

In Access kann sich eine Abfrage in einem von drei Modi (Zuständen) befinden: Design, SQL und Tabelle. Der Entwurfsmodus wird verwendet, um eine neue Abfrage von Grund auf zu entwickeln (ohne Assistenten oder andere Tools zu verwenden) oder das Layout einer vorhandenen Abfrage zu ändern. Der SQL-Modus wird zum Eingeben oder Anzeigen von SQL-Anweisungen verwendet. Der Tabellenmodus wird zum Arbeiten mit Abfrageergebnissen verwendet.

SQL in Formularen und Berichten

Die Hauptquellen für Datensätze in Anzeigen und Berichten sind Tabellen und Abfragen. Im zweiten Fall kann es sich bei der Anfrage um eine vorgefertigte Datenbankabfrage oder um eine bei der Entwicklung eines Formulars oder Berichts erstellte Anfrage handeln.

SQL in Makros

Makrobefehle sind Teil von Makros, die dazu dienen, die Ausführung häufig wiederholter Aktionen bei der Arbeit mit einer Datenbank zu automatisieren. Ein Makro besteht aus einem oder mehreren Makrobefehlen mit Argumenten.

Makros werden aus dem Datenbankfenster oder automatisch beim Eintreten bestimmter Ereignisse aufgerufen. Das Ereignis, das ein Makro auslöst, kann beispielsweise der Klick auf eine Schaltfläche im Formularbereich oder das Öffnen eines Datenbankfensters sein. Neben der Ausführung bestimmter Aktionen an Datenbankobjekten können Makros auch andere Makros, Visual Basic-Programme und externe Anwendungen aufrufen.

Von den vielen Makrobefehlen stehen zwei Makrobefehle in direktem Zusammenhang mit SQL: „Run SQL Query“ (Run SQL) und „Open Query“ (OpenQuery).

Makrobefehl SQL-Abfrage ausführen führt eine Access-Änderungs- oder Kontrollabfrage mit der entsprechenden SQL-Anweisung aus. Dieses Makro ermöglicht es, Aktionen in einem Makro auszuführen, ohne zuvor Abfragen zu speichern. Sie können gespeicherte Abfragen auch mit dem Makro ausführen.

Änderungswünsche sind SQL-Anweisungen, die die folgenden Funktionen implementieren: Hinzufügen (INSERT INTO), Löschen (DELETE), Erstellen einer Tabelle (SELECT...INTO) und Aktualisieren (UPDATE).

Kontrollanfragen sind SQL-Anweisungen, die die folgenden Funktionen ausführen: eine Tabelle erstellen (CREATE TABLE), eine Tabelle ändern (ALTER TABLE), eine Tabelle löschen (DROP TABLE), einen Index erstellen (CREATE INDEX) und einen Index löschen (DROP INDEX).

Das einzige und erforderliche Argument des Makrobefehls Ausführen einer SQL-Abfrage ist eine SQL-Anweisung. Makroargument als SQL-Text – Anweisungen werden manuell in das Makro-Eingabefenster eingegeben oder aus dem SQL-Fenster kopiert, was oft praktischer ist.

Makrobefehl OpenRequest ermöglicht Ihnen das Öffnen einer Auswahl- oder Kreuzabfrage (im Tabellen-, Entwurfs- und Vorschaumodus) sowie das Ausführen einer Abfrage zum Ändern oder Eingeben von Daten.

Das Makro gibt drei Argumente an: Anforderungsname, Modus und Datenmodus. Das erste Argument gibt den Namen der zu öffnenden Anforderung an und ist erforderlich. Das zweite Argument gibt den Abfrageöffnungsmodus an (Tabelle, Design und Ansicht). Das dritte Argument beschreibt den Modus der Dateneingabe in die Anfrage („Hinzufügen“, „Ändern“ und „Schreibgeschützt“).

SQL in VBA-Programmen

VBA ist wie Makros darauf ausgelegt, sich wiederholende Vorgänge an Access-Datenbankobjekten zu automatisieren.

In Access gibt es die folgenden Möglichkeiten, VBA-Programme auszuführen:

Einbindung eines Programms in die Ereignisverarbeitung;

Aufrufen einer Funktion in einem Ausdruck;

Aufrufen einer Sub-Prozedur in einer anderen Prozedur oder in einem Debugging-Fenster;

Ausführen des Makrobefehls RunCode (RunCode) in einem Makro.

Funktionen werden in Ausdrücken verwendet, die berechnete Felder in Formularen, Berichten oder Abfragen definieren. Ausdrücke werden verwendet, um Bedingungen in Abfragen und Filtern sowie in Makros, VBA-Anweisungen und -Methoden und SQL-Anweisungen anzugeben. Eine Sub-Prozedur kann öffentliche VBA-Subroutinen enthalten, die von anderen Prozeduren aufgerufen werden.

Sehen wir uns die Ausführung einer Datenbankabfrage mithilfe von SQL-Anweisungen in einem Visual Basic für Applikationen-Programm an.

Die Anfrage wählt Datensätze aus der Datenbank aus, die bestimmte Bedingungen erfüllen (Auswahlanfrage), oder gibt Anweisungen zur Durchführung bestimmter Aktionen mit Datensätzen, die bestimmte Bedingungen erfüllen (Änderungsanfrage).

Es gibt folgende Möglichkeiten, Abfragen auszuführen:

Aufrufen der Execute-Methode (um SQL-Abfragen für Änderungen auszuführen);

Erstellung und Ausführung eines speziellen QueryDef-Objekts;

Verwenden einer SQL-Anweisung als Argument für die OpenRecordset-Methode;

Führen Sie die OpenRecordset-Methode für ein vorhandenes QueryDef-Objekt aus.

Aufrufen von RunSQL- und OpenQuery-Methoden.

Methode ausführen Wird verwendet, wenn Sie eine Änderung in der Datenbank vornehmen müssen, die keine Datensätze zurückgibt. Zum Beispiel Operationen zum Einfügen oder Löschen von Datensätzen.

QueryDef-Objekt stellt eine gespeicherte Abfragedefinition in der Datenbank dar. Man kann es sich als eine kompilierte SQL-Anweisung vorstellen.

OpenRecordset-Methode Wird verwendet, um ein Objekt vom Typ Recordset zu öffnen, um darauf folgende Vorgänge auszuführen.

RunSQL-Methode führt ein Makro aus Ausführen einer SQL-Abfrage im VBA-Programm

OpenQuery-Methode führt den OpenQuery-Makrobefehl in einem VBA-Programm aus. Damit können Sie eine Abfrage im Datenblatt-, Design- oder Ansichtsmodus öffnen. Dadurch wird einer der folgenden Modi für die Arbeit mit Daten festgelegt: Hinzufügen, Ändern oder Nur Lesen.

Die Wahl der Abfrageausführungsoption wird vom Programmierer unter Berücksichtigung der Merkmale des zu lösenden Problems festgelegt.

Eine SQL-Abfrage ist eine Abfrage, die mithilfe von SQL-Anweisungen erstellt wird. SQL (Structured Query Language) wird zum Erstellen von Abfragen sowie zum Aktualisieren und Verwalten relationaler Datenbanken wie Microsoft Access-Datenbanken verwendet.

Wenn ein Benutzer im Abfrageentwurfsmodus eine Abfrage erstellt, generiert Microsoft Access automatisch eine entsprechende SQL-Anweisung. Es gibt eine Reihe von Abfragen, die nur im SQL-Modus durchgeführt werden können. Für erfahrene Programmierer ist es oft einfacher, sofort einen Ausdruck in SQL zu schreiben, als eine Abfrage zu erstellen.

Art der Anfrage im Konstruktor:

Bei komplexen Berechnungen müssen Sie mehrere Abfragen nacheinander durchführen, um das Ergebnis zu erhalten. Es ist klar, dass diese Aktionen automatisch und ohne Benutzereingriff durchgeführt werden sollten.

Hierzu werden Makros verwendet, die aus mehreren nacheinander ausgeführten Befehlen bestehen.

Berechnungen in Abfragen, Möglichkeit zum Erstellen und Bearbeiten von Formeln.

Für Felder aus den im Abfrageschema angegebenen Tabellen können Sie beliebige Berechnungen angeben.

Um Berechnungen durchzuführen, müssen Sie der Anfrage zusätzliche berechnete Felder hinzufügen, deren Werte basierend auf den Werten anderer Felder in der Anfrage berechnet werden.

Zusammenfassungsabfragen, Gruppierung, Zusammenfassungsfunktionen.

Die endgültige Abfrage wird im Modus „Zusammenfassungsabfrage“ erstellt.

Es können drei Tabellen verwendet werden, darunter eine Linktabelle.

In diesem Fall können Sie von überall in der Anfrage das Kontextmenü aufrufen (rechte Maustaste) und das Attribut „Gruppenoperationen“ auswählen.

Im Anfrageformular wird eine neue Gruppierungszeile angezeigt.

Gesamtfunktionen: Wählen Sie in dem Feld, für das wir Gesamtsummen berechnen möchten, die Funktion „Summe“ aus der Liste aus, um alle Werte der ausgewählten Felder zu summieren. Die Count-Funktion zählt die Anzahl der Feldwerte. Informationsbearbeitung Microsoft

Eine Abfrage ist ein Aufruf an das DBMS, beliebige Vorgänge mit Daten durchzuführen: Auswahl eines Teils der Daten aus dem Gesamtvolumen, Hinzufügen berechneter Felder, Massenänderung von Daten usw.

In Ihrer Anfrage können Sie:

  • - Informationen aus mehreren zugehörigen Tabellen auswählen;
  • - komplexe Auswahlbedingungen verwenden;
  • - Der Benutzer kann selbst Parameterwerte eingeben und berechnete Felder hinzufügen;
  • - Endberechnungen durchführen.

Arten von Anfragen:

  • - Probenahme;
  • - Erstellen einer Tabelle;
  • - Update (Datenänderung);
  • - Datensätze hinzufügen;
  • - Datensätze löschen.

Abfragen werden als Datensatzquellen für Formulare und Berichte verwendet. In den meisten Fällen müssen Sie sowohl in Formularen als auch in Berichten vor der Ausgabe einen Teil der Daten nach bestimmten Bedingungen auswählen und die Daten sortieren. Dies geschieht über Abfragen. Die Anfrage kann separat gespeichert oder mit einem Formular oder Bericht verknüpft werden.

Microsoft Access verfügt über mehrere Arten von Abfragen.