Instrukcja INSERT INTO

Dodaje rekord lub wiele rekordów do tabeli. Często ta instrukcja jest określana mianem kwerendy dołączającej (kwerenda dołączająca: Kwerenda funkcjonalna, która rekordy znajdujące się w zestawie wyników kwerendy dodaje na końcu istniejącej tabeli.).

Składnia

Kwerenda dołączająca wiele rekordów:

INSERT INTO lokalizacja_docelowa [(pole1[, pole2[, ...]])] [IN zewnętrzna_baza_danych]
SELECT [lokalizacja_źródłowa.]pole1[, pole2[, ...]
FROM wyrażenie_tabeli

Kwerenda dołączająca jeden rekord:

INSERT INTO lokalizacja_docelowa [(pole1[, pole2[, ...]])]
VALUES (wartość1[, wartość2[, ...])

Instrukcja INSERT INTO zawiera następujące segmenty:

Segment Opis
lokalizacja_docelowa Nazwa tabeli lub kwerendy, do której mają zostać dołączone rekordy.
pole1, pole2 Nazwy pól, do których mają zostać dołączone dane, jeśli następują po argumencie lokalizacja_docelowa, albo z których mają zostać pobrane dane, jeśli następują po argumencie lokalizacja_źródłowa.
zewnętrzna_baza_danych Ścieżka do zewnętrznej bazy danych (zewnętrzna baza danych: Źródło tabeli, która ma zostać połączona z bieżącą bazą danych lub zaimportowana do niej; również miejsce docelowe tabeli, która ma być wyeksportowana.). Aby zapoznać się z pełnym opisem ścieżki, zobacz klauzulę IN.
lokalizacja_źródłowa Nazwa tabeli lub kwerendy, z której mają zostać skopiowane rekordy.
wyrażenie_tabeli Nazwa tabeli lub tabel, z których są wstawiane rekordy. Ten argument może mieć postać pojedynczej nazwy tabeli lub listy nazw tabel powstałej na skutek operacji INNER JOIN, LEFT JOIN lub RIGHT JOIN albo zapisania kwerendy.
wartość1, wartość2 Wartości, które mają zostać wstawione w konkretnych polach nowego rekordu. Każda wartość jest wstawiana w polu odpowiadającym pozycji wartości na liście: wartość1 jest wstawiana w polu1 nowego rekordu, wartość2 — w polu2 itd. Wartości muszą być oddzielone przecinkami, a pola tekstowe muszą być ujęte w pojedyncze znaki cudzysłowu (' ').
Spostrzeżenia

Za pomocą instrukcji INSERT INTO można dodać jeden rekord do tabeli, używając składni kwerendy dołączającej jeden rekord zgodnie z opisem powyżej. W tym przypadku kod określa nazwę i wartość każdego pola rekordu. Należy zdefiniować każde z pól rekordu, któremu ma być przypisana wartość, oraz samą wartość pola. Jeśli pole nie zostanie zdefiniowane, w brakujących kolumnach będzie wstawiona wartość domyślna lub wartość Null (Null: Wartość, którą można wprowadzać w polach lub używać w wyrażeniach i kwerendach, aby wskazać brakujące lub nieznane dane. W języku Visual Basic wartość Null wskazuje słowo kluczowe Null. Niektóre pola, takie jak pola klucza podstawowego, nie mogą zawierać wartości Null.). Rekordy są dodawane na końcu tabeli.

Ponadto przy użyciu klauzuli INSERT INTO można dołączyć zestaw rekordów pochodzących z innej tabeli lub kwerendy, dodając klauzulę SELECT ... FROM w składni kwerendy dołączającej wiele rekordów (patrz powyżej). W tym przypadku klauzula SELECT określa pola, które mają zostać dołączone do tabeli opisanej parametrem lokalizacja_docelowa.

Parametry lokalizacja_źródłowa i lokalizacja_docelowa mogą dotyczyć tabeli lub kwerendy. W przypadku kwerendy aparat bazy danych programu Microsoft Access dołącza rekordy do wszystkich tabel określonych w kwerendzie.

Klauzula INSERT INTO jest opcjonalna, ale jeśli istnieje, poprzedza instrukcję SELECT.

Jeśli tabela docelowa zawiera klucz podstawowy (klucz podstawowy: Jedno lub większa liczba pól (kolumn), których wartości jednoznacznie identyfikują każdy rekord w tabeli. Klucz podstawowy nie dopuszcza wartości Null i zawsze musi mieć unikatowy indeks. Klucz podstawowy służy do wiązania tabeli z kluczami obcymi w innych tabelach.), wartości dołączane do pola lub pól klucza podstawowego muszą być unikatowe i nie mogą wynosić Null. W przeciwnym razie aparat bazy danych programu Microsoft Access nie dołączy rekordów.

Jeśli dla rekordów dołączanych do tabeli zawierającej pole Autonumerowanie (typ danych Autonumerowanie: W bazie danych programu Microsoft Access jest to typ danych pola, który automatycznie przechowuje unikatowy numer każdego rekordu dodawanego do tabeli. Generowane są trzy rodzaje numerów: kolejne, losowe i identyfikatory replikacji.) ma zostać zmieniona numeracja, nie należy umieszczać pola Autonumerowanie w kwerendzie. Pole Autonumerowanie należy umieścić w kwerendzie w sytuacji, gdy mają zostać zachowane oryginalne wartości pola.

Klauzula IN umożliwia dołączenie rekordów do tabeli umieszczonej w innej bazie danych.

Aby utworzyć nową tabelę, należy użyć instrukcji SELECT... INTO i zbudować kwerendę tworzącą tabele (kwerenda tworząca tabele: Kwerenda (instrukcja SQL), która tworzy nową tabelę, a następnie tworzy w niej rekordy (wiersze), kopiując rekordy z istniejącej tabeli lub wyników kwerendy.).

Aby przed wykonaniem kwerendy tworzącej tabele sprawdzić, które rekordy zostaną dołączone, najpierw należy wykonać i przejrzeć wyniki kwerendy wybierającej (kwerenda wybierająca: Kwerenda, która zadaje pytanie o dane przechowywane w tabelach i zwraca zestaw wyników w formie arkusza danych, nie zmieniając danych.), która korzysta z tych samych kryteriów wyboru.

Kwerenda dołączająca kopiuje rekordy między tabelami. Tabele zawierające rekordy, które są dołączane, nie ulegają żadnym zmianom w wyniku użycia tej kwerendy.

Zamiast dołączać istniejące rekordy z innej tabeli, wartość dla każdego pola można określić w jednym nowym rekordzie za pomocą klauzuli VALUES. W przypadku pominięcia listy pól klauzula VALUES musi zawierać wartość z każdego pola w tabeli, ponieważ w przeciwnym razie operacja INSERT nie powiedzie się. Dla każdego dodatkowego rekordu, który ma zostać utworzony, należy użyć osobnej instrukcji INSERT INTO z klauzulą VALUES.

 
 
Dotyczy:
Access 2007