Microsoft Access 2010 SQL nutzen



Ähnliche Dokumente
Microsoft Access 2010 SQL nutzen

Microsoft Access 2010 Berechnungen in Abfragen. Leibniz Universität IT Services Anja Aue

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Informatik 12 Datenbanken SQL-Einführung

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Microsoft Access 2010 SQL nutzen

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Arbeiten mit einem lokalen PostgreSQL-Server

MS Access 2010 Kompakt

MS Access 2013 Kompakt

Java Einführung Operatoren Kapitel 2 und 3

Datenbanken Microsoft Access 2010

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

S(tructured)Q(uery)L(anguage)

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

1. Erreichen Sie, dass im Feld KdNr (Kunden-Nummer) nur 4-stellige Zahlen eingetragen

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Auswahlabfragen mit ACCESS

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen

Whitepaper. Produkt: combit Relationship Manager / address manager. Integration der Ansicht "Adressen" in eigene Solution

Unterabfragen (Subqueries)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

SQL Data Manipulation Language Daten berechnen. Aggregatfunktionen

Sructred Query Language

1 BEDIENUNGSANLEITUNG

Berechnungen in Access Teil I

Microsoft Access 2010 Bilder

Datenverwaltung mit MS Excel INHALTSVERZEICHNIS

SJ OFFICE - Update 3.0

IV. Datenbankmanagement

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Access Verbrecherdatenbank Teil 3

Praktische SQL-Befehle

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Artikel Schnittstelle über CSV

Updatehinweise für die Version forma 5.5.5

Kurzanleitung für Umsteiger von DataEase.

SQL structured query language

Excel Funktionen durch eigene Funktionen erweitern.

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

Übersicht der wichtigsten MySQL-Befehle

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

Labor 3 - Datenbank mit MySQL

Microsoft Access 2010 Auswahlabfragen erstellen. Leibniz Universität IT Services Anja Aue

105.3 SQL-Datenverwaltung

Besonders für den Anfänger empfiehlt sich folgende Vorgehensweise für die Erstellung von Manipulationsabfragen:

MS Excel 2010 Kompakt

Diana Lange. Generative Gestaltung Operatoren

Erstellen von Formbriefen, Adressetiketten und Briefumschlägen ohne Serienbrief-Assistenten

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Übersicht über Datenbanken

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Excel Pivot-Tabellen 2010 effektiv

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Abfrage-Befehle in MySQL -diverse Funktionen -

Microsoft Access Abfragen: Informationen anzeigen und sortieren

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Abfragen in Access. Die einfache Auswahlabfrage aus einer einzigen Tabelle

Microsoft Access 2010 SQL nutzen

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Bibliografische Informationen digitalisiert durch

Mediator 9 - Lernprogramm

Bedienungsanleitung CAD-KAS Reklamationserfassung. Einen neuen Datensatz anlegen. Klicken Sie auf das + Symbol, um einen neuen Datensatz anzulegen.

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Tag 4 Inhaltsverzeichnis

ZIMT-Dokumentation für Studierende Webmail-Oberfläche (Roundcube)

Einführung in SQL Datenbanken bearbeiten

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

KURZANLEITUNG CLOUD OBJECT STORAGE

Kurzanleitung zur Bereitstellung von Sachverhalten und Lösungen zum Universitätsrepetitorium auf dem Server unirep.rewi.hu-berlin.

SQL (Structured Query Language) Schemata Datentypen

Seriendruck mit der Codex-Software

CRM. Frequently Asked Questions

-Inhalte an cobra übergeben

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Alerts für Microsoft CRM 4.0

Ein Ausflug zu ACCESS

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Zeichen bei Zahlen entschlüsseln

Access Grundkurs. M. Eng. Robert Maaßen

Access Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

Abfragen (Queries, Subqueries)

Microsoft Access 2013 Spezifikationen

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Transkript:

Microsoft Access 2010 SQL nutzen Welchen Bestellwert haben die einzelnen Bestellposten? Wie ist der durchschnittliche Bestellwert? Wie viel Zeit liegt zwischen dem Bestelldatum und dem Versanddatum?

S(tructured)Q(uery)L(anguage) Standardsprache für relationale Datenbanken. Daten in Tabellen manipulieren, aktualisieren, eintragen und löschen. Beschreibung im aktuellen Standard SQL:2011 ISO/IEC 9075:2011. Access SQL in Abfragen nutzen, 29.08.14 Seite 2

