Tworzy nową tabelę.
Uwaga: Aparat bazy danych programu Microsoft Access nie obsługuje stosowania instrukcji CREATE TABLE ani żadnych innych instrukcji DDL z bazami danych innymi niż bazy programu Microsoft Access. Zamiast tego należy używać metod Create obiektów DAO.
Składnia
CREATE [TEMPORARY] TABLE tabela (typ pola1 [(rozmiar)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [indeks1] [, typpola2 [(rozmiar)] [NOT NULL] [indeks2] [, ...]] [, CONSTRAINT indeks_wielopolowy [, ...]])
Instrukcja CREATE TABLE zawiera następujące segmenty:
Segment |
Opis |
tabela |
Nazwa tabeli, która ma zostać utworzona. |
pole1, pole2 |
Nazwy pól, które mają zostać utworzone w nowej tabeli. Należy utworzyć co najmniej jedno pole. |
typ |
Typ danych pola w nowej tabeli. |
rozmiar |
Rozmiar pola wyrażony w znakach (tylko pola zawierające dane tekstowe i binarne). |
indeks1, indeks2 |
Klauzula CONSTRAINT określająca indeks oparty na jednym polu. |
indeks_wielopolowy |
Klauzula CONSTRAINT określająca indeks oparty na wielu polach. |
Spostrzeżenia
Za pomocą instrukcji CREATE TABLE można zdefiniować nową tabelę oraz jej pola i ograniczenia dotyczące pól. Jeśli dla pola zostanie użyta klauzula NOT NULL, w polach nowych rekordów muszą znajdować się prawidłowe dane.
Klauzula CONSTRAINT ustanawia różne ograniczenia wobec pola i można jej użyć, aby określić klucz podstawowy. Można również użyć instrukcji CREATE INDEX i utworzyć klucz podstawowy lub dodatkowe indeksy dla istniejących tabel.
Klauzuli NOT NULL można użyć wobec jednego pola lub w obrębie nazwanej klauzuli CONSTRAINT, która dotyczy pojedynczego pola lub wielu pól. Jednak dla każdego pola ograniczenie NOT NULL można zdefiniować tylko raz. Próba użycia tego ograniczenia więcej niż raz spowoduje błąd wykonania.
Gdy jest tworzona tabela TEMPORARY, jest ona widoczna tylko w trakcie sesji, w której została utworzona. Po zakończeniu sesji tabela jest automatycznie usuwana. Dostęp do tabel tymczasowych może uzyskiwać wielu użytkowników.
Atrybutu WITH COMPRESSION można używać tylko w kontekście typów danych CHARACTER i MEMO (znanego również jako TEXT) oraz ich synonimów.
Ponieważ format prezentacji znaków Unicode uległ zmianie, do kolumn wartości CHARACTER dodano atrybut WITH COMPRESSION. Format Unicode wymaga zawsze dwóch bajtów dla każdego znaku. W istniejących bazach danych programu Microsoft Access, które zawierają głównie dane znakowe, może to powodować niemal dwukrotne zwiększenie rozmiaru pliku bazy danych po przekonwertowaniu na format programu Microsoft Access. Jednak dane wielu zestawów znaków prezentowanych w formacie Unicode, które wcześniej były zdefiniowane jako zestawy znaków jednobajtowych (SBCS), można z łatwością skompresować do znaków jednobajtowych. Jeśli dla kolumny danych CHARACTER zostanie określony ten atrybut, dane będą automatycznie kompresowane podczas zapisywania, a dekompresowane podczas pobierania z kolumny.
Przechowywanie danych w formacie skompresowanym można również zdefiniować dla kolumn danych typu MEMO. Istnieje jednak pewne ograniczenie. Kompresji będą poddawane tylko te wystąpienia kolumn MEMO, których rozmiar po skompresowaniu nie przekroczy 4096 bajtów. Wszystkie pozostałe wystąpienia tych kolumn pozostaną nieskompresowane. Oznacza to, że w danej tabeli dla określonej kolumny danych typu MEMO niektóre dane mogą być skompresowane, a inne — nieskompresowane.