Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

8.5 Datenmodell erstellen und manipulieren

8.5.1 Tabellen erstellen

Das Erstellen einer Tabelle erfolgt über die CREATE TABLE-Anweisung. Die Anweisung hat folgende Syntax:

CREATE [TEMPORARY] TABLE ( [()] [NOT NULL] [] [, [()] [NOT NULL] [] [, ...]] [, [, ...]])

elle> gibt den Namen der zu erstellenden Tabelle an. Anschließend folgen in Klammern die einzelnen Felder der Tabelle. Felder können Sie auch nachträglich hinzufügen, Sie brauchen lediglich ein Feld beim Erstellen der Tabelle anzugeben. Für jedes Feld geben Sie den Datentyp () sowie gegebenenfalls die Größe () an. Dafür stehen die Datentypen aus Tabelle 8.1 zur Verfügung. Die unter der ACE neu eingeführten Datentypen ComplexType (mehrwertige Felder) und Attachment (Anlage) lassen sich per SQL offensichtlich nicht erzeugen.

Den Parameter verwenden Sie nur bei Feldern des Datentyps Text. Sie geben damit die maximale Anzahl Zeichen an, die das Feld enthalten darf.

Wenn das Feld keine Null-Werte enthalten darf, geben Sie das Schlüsselwort NOT NULL ein.

Hinweis: Ab Microsoft Jet 4.0 werden die Inhalte von Text- und Memofeldern im Unicode-Format gespeichert. Da dieses mit zwei Byte pro Zeichen doppelt so viel Speicherplatz wie üblich benötigt und die Größe vorhandener Access-Anwendungen somit stark wachsen könnte, gibt es den Parameter WITH COMPRESSION für Felder, die als CHARACTER und MEMO angelegt wurden. Die Daten werden dann bei Bedarf in einem komprimierten Format gespeichert und beim Lesen wieder dekomprimiert. Der Parameter WITH COMPRESSION lässt sich allerdings nicht unter DAO einsetzen und führt zu einer Syntaxfehlermeldung - genauso wie in einer Datendefinitionsabfrage im SQL-Fenster. Für dieses Attribut benötigen sie ein Kommando auf eine ADO-Connection.

Soll das Feld auf irgendeine Weise indiziert werden - etwa als Primärschlüssel, eindeutiger Index oder einfacher Index -, tragen Sie unter Index1, Index2, ... einen entsprechenden CONSTRAINT-Abschnitt ein.

Wenn die Tabelle einen Mehrfelderindex erhalten soll, verwenden Sie ebenfalls einen CONSTRAINT-Abschnitt, den Sie hinter dem letzten Feld, aber noch innerhalb der Klammer eingeben.

Mehr zur CONSTRAINT-Klausel erfahren Sie in Abschnitt 8.5.2, »Primärschlüssel, Indizes und Einschränkungen mit CONSTRAINT«.

SQL-Datentyp Datentyp im Tabellenentwurf Größe Werte
TEXT oder CHAR Text 2 Byte pro Zeichen (siehe Anmerkungen) Von 0 bis 255 Zeichen
LONGTEXT Memo 2 Byte pro Zeichen (siehe Anmerkungen) Von 0 bis maximal 1 GB
BYTE Zahl (Byte) 1 Byte Eine Ganzzahl von 0 bis 255
SMALLINT Zahl (Integer) 2 Byte Eine Ganzzahl von -32.768 bis 32.767
INTEGER Zahl (Long Integer) 4 Byte Eine lange Ganzzahl von -2.147.483.648 bis 2.147.483.647
REAL Zahl (Single) 4 Byte 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
FLOAT Zahl (Double) 8 Byte Eine Gleitkommazahl doppelter Genauigkeit, die die folgenden Werte annehmen kann: -1.79769313486232E308 bis -4.94065645841247E-324 für negative Werte, 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte und 0

Tabelle 8.1: Datentypen unter Access-SQL

SQL-Datentyp Datentyp im Tabellenentwurf Größe Werte
GUID Zahl (Replikations-ID) 16 Byte Globally unique identifier (GUID)
DATETIME Datum 8 Byte Eine Datums- oder Zeitangabe ab dem Jahr 100 bis zum Jahr 9999
MONEY Währung 8 Byte Eine skalierte Ganzzahl von -922.337.203.685.477,5808 bis 922.337.203.685.477,5807
COUNTER Autowert (Long Integer) 4 Byte Eine lange Ganzzahl von -2.147.483.648 bis 2.147.483.647
BIT Ja/Nein 1 Byte Ja/Nein-Werte (boolsche Werte) sowie Felder, die einen von zwei möglichen Werten enthalten
IMAGE OLE-Objekt Nach Bedarf Von 0 bis maximal 1 GB. Wird für OLE-Objekte verwendet
BINARY Binär Maximal 510 Byte Byte-Array mit maximal 510 Werten
NUMERIC Zahl (Double) 8 Byte Wie FLOAT

Tabelle 8.1: Datentypen unter Access-SQL (Fortsetzung)

Die folgende SQL-Anweisung erstellt eine Tabelle mit allen in der Tabellen-Entwurfsansicht auswählbaren Datentypen in der Reihenfolge des dortigen Vorkommens. Nicht enthalten ist der Datentyp Zahl (Dezimal):

CREATE TABLE tblDatentypen(
xText TEXT,
xLongtext LONGTEXT,
xByte BYTE,
xSmallInt SMALLINT,
xInteger INTEGER,
xReal REAL,
xFloat FLOAT,
xUniqueIdentifier GUID,
xDatetime DATETIME,
xMoney MONEY,
xCounter COUNTER,
xBit BIT,
xImage IMAGE
xBinary BINARY,
xNumeric NUMERIC);

Listing 8.1: Erstellen einer Tabelle mit allen Datentypen

Die erstellte Tabelle sieht wie in Abbildung 8.23 aus.

Abbildung 8.23: Das Produkt einer Tabellenerstellungsabfrage

Standardwerte vorgeben

Unter ACE/Jet 4 (SQL-92) können Sie wie in der Abfrage-Entwurfsansicht einen Standardwert für ein Feld angeben. Dazu fügen Sie die Klausel DEFAULT gefolgt von dem gewünschten Standardwert hinter dem Felddatentyp des jeweiligen Feldes ein:

CREATE TABLE tblBeispiel(FeldMitStandardwert TEXT(50) DEFAULT Standardwert)

Gültigkeitsregel festlegen

Ebenfalls ab Jet 4 können Sie mit dem Schlüsselwort CHECK eine Gültigkeitsregel für ein Feld festlegen. CHECK ist ein zusätzliches CONSTRAINT und wird mit diesem Schlüssel- wort eingeleitet.

Beispiel:

CREATE TABLE tblBeispiel(Beispielfeld TEXT(50), CONSTRAINT CHKBeispielfeld CHECK(Beispielfeld= 'A%'))

Nächster Abschnitt:

8.5.2 Primärschlüssel, Indizes und Einschränkungen mit CONSTRAINT

© 2006-2008 André Minhorst Alle Rechte vorbehalten.