Informationen im Web http://www.sql-und-xml.de/sql-tutorial/ http://de.wikibooks.org/wiki/einf%c3%bchrung_in_sql http://www.1keydata.com/de/sql/ http://sql.lernenhoch2.de/lernen/ http://www.schulserver.hessen.de/darmstadt/lichtenberg/ SQLTutorial/ http://msdn.microsoft.com/dede/library/cc451081%28v=vs.71%29.aspx http://www.trivadis.com/fileadmin/user_upload/ email4download_pflicht/ PLSQL_Coding_Guidelines_101125.pdf Access SQL in Abfragen nutzen, 29.08.14 Seite 3

Handbücher etc. Handbuch des RRZN: SQL. Grundlagen und Datenbankdesign. Alan Beaulieu: Einführung in SQL. O'Reilly Access SQL in Abfragen nutzen, 29.08.14 Seite 4

Bereiche DML (Data Manipulation Language). DDL (Data Definition Language). DCL (Data Controlling Language). TCL (Transaction Control Language). Access SQL in Abfragen nutzen, 29.08.14 Seite 5

Data Definition Language Definition des Datenbankschemas. Erzeugen von Tabellen. Befehle: CREATE, ALTER, DROP. Microsoft Access: Menüband Erstellen Tabelle. Access SQL in Abfragen nutzen, 29.08.14 Seite 6

Data Controlling Language Rechteverwaltung. Zugriffsrechte auf eine Tabelle. Befehle: GRANT, REVOKE. Access SQL in Abfragen nutzen, 29.08.14 Seite 7

Transaction Control Language Ablaufsteuerung. Jede SQL-Anweisung ist eine Transaktion. Oder: Mehrere Befehle werden zu einer Transaktion zusammengefasst. Befehle: COMMIT, ROLLBACK, SAVEPOINT. Access SQL in Abfragen nutzen, 29.08.14 Seite 8

Data Manipulation Language Daten auswählen, einfügen, aktualisieren oder löschen. Befehle: SELECT, INSERT, UPDATE, DELETE. Microsoft Access: Abfragen, Datensatzquelle für Formulare / Berichte und Listensteuerelementen. Access SQL in Abfragen nutzen, 29.08.14 Seite 9

ER-Modell und SQL Kunde 1 n n gibt auf Bestellung nimmt an 1 Mitarbeiter Nordwind. Kunden Nordwind. Bestellungen Nordwind. Personal Zeige alle Bestellungen der Firma A an. Alle Vertriebsmitarbeiter. Access SQL in Abfragen nutzen, 29.08.14 Seite 10

Auswahlabfragen Sortierung und Filterung von Informationen. Rechenoperationen mit Hilfe der vorhandenen Daten. Verknüpfung von Tabellen über ein Schlüsselwert. Access SQL in Abfragen nutzen, 29.08.14 Seite 11

in Microsoft Access erstellen Menüband Erstellen. Klick auf Abfrageentwurf in der Gruppe Abfragen. Menüband Abfragetools Entwurf. Ansicht SQL-Ansicht in der Gruppe Ergebnisse. Access SQL in Abfragen nutzen, 29.08.14 Seite 12

speichern <STRG>+<S>. Oder: Datei Objekt speichern unter. In dem Dialog Speichern unter wird in dem ersten Textfeld der Name der Abfrage eingegeben. Jede Bezeichnung in Access ist eindeutig. Der Name sollte das Ergebnis der Abfrage widerspiegeln. Access SQL in Abfragen nutzen, 29.08.14 Seite 13

Ausdrücke [Anzahl]*[einzelpreis] AS Bestellwert. Berechnung eines neuen Wertes aus den Inhalt von Feldern. Entsprechend des Typs der genutzten Operanden wird ein Ergebnis zurückgegeben. WHERE (ANZAHL > 100). Vergleich von Informationen mit einem Wert. Der Ausdruck liefert wahr oder falsch. [Operand] [Operator] [Operand]. Operanden und Operatoren werden nach bestimmten Regeln zusammengesetzt. Access SQL in Abfragen nutzen, 29.08.14 Seite 14

Operanden Feldnamen. Spalten in einer Tabelle. Konstante Werte die direkt mit Hilfe der Tastatur eingegeben werden. Access SQL in Abfragen nutzen, 29.08.14 Seite 15

Operatoren Vergleichsoperatoren in Bedingungen. Mathematische Operatoren in Berechnungen. Operatoren haben eine bestimmte Rangfolge. Access SQL in Abfragen nutzen, 29.08.14 Seite 16

