8i | 9i | 10g | 11g | 12c | 13c | 18C | 19C | 21c | różne | PL/SQL | SQL | RAC | WebLogic | Linux

Strona główna „Artykuły” różne ” tutaj

jest to ósma część serii artykułów prezentujących podstawy SQL. W tym artykule przyjrzymy się niektórym wariantom instrukcjiINSERT.,

  • Setup
  • COMMIT and ROLLBACK
  • Basic INSERT
  • INSERT into View
  • INSERT … SELECT
  • Skalar Subqueries

powiązane artykuły.

  • SQL dla początkujących (część 8) : instrukcja INSERT
  • SQL dla początkujących – pełna lista odtwarzania
  • Artykuły Oracle SQL – pierwsze kroki
  • wielozadaniowe Wstawki

Konfiguracja

możesz wykonywać wszystkie te zapytania online za darmo za pomocą SQL Fiddle.

przykłady w tym artykule wymagają obecności następujących tabel.,

tabele te są odmianą tabel EMP i DEPT ze schematu Scotta. Zobaczysz wiele przykładów Oracle w Internecie przy użyciu tabel ze schematu Scotta. Oryginalną definicję tabeli znajdziesz w ” $ORACLE_HOME/RDBMS/admin/utlsampl.skrypt sql.

w tym artykule będziemy również potrzebować następującej kopii tabeli pracowników. Uwaga wprowadziliśmy obowiązkowe kolumny EMPLOYEE_NAME i JOB. Kolumna EMPLOYEE_ID jest domyślnie obowiązkowa, ponieważ jest kluczem głównym.,

COMMIT i ROLLBACK

wszystkie zmiany w języku Data Manipulation Language (DML) są dokonywane w ramach transakcji. Nie są one trwałe, dopóki nie zostaną potwierdzone za pomocą instrukcji COMMIT. Po zatwierdzeniu, jedynym sposobem na przywrócenie zmiany jest wydanie nowego Oświadczenia DML w celu zmiany danych. Kilka instrukcji można pogrupować w jedną transakcję.

polecenia języka definicji danych (DDL) wykonują implicit commit, który również potwierdza wszystkie nierozstrzygnięte zmiany DML w bieżącej sesji.,

Jeśli zdecydujesz, że nie chcesz przechowywać niektórych niezarejestrowanych zmian, możesz je wyrzucić za pomocą instrukcjiROLLBACK. Wiele przykładów w tym artykule wydaROLLBACK instrukcje po teście, aby przywrócić dane do pierwotnego stanu.

niektóre narzędzia i języki programowania domyślnie automatycznie zatwierdzają, więc automatycznie wydają polecenieCOMMIT po każdej instrukcji DML, którą przetwarzają. Nie daj się zwieść myśląc, że to domyślne zachowanie. Nie jest.,

Basic INSERT

najprostsza wersja instrukcjiINSERT nie określa kolumn, które mają być wstawione. Zakłada, że wartości są podane we właściwej kolejności kolumn i żadne wartości kolumn nie zostały pominięte. W rezultacie jest to niebezpieczne w kodzie aplikacji, ponieważ dodanie kolumny do tabeli spowoduje złamanie instrukcji.

podanie listy kolumn jest znacznie bezpieczniejsze, ponieważ instrukcja nie zostanie złamana, jeśli do tabeli zostaną dodane opcjonalne kolumny.,

Jawna lista kolumn umożliwia również usunięcie opcjonalnych kolumn z instrukcji i zamianę pozycji kolumn w instrukcji. W poniższym przykładzie kolumny MANAGER_ID, COMMISSION i DEPARTMENT_ID zostały usunięte, a Kolumna EMPLOYEE_ID została przeniesiona na koniec listy kolumn i listy wartości.

pamiętaj, że pominięcie kolumn obowiązkowych nie jest dozwolone, chyba że masz domyślne wartości kolumn lub wyzwalacze, które je wypełniają. W poniższym przykładzie kolumna JOB jest pominięta, która jest kolumną obowiązkową w tabeli EMPLOYEES2.,

wstawianie do widoków

możliwe jest wstawianie do tabeli bazowej powiązanej z widokiem. Istnieją pewne ograniczenia związane z tym, ale są one trochę poza zakresem artykułu na poziomie początkującym. W poniższym przykładzie tworzymy prosty widok w tabeli EMPLOYEES2, a następnie wstawiamy do niej.

nie zobaczysz go zbyt często, ale możesz również wstawić do widoków wbudowanych. Może to być używane do kontrolowania listy kolumn dla insert, zamiast używać jawnej listy kolumn.

Wstaw …, SELECT

możliwe jest tworzenie wielu wierszy w jednymINSERT przy użyciu składniINSERT ... SELECT. Poniższy przykład kopiuje wszystkie dane z tabeli pracowników do tabeli EMPLOYEES2.

lista kolumn w instrukcjiINSERT musi być zgodna z listąSELECT w zapytaniu.

standardowe reguły mają zastosowanie do części zapytania instrukcji, więc można filtrować dane lub łączyć je z innymi tabelami w celu zebrania danych.,

skalarne zapytania podrzędne

skalarne zapytania podrzędne mogą być użyte do źródła wartości dla instrukcjiINSERT. W poniższym przykładzie kolumna wynagrodzenia jest wypełniona skalarnym zapytaniem podrzędnym, które Zwraca maksymalną pensję z tabeli pracowników i dodaje do niej 1000.

Więcej informacji na stronie: