MSJetSQL (Version 1.0 vom 11.09.2007)

Werbung
Microsoft-JET-SQL
Allgemeine Erläuterungen
In den folgenden Syntaxschemata werden angegeben:
IN GROßBUCHSTABEN
In Groß- und Kleinschreibung
In eckigen Klammern [...]
Mit Pipe-Operator |
Mit geschweiften Klammern {}
Reservierte Worte
Zu ersetzende Begriffe
Optionale Teile
Alternativen
Obligatorische Auswahlmöglichkeiten
In den Abfragen werden verwendet:
Eckige Klammern []
Zur Begrenzung von Tabellen- und Feldnamen. Sie sind notwendig, wenn Leerzeichen oder andere verwechselbare
Zeichen in den Namen vorkommen
Punkt .
Seperator zwischen Tabellen- und Feldnamen
Hochkomma '...'
Zur Eingrenzung von Strings
Rauten #...#
Zur Eingrenzung von Datumsangaben
Der Wert NULL
Als Zeichen für leere Felder
Semikolon ;
Abschluss der Anweisung
Platzhalter:
Unterstrich _
Stern *
Prozent %
Fragezeichen ?
Raute #
Ein Zeichen in SQL 92
Ein Zeichen in SQL 89
Mehrere Zeichen in SQL 92
Mehrere Zeichen in SQL 89
Eine Ziffer
Die anderen Platzhalter und Operatoren sind Access-üblich
DML / DQL
Auswahlabfrage bzw. -anweisung
SELECT [ALL | DISTINCT | DISTINCTROW | TOP nn]
{ * | Ausdruck | Tabelle.* | [Tabelle.]Feld1 [AS Alias1] [, [Tabelle.]Feld2 [AS Alias2] [, ...]]}
FROM
Tabellenausdruck [, ...] [IN ExterneDatenbank]
[WHERE Bedingung]
[GROUP BY Feld1 [, Feld2 [, ...]] [HAVING Bedingung]]
[ORDER BY [ASC | DESC] Feld1 [, Feld2 [, ...]]];
Erläuterungen
*
ALL
DISTINCT
DISTINCTROW
TOP nn
WHERE
GROUP BY
HAVING
ORDER BY
ASC
DESC
Alle Felder
Alle Datensätze werden angezeigt (Standard – kann daher weggelassen werden)
Unterdrücken von doppelten Datensätzen (doppelt im Sinne der Ergebnistabelle) – führt zu einem SnapShut
Unterdrücken von doppelten Datensätzen, die durch die Verknüpfung von Tabellen entstehen – kann trotzdem eine
DynaSet erzeugen
Zeigt nur die Anzahl der ersten nn Datensätze an
Schränkt die zur Auswahl herangezogenen Datensätze ein. Kann neben Vergleichsoperatoren auch enthalten:
LIKE
Für Mustervergleiche ("Wie")
BETWEEN ... AND …
Als Bereichsoperator ("Zwischen" ... "und" ...)
IN, EXIST
Vergleich mit Liste einer Unterabfrage
Gruppiert die Datensätze nach den angegebenen Feldern – fasst gleiche Werte zu einer Gruppe zusammen, erlaubt
die Anwendung von Aggregatfunktionen auf die Gruppe. Alle in der Feldliste angegebenen Felder müssen gruppiert
sein.
Einschränkung, die auf die Gruppe angewendet wird
Sortierungen
Aufsteigend – Standard kann daher weggelassen werden
Absteigend
Verknüpfungen
FROM Tabelle1
{INNER | LEFT | RIGHT} JOIN Tabelle2 ON Tabelle1.Feld1 { = | < | > | <= | >= | <>} Tabelle2.Feld2
Erläuterungen
INNER JOIN
LEFT JOIN
RIGHT JOIN
Verknüpfung erfasst nur die Datensätze, die das verknüpfte Feld in beiden verknüpften Tabellen aufweist; Besteht eine
1:n-Vernüpfung, so entstehen genau soviel Datensätze, wie die n-Tabelle an verknüpften Datensätzen aufweist. Besteht eine m:n-Verknüpfung, so entsteht aus jeder verknüpften Kombination ein Datensatz
Wie Inner Join, nur werden zusätzlich auch alle unverknüpften Datensätze der linken Tabelle aufgenommen
Wie Inner Join, nur werden zusätzlich auch alle unverknüpften Datensätze der rechten Tabelle aufgenommen
S. 1
© Alle Rechte ausschließlich beim Autor: Kopien, Nachnutzungen usw. bedürfen der Genehmigung!
MS Jet SQL
Autor: Andreas Schöbel
01187 Dresden, Münchner Str. 33
Microsoft-JET-SQL
Parameter-Deklaration
PARAMETERS Name Datentyp [, Name Datentyp [, ...]];
Erläuterungen
Datentyp
Siehe Tabellendefinition
Abfrageeinschränkung mit Unterabfrage
{HAVING | WHERE} { = | < | > | <= | >= | <>} [ANY | ALL | SOME] (SQLAnweisung)
{HAVING | WHERE} Ausdruck [NOT] IN (SQLAnweisung)
{HAVING | WHERE} [NOT] EXISTS (SQLAnweisung)
Erläuterungen
ALL
Um TRUE zu Liefern muss der Vergleich auf allen Werten der Unterabfrage zu treffen; Liefert die Unterabfrage eine leere Menge so ist
das Ergebnis auch TRUE; Liefert der Vergleich mit einem Wert der Ergebnismenge der Unterabfrage FALSE, so ist das Ergebnis auch
FALSE (AND-Verknüfung der Vergleiche mit der Ergebnismenge) - Die Unterabfrage darf nur eine Spalte beinhalten
ANY
Ist die Ergebnismenge der Unterabfrage leer, so ist das Ergebnis FALSE, ist das Ergebnis mindestens eines Vergleiches mit einem Wert
der Unterabfrage TRUE, so ist das Gesamtergebnis TRUE, sonst FALSE (OR-Verknüpfung der Vergleiche mit der Ergebnismenge der
Unterabfrage) - Die Unterabfrage darf nur eine Spalte beinhalten
SOME Wie ANY
IN
Testet, ob der Ausdruck in der Ergebnismenge (Unterabfrage) enthalten ist. Die Unterabfrage darf nur eine Spalte beinhalten
EXIST Prüft, ob die Menge der Unterabfrage nicht leer ist
Aggregatfunktionen
Avg(Ausdr)
Count(Ausdr)
First(Ausdr)
Last(Ausdr)
Min(Ausdr)
Max(Ausdr)
Mittelwert
Anzahl
Erster Wert
Letzter Wert
Minimum
Maximum
StDev(Ausdr)
StDevP(Ausdr)
Sum(Ausdr)
Var(Ausdr)
VarP(Ausdr)
Standardabweichung der Grundgesamtheit
Standardabweichung der Stichprobe
Summe
Varianz der Grundgesamtheit
Varianz der Stichprobe
Anfügeabfrage
INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]]])]
SELECT [Quelle.]Feld1[, Feld2[, ...]]
FROM Tabellenausdruck;
INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]]])]
VALUES (Wert1[, Wert2[, ...]);
Aktualisierungabfrage
UPDATE Tabelle SET Feld1 = Ausdruck1[, Feld2 = Ausdruck[, ...]] WHERE Kriterien;
Löschabfrage
DELETE [[Tabelle.]*] FROM Tabelle WHERE Kriterien;
Kreuztabellenabfrage
TRANSFORM AggFunktion
Auswahlanweisung
PIVOT Pivot-Feld [IN (Wert1[, Wert2[, ...]])];
Erläuterungen
AggFunktion
Auswahlanweisung
Pivot-Feld
Ausdruck mit einer auf ein Feld angewendeten Aggregatfunktion, die zur Berechnung der Datensatzfelder benutzt
werden – Es werden die Tabellen der SELECT-Anweisung herangezogen
SELECT-Anweisung mit GROUP-BY-Klausel, die Feldinhalte liefert, die als "Zeilenüberschriften" dienen
Feld, das für Spaltenüberschriften dient – Es werden die Tabellen der SELECT-Anweisung herangezogen
UNION-Abfrage
[TABLE] Abfrage1
UNION
[ALL] [TABLE] Abfrage2
[UNION
[ALL] [TABLE] AbfrageN [ ... ]];
Erläuterungen
ALL
Standardmäßig werden bei UNION-Abfragen doppelte Datensätze unterdrückt, mit ALL geschieht das nicht
MS Jet SQL
S. 2
© Alle Rechte ausschließlich beim Autor: Kopien, Nachnutzungen usw. bedürfen der Genehmigung!
Autor: Andreas Schöbel
01187 Dresden, Münchner Str. 33
Microsoft-JET-SQL
Tabellenerstellungsabfrage
SELECT Anweisungen INTO NeueTabelle [IN ExterneDatenbank] FROM Quelle;
DDL
Tabellendefinition
CREATE TABLE Tabelle (
Feld1 Typ[(Größe)] [NOT NULL] [Index1] [,
Feld2 Typ[(Größe)] [NOT NULL] [Index2] [,
...]] [,
CONSTRAINT Einschränkung [, ...]]);
Erläuterungen
CONSTRAINS
Einschränkung – kann Eindeutigkeiten und Beziehungen zu anderen Tabellen festlegen, erzeugt u. U. einen Index zur
Realisierung
Datentypen
Datentyp
BINARY
BIT
TINYINT
MONEY
DATETIME
UNIQUEIDENTIFIER
REAL
FLOAT
SMALLINT
INTEGER
DECIMAL
TEXT
IMAGE
CHARACTER
Beschreibung
Beliebige Arten von Daten können in einem Feld diesen Typs gespeichert werden. Die Art, wie
Daten in ein BINARY-Feld eingegeben werden, bestimmt die Art der Ausgabe.
Ja/Nein-Werte (boolesche Werte) sowie Felder.
Eine Ganzzahl von 0 bis 255.
Eine Ganzzahl von
– 922.337.203.685.477,5808 bis 922.337.203.685.477,5807.
Eine Datums- oder Zeitangabe ab dem Jahr 100 bis zum Jahr 9999.
Eine eindeutige Kennnummer.
Eine Gleitkommazahl einfacher Genauigkeit, die die folgenden Werte annehmen kann: 3,402823E38 bis -1,401298E-45 für negative Werte, 1,401298E-45 bis 3,402823E38 für positive
Werte und 0.
Eine Gleitkommazahl doppelter Genauigkeit, die die folgenden Werte annehmen kann: 1.79769313486232E308 bis -4.94065645841247E-324 für negative Werte, 4,94065645841247E324 bis 1,79769313486232E308 für positive Werte und 0.
Eine Ganzzahl von – 32.768 bis 32.767.
Eine Ganzzahl von – 2.147.483.648 bis 2.147.483.647.
Ein genauer numerischer Datentyp, der Werte von 1028 - 1 bis - 1028 - 1 enthält. Sie können
sowohl Präzision (1 - 28) als auch Dezimalstelle (0 - definierte Präzision) definieren. Die Standardwerte für Präzision und Dezimalstelle lauten 18 bzw. 0.
Von 0 bis maximal 2,14 GB.
Von 0 bis maximal 2,14 GB. Wird für OLE-Objekte verwendet.
Von 0 bis 255 Zeichen.
Einschränkungen in Tabellendefinitionen oder -änderungen inkl. Beziehungsdefinition
CONSTRAINT Name
{PRIMARY KEY |
UNIQUE |
NOT NULL |
REFERENCES FremdTabelle [(FremdFeld1, FremdFeld2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]
};
Mehrfeldereinschränkung:
CONSTRAINT Name
{PRIMARY KEY (Primär1[,Primär2[, ...]]) |
UNIQUE (Eindeutig1[,Eindeutig2[, ...]]) |
NOT NULL (Nichtnull1[, Nichtnull2 [, ...]]) |
FOREIGN KEY [NO INDEX] (Ref1[, Ref2 [, ...]])
REFERENCES FremdTabelle [(FremdFeld1 [, FremdFeld2 [, ...]])]}
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}];
S. 3
© Alle Rechte ausschließlich beim Autor: Kopien, Nachnutzungen usw. bedürfen der Genehmigung!
MS Jet SQL
Autor: Andreas Schöbel
01187 Dresden, Münchner Str. 33
Microsoft-JET-SQL
Erläuterungen
PRIMARY KEY
UNIQUE
NOT NULL
FOREIGN KEY
REFERENCES
ON UPDATE
ON DELETE
CASCADE
SET NULL
Bestimmt einen Primärschlüssel
Legt Eindeutigkeit fest
Legt fest, dass keine leeren Felder erlaubt sind
Fremdschlüsselfestlegung
Legt Beziehungen zu einer anderen Tabelle fest
Aktualisierungsweitergabe
Löschweitergabe
Bei Aktualisierung / Löschung diese Weitergeben
Bei Aktualisierung / Löschung Fremdschlüssel auf NULL setzen
Indexdefinition
CREATE [ UNIQUE ] INDEX Index
ON Tabelle (
Feld [ASC|DESC][,
Feld [ASC|DESC][,
...]])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }];
Erläuterungen:
UNIQUE
PRIMARY
DISALLOW NULL
IGNORE NULL
ASC
DESC
Eindeutigkeit festlegen
Festlegen als Primärschlüssel
NULL-Werte verboten
NULL-Werte erlaubt
Aufsteigend sortiert
Absteigend sortiert
Tabellenänderung
ALTER TABLE Tabelle
{ADD
{COLUMN Feld Typ[(Größe)] [NOT NULL] |
CONSTRAINT Einschränkung} |
ALTER {COLUMN Feld Typ[(Größe)] [NOT NULL] |
CONSTRAINT Einschränkung} |
DROP {COLUMN Feld |
CONSTRAINT Einschränkung}
};
Erläuterungen
ADD
ALTER
DROP
COLUMN
CONSTRAINS
Hinzufügen
Ändern
Löschen
Spalte
Einschränkung
Tabelle bzw. Index löschen
Versionsprobleme
Access-2000-Datei
Access-2002/2003Datei
DROP {TABLE Tabelle | INDEX Index ON Tabelle};
Unterschiede zwischen ANSI-SQL und MS-Jet-SQL:
Platzhalter
Datentypen
Beetween-Operator
Zusätzliche Funktionen in MS-JET-SQL (z. B. TRANSFROM)
Wahlweise
MS-Jet-3.x-Engine
MS-Jet 4.x-Engine
Unterschiede Umfang SQL 89 und SQL 92
Befehlsumfang
Verwalten von Benutzerrechten (GRANT, REVOKE)
Der volle Umfang der Funktionen steht nur unter
VBA (ADO / ADOX) bzw. ODBC (MS-JET-Provider)
zur Verfügung. In der DB-Oberfläche von ACCESS ist
nur eine Teilmenge zugänglich
ANSI-SQL-98 – Level 1
ANSI-SQL-92 – Level 1
MS Jet SQL
S. 4
© Alle Rechte ausschließlich beim Autor: Kopien, Nachnutzungen usw. bedürfen der Genehmigung!
Autor: Andreas Schöbel
01187 Dresden, Münchner Str. 33
Herunterladen