Bedingungen SELECT [Artikel-Nr], Einzelpreis, Anzahl FROM Bestelldetails WHERE (ANZAHL > 100) ORDER BY Einzelpreis DESC, Anzahl DESC; [Operand] [vergleichsoperator] [Operand]. [Bedingung] AND [Bedingung] [Bedingung] OR [Bedingung] NOT([Bedingung]) Access SQL in Abfragen nutzen, 29.08.14 Seite 17

Vergleichsoperatoren ist... Operator gleich = ungleich <> kleiner < kleiner gleich <= größer > größer gleich >= Access SQL in Abfragen nutzen, 29.08.14 Seite 18

Berechnungen von Informationen SELECT Bestelldetails.[Bestell-Nr], [Anzahl]*[einzelpreis] AS Bestellwert FROM Bestelldetails; [Operand] [operator] [Operand] AS [Name]. Es gilt die Punkt vor Strich-Regel. Access SQL in Abfragen nutzen, 29.08.14 Seite 19

Name des Ausdrucks bei Neuberechnungen AS Bestellwert Frei wählbarer Bezeichner Länge von maximal 30 Zeichen bestehend aus Buchstaben a..z, A..Z, 0..9 und dem Unterstrich. Zusammengesetzte Wörter werden folgendermaßen geschrieben: MaxAnzahl oder Max_Anzahl. Access SQL in Abfragen nutzen, 29.08.14 Seite 20

Mathematische Operatoren Berechnung Operator Addition + Subtraktion - Multiplikation * Division / Ganzzahlige Division Modula-Rechnung Potenz-Rechnung \ Mod ^ Access SQL in Abfragen nutzen, 29.08.14 Seite 21

für Zahlenwerte Berechnung Operator Beispiel Ergebnis Addition + 5 + 2 7 Subtraktion - 5-2 3 Multiplikation * 5 * 2 10 Division / 5 / 2 2,5 Ganzzahlige Division \ 5 \ 2 2 Modula-Rechnung Mod 5 Mod 2 1 Potenz-Rechnung ^ 5 ^ 2 25 Access SQL in Abfragen nutzen, 29.08.14 Seite 22

für Datums- und Zeitwerte Berechnung Operator Beispiel Ergebnis Addition + #15.12.2010# + 2 17.12.2010 Subtraktion - #15.12.2010# - 2 13.12.2010 Multiplikation * #15.12.2010# * 2 81054 Division / #15.12.2010# / 2 20263,5 Ganzzahlige Division \ #15.12.2010# \ 2 20263 Modula-Rechnung Mod #15.12.2010# Mod 2 1 Potenz-Rechnung ^ #15.12.2010# ^ 2 1642437729 Access SQL in Abfragen nutzen, 29.08.14 Seite 23

Beispiel SELECT Bestellungen.[Bestell-Nr], Bestellungen.Bestelldatum, Bestellungen.Versanddatum FROM Bestellungen WHERE (Bestellungen.Versanddatum > (Bestellungen.Bestelldatum + 1)); Access SQL in Abfragen nutzen, 29.08.14 Seite 24

Hinweise zu Datumswerten bei Access Gültige Datumswerte liegen zwischen dem 01.01.100 und dem 31.12.9999 Der Wert 0 entspricht dem Tag 30.12.1899. Negative Zahlen entsprechen einem Datum vor dem 30.12.1899. Access SQL in Abfragen nutzen, 29.08.14 Seite 25

Hinweise zu Zeitwerten bei Access Die Zeit 00:00 entspricht dem Wert 0. Die Zeit 12:00 entspricht dem Wert 0.5 (12 * (1 / 24)). Die Zeit 12:30 entspricht dem Wert (((1 / 24) / 60) * 750). Access SQL in Abfragen nutzen, 29.08.14 Seite 26

Rangfolge Operatoren Vorzeichen + - Mathematische... * / % + - Vergleichsoperatoren = > < >= <= <> Logische Operatoren NOT AND Zuweisung = BETWEEN IN LIKE OR Access SQL in Abfragen nutzen, 29.08.14 Seite 27

Verknüpfung von Text in Microsoft Access SELECT Firma, Vorname & " " & Nachname AS Mitarbeiter, Straße, PLZ, Ort FROM Personal; [feld] & 5 & [feld] & " " & [feld] AS [Name]. Felder oder Literale werden mit Hilfe des kaufmännischen Unds verbunden. Undefinierte Felder ( Is Null ) werden als leere Zeichenfolge interpretiert. Zahlen werden als Text interpretiert. Access SQL in Abfragen nutzen, 29.08.14 Seite 28

