Podsumowanie: w tym samouczku dowiesz się, jak używać instrukcji Oracle INSERT INTO SELECT do wstawiania danych do tabeli z wyniku SELECT.
przegląd Oracle wstaw do instrukcji SELECT
czasami chcesz wybrać dane z tabeli i wstawić je do innej tabeli., Aby to zrobić, należy użyć instrukcji Oracle INSERT INTO SELECT w następujący sposób:
Instrukcja Oracle INSERT INTO SELECTwymaga dopasowania typu danych tabel źródłowych i docelowych.
Jeśli chcesz skopiować wszystkie wiersze z tabeli źródłowej do tabeli docelowej, Usuń klauzulęWHERE. W przeciwnym razie można określić, które wiersze z tabeli źródłowej mają zostać skopiowane do tabeli docelowej.,
Oracle wstaw do wybranych przykładów
A) Wstaw wszystkie dane Sprzedaży przykład
utwórzmy tabelę o nazwiesales dla demonstracji.,
poniższe polecenie wstawia podsumowanie sprzedaży z tabel orders I order_items do tabeli sales:
poniższe polecenie pobiera dane z tabel sales
B) Wstaw częściowe dane sprzedaży przykład
załóżmy, że chcesz skopiować tylko dane podsumowania sprzedaży w 2017 roku do nowej tabeli., Aby to zrobić, najpierw Utwórz nową tabelę o nazwie sales_2017 w następujący sposób:
warunek w klauzuli WHERE zapewnia, że dane z tabeli sales są nie skopiowano do tabeli sales_2017.,
Po drugie, użyj Oracle INSERT INTO SELECT z klauzulą WHERE, aby skopiować dane sprzedaży z roku 2017 do tabeli sales_2017 tabela:
w tym przykładzie nie określiliśmy listy kolumn w INSERT INTO klauzula ponieważ wynik instrukcji SELECT ma wartości odpowiadające kolumnom tabeli sales_2017. Ponadto w WHERE klauzuli SELECT Dodano więcej warunku, aby pobrać tylko dane sprzedaży w 2017 roku.,
poniższe zapytanie wybiera wszystkie dane z tabeli sales_2017:
c) wstaw częściowe dane i wartość literalną przykład
Załóżmy, że chcesz wysyłać wiadomości e-mail do wszystkich klientów, aby ogłosić nowe produkty. Aby to zrobić, możesz skopiować dane Klienta do osobnej tabeli i śledzić status wysyłania wiadomości e-mail.,
Po pierwsze, Utwórz nową tabelę o nazwie customer_lists w następujący sposób:
Po Drugie, skopiuj dane z tabeli contacts do tabeli customer_lists tabela:
w tym przykładzie, oprócz pobierania danych z tabeli contacts, użyliśmy również literału 0 jako wartości dla kolumny sent.,
poniższe zapytanie pobiera dane z tabeli customer_lists:
zauważ, że ten przykład służy tylko do demonstracji, możesz dodać DEFAULT 0 do definicji kolumny sent.
w tym samouczku nauczyłeś się, jak używać instrukcji Oracle INSERT INTO SELECT do wstawiania danych do tabeli z wyniku zapytania.