Verknüpfung von Text in PostgreSQL SELECT Firma, Vorname ' ' Nachname AS Mitarbeiter, Straße, PLZ, Ort FROM Personal; [feld] 5 [feld] ' ' [feld] AS [Name]. Felder oder Literale werden mit Hilfe des Verkettungszeichen (Pipe-Zeichen) verbunden. Ab PostgreSQL 8.3 muss eines der Spalten als Text definiert sein. Die Verkettung von Text ist in Abhängigkeit der genutzten Datenbank / des SQL-Servers implementiert. Access SQL in Abfragen nutzen, 29.08.14 Seite 29

In Abhängigkeit einer Bedingung... SELECT Artikel.Produktcode, Bestelldetails.Anzahl, Bestelldetails.Einzelpreis, Bestelldetails.Rabatt, (IIF(Bestelldetails.Rabatt > 0, ( ( (Bestelldetails.Anzahl * Bestelldetails.Einzelpreis) * Bestelldetails.Rabatt)), (Bestelldetails.Anzahl * Bestelldetails.Einzelpreis))) AS RabattSumme FROM Artikel INNER JOIN Bestelldetails ON Artikel.ID = Bestelldetails.[Artikel-Nr] ORDER BY Artikel.Produktcode; Access SQL in Abfragen nutzen, 29.08.14 Seite 30

Erläuterung IIF([Bedingung], [True], [False]) In Abhängigkeit der Bedingung werden unterschiedliche Berechnungen ausgeführt. In dem vorherigen Beispiel wird, falls vorhanden, ein Rabatt vom Gesamtpreis berechnet. Implementierung in Abhängigkeit der genutzten Datenbank / des SQL-Servers implementiert. Access SQL in Abfragen nutzen, 29.08.14 Seite 31

Verbinden von Text mit Hilfe des Pluszeichens [feld] + 5 + [feld] + " " + [feld] AS [Name] Undefinierte Felder ( Is Null ) erzeugen als Ergebnis des Ausdruckes einen undefinierten Wert. Zahlen werden nicht als Text interpretiert. Es wird ein Fehler erzeugt. Access SQL in Abfragen nutzen, 29.08.14 Seite 32

Aktionsabfragen Automatisierte Bearbeitung von Datensätze in einer Tabelle. Informationen aktualisieren Datensätze löschen. Datensätze anfügen. Access SQL in Abfragen nutzen, 29.08.14 Seite 33

Aktualisierung von Informationen UPDATE Artikel_NeuerListenpreis SET Artikel_NeuerListenpreis.Standardkosten = [Artikel_NeuerListenpreis].[Standardkosten]+ ([Artikel_NeuerListenpreis].[Standardkosten]*0.1) WHERE (Artikel_NeuerListenpreis.Kategorie="Gewürze"); Access SQL in Abfragen nutzen, 29.08.14 Seite 34

Syntax UPDATE [Tabelle] SET [Feld] = [mathematischer Ausdruck], [Feld] = [mathematischer Ausdruck]; [Feld] = [mathematischer Ausdruck],... WHERE ([Bedingung]); Falls keine Bedingung angegeben wird, werden alle Informationen in der Tabelle aktualisiert. Access SQL in Abfragen nutzen, 29.08.14 Seite 35

Aktualisierungabfrage in Microsoft Access UPDATE [Tabelle] SET [Feld] = [mathematischer Ausdruck], [Feld] = [mathematischer Ausdruck]; [Feld] = [mathematischer Ausdruck],... WHERE ([Bedingung]); Falls keine Bedingung angegeben wird, werden alle Informationen in der Tabelle aktualisiert. Access SQL in Abfragen nutzen, 29.08.14 Seite 36

Löschen von Datensätzen DELETE * FROM Kunden WHERE ( Kunden.ID In ( SELECT DISTINCT Kunden.ID FROM KUNDEN LEFT JOIN Bestellungen ON Kunden.ID = Bestellungen.[Kunden-Code] WHERE (Bestellungen.[Bestell-Nr] IS NULL) ) ); Access SQL in Abfragen nutzen, 29.08.14 Seite 37

Löschen in Abhängigkeit einer Bedingung DELETE * FROM [TABELLE] WHERE ([Bedingung]); DELETE FROM [TABELLE] WHERE ([Bedingung]); Datensätze werden in Abhängigkeit einer Bedingung gelöscht. Die Löschung kann nicht rückgängig gemacht werden! Access SQL in Abfragen nutzen, 29.08.14 Seite 38

Alle Datensätze löschen DELETE * FROM [TABELLE]); DELETE FROM [TABELLE]); Alle Datensätze der Tabelle werden gelöscht. Der Inhalt der Tabelle wird entfernt. Access SQL in Abfragen nutzen, 29.08.14 Seite 39

Löschabfrage in Microsoft Access DELETE Kunden.*, Kunden.ID FROM Kunden WHERE (Kunden.ID In (SELECT DISTINCT Kunden.ID FROM KUNDEN LEFT JOIN Bestellungen ON Kunden.ID = Bestellungen.[Kunden-Code] WHERE (Bestellungen.[Bestell-Nr] IS NULL)); Bei einer Löschabfrage werden die Felder angegeben. Access SQL in Abfragen nutzen, 29.08.14 Seite 40

Einfügen von Datensätzen INSERT INTO Kunden_Neu (Firma, Nachname, Vorname, [E-Mail-Adresse]) VALUES('Firma XA', 'Meier', 'Tom', 'meier@mail.de'); INSERT INTO [Tabelle] ([Feld], [Feld],...) VALUES([Wert], [Wert],...); Access SQL in Abfragen nutzen, 29.08.14 Seite 41

Einfügung von Textwerten INSERT INTO Kunden_Neu (Firma, Nachname, Vorname, [E-Mail-Adresse]) VALUES('Firma XA', 'Meier', 'Tom', 'meier@mail.de'); INSERT INTO Kunden_Neu (Firma, Nachname, Vorname, [E-Mail-Adresse]) VALUES("Firma XA", "Meier", "Tom", "meier@mail.de"); Microsoft Access verwendet als Begrenzungszeichen das Anführungszeichen sowohl als auch das Apostroph. Access SQL in Abfragen nutzen, 29.08.14 Seite 42

Kopieren von Datensätzen INSERT INTO KundenUndPersonal ( Firma, Nachname, Vorname, [E-Mail-Adresse] ) SELECT Personal_EMail.Firma, Personal_EMail.Nachname, Personal_EMail.Vorname, Personal_EMail.[E-Mail] FROM Personal_EMail; Die Select-Anweisung wählt die einzufügenden Datensätze aus. Das Feld Personal_EMail.Firma wird in das Feld Firma kopiert. Das Feld Personal_EMail.Nachname wird in das Feld Nachname kopiert usw. Access SQL in Abfragen nutzen, 29.08.14 Seite 43

Anfügeabfrage in Microsoft Access INSERT INTO KundenUndPersonal ( Firma, Nachname, Vorname, [E-Mail-Adresse] ) SELECT Personal_EMail.Firma, Personal_EMail.Nachname, Personal_EMail.Vorname, Personal_EMail.[E-Mail] FROM Personal_EMail; In der Auswahlabfrage wird zuerst die Tabelle ausgewählt, in der die anzufügenden Datensätze stehen. Access SQL in Abfragen nutzen, 29.08.14 Seite 44

Syntax INSERT INTO [Tabelle_Ziel] ( [feld], [feld], [feld],... ) [SELECT Auswahl der zu kopierenden Daten]; Die ausgewählten Felder werden von links nach rechts den Ziel- Feldern zugeordnet. Quelle und Ziel müssen den gleichen Datentyp haben. Access SQL in Abfragen nutzen, 29.08.14 Seite 45

Kopieren von Tabellen SELECT Kunden.Firma, Kunden.Nachname, Kunden.Vorname, Kunden.[E-Mail-Adresse] INTO Kunden2014 IN 'Nordwind_Backup.accdb' FROM Kunden; Access SQL in Abfragen nutzen, 29.08.14 Seite 46

Syntax SELECT [feld], [feld],... INTO [Tabelle_Ziel] IN '[pfad/datenbank]' FROM [Tabelle_Quelle] ; Standardmäßig wird die Datenbank im Ordner Documents / Eigene Dateien gesucht. Falls die Zieltabelle vorhanden ist, wird diese gelöscht und neu erstellt. Access SQL in Abfragen nutzen, 29.08.14 Seite 47

Funktionen... sind vordefinierte Berechnungen. Der Nutzer weiß nicht, wie die Berechnung definiert ist. Die Funktion ist eine Blackbox für den Nutzer. können Argumente übergeben werden. Für die Berechnung werden diese Argumente benötigt. Der Nutzer weiß nicht, wie sie verwendet werden. Der Nutzer kennt nur den Wert und den Typ. können einen berechneten Wert an den Nutzer zurückgeben, müssen aber nicht. 123 Funktion 146 Eingabeparameter Rückgabeparameter Access SQL in Abfragen nutzen, 29.08.14 Seite 48

Syntax von Funktionen [Funktionsname]([arg01]; [arg02];...). Beispiel in Access: Left("DK-1234";2) Jede Funktion kann mit Hilfe des Namens eindeutig identifiziert werden. Häufig beschreibt der Name die Rechenoperation. Dem Funktionsnamen folgt eine Liste von Parametern, begrenzt durch runde Klammern. Die Parameter werden durch ein Semikolon in der Liste getrennt. Die Parameterliste kann leer sein. Welche Funktionen vorhanden sind, ist abhängig vom genutzten SQL-Server oder Datenbank. Access SQL in Abfragen nutzen, 29.08.14 Seite 49

Beispiel in Access SELECT Bestelldetails.[Bestell-Nr], Format$([Anzahl]*[einzelpreis], "Currency") AS Bestellwert FROM Bestelldetails; Mit Hilfe der Funktion Format wird der Inhalt des Feldes in diesen Beispiel als Währung formatiert. Die Funktion gibt einen Wert als String zurück. Access SQL in Abfragen nutzen, 29.08.14 Seite 50

Funktionen Microsoft Access: PostgreSQL: http://www.postgresql.org/docs/8.4/static/functions.html Microsoft SQL Server: http://office.microsoft.com/en-us/access-help/accessfunctions-by-category-ha010131676.aspx http://technet.microsoft.com/enus/library/ms174318%28v=sql.110%29.aspx MySQL: http://dev.mysql.com/doc/refman/5.0/en/functions.html Access SQL in Abfragen nutzen, 29.08.14 Seite 51

Datums- und Zeitfunktionen in Access Funktion Argumente Aufgabe deutsch englisch Datum() Date() Aktuelles Systemdatum. Zeit() Time() Aktuelle Systemzeit Jetzt() Now() Datum() + Time() Tag() Day() «Datum» Tag des Arguments Monat() Month() «Datum» Monat des Arguments Jahr() Year() «Datum» Jahr des Arguments Stunde() Hour() «Zeit» Stunde des Arguments Minute() Minute() «Zeit» Minute des Arguments Access SQL in Abfragen nutzen, 29.08.14 Seite 52

Datums- und Zeitfunktionen in Access Funktion Argumente Aufgabe deutsch englisch DatDiff() DateDiff() «Intervall»; «Datum1»; «Datum2» Datum2 - Datum1 DatAdd() DateAdd() «Intervall»; «Zahl»; «Datum» Datum + Zahl Access SQL in Abfragen nutzen, 29.08.14 Seite 53

Konvertierung mit Hilfe von Zdate() ZDate("14.02.2013") wandelt das Datum vom Datentyp Text in einen Wert vom Datentyp Datum / Zeit um. ZDate("16:35") wandelt die Zeitangabe in einen Wert vom Datentyp Datum / Zeit um. Die Sekunden werden automatisch ergänzt. (Zdate("16:35") + ZDate("8:35")) liefert das Ergebnis 31.12.1899 01:10:00. Ein Datumswert wird automatisch ergänzt. (Zdate("15.03.2013") + ZDate("8:35")) zeigt als Ergebnis 15.03.2013 08:35:00 an. Der Datumswert wird mit der Uhrzeit verbunden. Access SQL in Abfragen nutzen, 29.08.14 Seite 54

Textfunktionen in Access Funktion Argumente Aufgabe deutsch englisch Länge() Len() «Text» Anzahl Zeichen Links() Left() «Text»; «Anzahl» Anzahl Zeichen links Rechts() Right() «Text»; «Anzahl» Anzahl Zeichen rechts Teil() Mid() «Text»; «Position»; «Anzahl» Anzahl Zeichen ab Position LGlätten() LTrim() «Text» Leerzeichen am Anfang entfernen RGlätten() RTrim() «Text» Leerzeichen am Ende entfernen Access SQL in Abfragen nutzen, 29.08.14 Seite 55

Suche in einem Text InStr(1; "Apfel, Birne, Banane"; ",") Der erste Parameter gibt an, ab welcher Position der Text durchsucht werden soll. Der zweite Parameter gibt den Text an, der durchsucht wird. Der dritte Parameter gibt den zu suchenden Text an. In diesem Beispiel wird ab der ersten Position ein Komma im Text gesucht. Als Ergebnis wird die Position 6 zurückgeliefert. Access SQL in Abfragen nutzen, 29.08.14 Seite 56

Undefiniertes Felder vom Datentyp Text NZ([infonet];"keine Angabe") Die Funktion überprüft, ob ein Feld einen undefinierten Inhalt hat oder nicht. Der erste Parameter gibt das zu überprüfende Feld an. Der zweite Parameter ersetzt den Inhalt eines undefinierten Feldes. In diesem Beispiel wird statt einem undefinierten, leeren Feldes der Inhalt keine Angabe angezeigt. Access SQL in Abfragen nutzen, 29.08.14 Seite 57

Aggregatfunktionen Fassen mehrere Datensätze zu einer Ergebniszeile zusammen. Gruppieren nach bestimmten Datenfeldern. Komprimierung von Informationen unter Berücksichtigung eines bestimmten Aspektes. Access SQL in Abfragen nutzen, 29.08.14 Seite 58

in SQL Aggregatfunktion Sum([Datenfeld]) Avg([Datenfeld]) Min([Datenfeld]) Max([Datenfeld]) Count([Datenfeld]) Count(*) Erläuterung Summe einer Spalte. Durchschnitt einer Spalte. Kleinster Wert einer Spalte. Größter Wert einer Spalte. Anzahl der Datensätze. Leere Datenfelder werden nicht berücksichtigt. Alle Datensätze zählen. Undefinierte Datenfelder werden nicht berücksichtigt. Access SQL in Abfragen nutzen, 29.08.14 Seite 59

Arbeiten mit Aggregatfunktion Bestellung Nr. Anzahl Preis 001_00_A 1 5 0,99 001_00_A 2 3 1,20 002_00_B 1 4 1,60 003_00_B 1 5 1,50 003_00_B 2 1 0,99 003_00_B 3 2 1,50 Count(*) = 6 Sum(Anzahl * Preis) = 26,44 Min(Anzahl) = 1 Access SQL in Abfragen nutzen, 29.08.14 Seite 60

Syntax SELECT [AggregatFunktion([feld])] As [Name] FROM [Tabelle] WHERE [Bedingung] Access SQL in Abfragen nutzen, 29.08.14 Seite 61

Count(*) SELECT Count(*) As AnzahlKundeOhneBestellung FROM Kunden WHERE ( Kunden.ID IN ( SELECT DISTINCT Kunden.ID FROM KUNDEN LEFT JOIN Bestellungen ON Kunden.ID = Bestellungen.[Kunden-Code] WHERE (Bestellungen.[Bestell-Nr] IS NULL) ) ); Access SQL in Abfragen nutzen, 29.08.14 Seite 62

Count([Datenfeld]) SELECT Count(Bestelldetails.[Bestell-Nr]) AS AnzahlBestellPosten FROM Bestellungen LEFT JOIN Bestelldetails ON Bestellungen.[Bestell-Nr] = Bestelldetails. [Bestell-Nr] WHERE (Anzahl > 100); Access SQL in Abfragen nutzen, 29.08.14 Seite 63

Summe([Datenfeld]) SELECT Format$(Sum([Anzahl]*[einzelpreis]), "Currency") AS Gesamsumme FROM Bestelldetails; Access SQL in Abfragen nutzen, 29.08.14 Seite 64

Gruppieren Group BY Bestellung Bestellung Nr. Anzahl Preis Count(Nr) Sum(Anzahl * Preis) Min(Anzahl) 001_00_A 1 5 0,99 001_00_A 2 3 1,20 2 8,55 3 002_00_B 1 4 1,60 1 1,60 4 003_00_B 1 5 1,50 003_00_B 2 1 0,99 3 11,49 1 003_00_B 3 2 1,50 Access SQL in Abfragen nutzen, 29.08.14 Seite 65

Syntax SELECT [feld], [AggregatFunktion([feld])] As [Name] FROM [Tabelle] GROUP BY [feld] ORDER BY [feld] Access SQL in Abfragen nutzen, 29.08.14 Seite 66

Hinweis Jedes Feld in der Auswahlliste muss entweder mit Hilfe einer Aggregatfunktion berechnet oder mit Hilfe von GROUP BY zusammengefasst werden. Null-Werte werden in einer eigenen Gruppe zusammengefasst. Access SQL in Abfragen nutzen, 29.08.14 Seite 67

Count([Datenfeld]) SELECT Bestellungen.[Bestell-Nr], Count(Bestelldetails.[Bestell-Nr]) AS AnzahlBestellPosten FROM Bestellungen LEFT JOIN Bestelldetails ON Bestellungen.[Bestell-Nr] = Bestelldetails.[Bestell-Nr] GROUP BY Bestellungen.[Bestell-Nr] ORDER BY Bestellungen.[Bestell-Nr]; Access SQL in Abfragen nutzen, 29.08.14 Seite 68

Summe([Datenfeld]) SELECT [Bestell-Nr], Format$(Sum([Anzahl]*[einzelpreis]), "Currency") AS Gesamsumme FROM Bestelldetails GROUP BY [Bestell-Nr] ORDER BY [Bestell-Nr]; Access SQL in Abfragen nutzen, 29.08.14 Seite 69

Filterung von Daten SELECT [feld], [AggregatFunktion([feld])] As [Name] FROM [Tabelle] WHERE [Bedingung] GROUP BY [feld] ORDER BY [feld] Access SQL in Abfragen nutzen, 29.08.14 Seite 70

Hinweis In den WHERE-Bedingungen werden Felder genutzt, die nicht gruppiert oder mit Hilfe einer Aggregatfunktion berechnet werden. Die Tabelle wird in Abhängigkeit einer Bedingung gefiltert und dann zu Teiltabellen mit Hilfe von GROUP BY zusammengefasst. Die Teiltabellen werden mit Hilfe von Aggregatfunktionen zu einem Ergebnis zusammengefasst. Access SQL in Abfragen nutzen, 29.08.14 Seite 71

Beispiel SELECT Artikel.Artikelname, SUM(Auftragsdetails.Anzahl) AS Gesamtanzahl FROM Artikel INNER JOIN Auftragsdetails ON Artikel.ID = Auftragsdetails.[Artikel-Nr] WHERE (Artikel.Kategorie LIKE "Getränke") GROUP BY Artikel.Artikelname ORDER BY Artikel.Artikelname; Access SQL in Abfragen nutzen, 29.08.14 Seite 72

Weiteres Beispiel SELECT Lieferanten.Firma, Sum(Auftragsdetails.Anzahl) AS GesamtAnzahl FROM (Lieferanten LEFT JOIN Aufträge ON (Lieferanten.ID = Aufträge.[Lieferanten-Nr])) LEFT JOIN Auftragsdetails ON (Aufträge.[Auftrags-Nr] =Auftragsdetails. [Auftrags-Nr]) WHERE (Auftragsdetails.[Datum des Erhalts] BETWEEN #04/01/2006# AND #04/30/2006#) GROUP BY Lieferanten.Firma ORDER BY Lieferanten.Firma; Access SQL in Abfragen nutzen, 29.08.14 Seite 73

In Abhängigkeit der Aggregatfunktion filtern SELECT [feld], [AggregatFunktion([feld])] As [Name] FROM [Tabelle] WHERE [Bedingung] GROUP BY [feld] HAVING ([Bedingung]) ORDER BY [feld] Access SQL in Abfragen nutzen, 29.08.14 Seite 74

Hinweis In den HAVING-Bedingungen werden das Ergebnis einer Aggregatfunktion gefiltert. Die Tabelle wird in Abhängigkeit einer Bedingung gefiltert und dann zu Teiltabellen mit Hilfe von GROUP BY zusammengefasst. Die Teiltabellen werden mit Hilfe von Aggregatfunktionen zu einem Ergebnis zusammengefasst. Diese Ergebnis wird nochmals gefiltert. Access SQL in Abfragen nutzen, 29.08.14 Seite 75

Beispiel SELECT Artikel.Artikelname, SUM(Auftragsdetails.Anzahl) AS Gesamtanzahl FROM Artikel INNER JOIN Auftragsdetails ON Artikel.ID = Auftragsdetails.[Artikel-Nr] WHERE (Artikel.Kategorie LIKE "Getränke") GROUP BY Artikel.Artikelname HAVING (SUM(Auftragsdetails.Anzahl) > 100) ORDER BY Artikel.Artikelname; Access SQL in Abfragen nutzen, 29.08.14 Seite 76

Weiteres Beispiel SELECT Lieferanten.Firma, Sum(Auftragsdetails.Anzahl) AS GesamtAnzahl FROM (Lieferanten LEFT JOIN Aufträge ON (Lieferanten.ID = Aufträge.[Lieferanten-Nr])) LEFT JOIN Auftragsdetails ON (Aufträge.[Auftrags-Nr] = Auftragsdetails. [Auftrags-Nr]) WHERE (Auftragsdetails.[Datum des Erhalts] BETWEEN #04/01/2006# AND #04/30/2006#) GROUP BY Lieferanten.Firma HAVING (Sum(Auftragsdetails.Anzahl) > 100) ORDER BY Lieferanten.Firma; Access SQL in Abfragen nutzen, 29.08.14 Seite 77