how use pl sql insert
Ten samouczek wyjaśnia, jak używać poleceń PL SQL INSERT, UPDATE, DELETE i SELECT z przykładami programowania:
W tym artykule będziemy kontynuować Seria PL / SQL . w PL / SQL Typy danych, stałe i zmienne dowiedzieliśmy się szczegółowo o typach danych, zmiennych, stałych i literałach języka PL SQL za pomocą przykładów programowania. Tutaj omówimy instrukcje PL SQL DML i sposób ich działania.
Zbadamy polecenia PL SQL INSERT, DELETE, UPDATE i SELECT, aby manipulować danymi w tabelach PL / SQL.
Zacznijmy od nauki !!
Czego się nauczysz:
- PL SQL Polecenia DML
- Wniosek
PL SQL Polecenia DML
Zacznijmy od zrozumienia implementacji poleceń INSERT, DELETE, UPDATE i SELECT w tabelach. Łącznie nazywane są one instrukcjami języka manipulacji danymi (DML).
Polecenie PL SQL INSERT
Instrukcja INSERT INTO służy do wstawiania danych do tabeli. Nazywa się to Język manipulacji danymi . Używa nazwy tabeli oraz nazw i wartości kolumn jako danych wejściowych i wykonuje wstawianie wartości do tabeli.
Składnia:
INSERT INTO <> VALUES (<>, <>, …..);Nazwa tabeli i wartości do wstawienia są obowiązkową częścią instrukcji PL SQL INSERT. Opcjonalnie możemy również wspomnieć o nazwach kolumn, w których mają zostać wstawione wartości.
Tabelę PRACOWNIK stworzyliśmy za pomocą poniższej instrukcji SQL:
CREATE TABLE EMPLOYEE ( CODE INT NOT NULL, NAME VARCHAR (15) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (CODE) );
Implementacja kodu za pomocą PL SQL INSERT:
BEGIN INSERT INTO EMPLOYEE VALUES (1, 'FLEX', 34); INSERT INTO EMPLOYEE VALUES (2, 'HARRY', 35); END
Wynik powyższego kodu powinien wyglądać następująco:
SELECT * from EMPLOYEE;
WSTAW DO WYBORU
WSTAW DO WSZYSTKICH KOLUMN
INSERT INTO SELECT służy do wstawiania wierszy do tabeli poprzez działanie na wyniku instrukcji SELECT. Może być wymagane pobranie wiersza z tabeli i wstawienie go do innej tabeli.
Składnia:
INSERT INTO <> (col1, col2, col3) SELECT col1, col2, col3 FROM <
Polecenie INSERT INTO SELECT wymaga, aby typy danych tabeli źródłowej i docelowej były takie same. W przypadku, gdy wymagamy skopiowania całych wierszy tabeli źródłowej do tabeli docelowej, możemy pominąć warunek WHERE.
Stworzyliśmy kolejną tabelę o nazwie MANAGER za pomocą instrukcji SQL podanej poniżej:
SQL Server 2012 pytania i odpowiedzi do wywiadu
CREATE TABLE MANAGER ( CODE INT NOT NULL, NAME VARCHAR (15) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (CODE) );
Rozważmy ponownie tabelę PRACOWNIK.
Implementacja kodu za pomocą INSERT INTO SELECT .:
BEGIN INSERT INTO MANAGER (CODE, NAME, AGE) SELECT CODE, NAME, AGE FROM EMPLOYEE WHERE CODE = 1; END;
Wyjście powyższego kodu:
SELECT * from MANAGER;
WSTAW CZĘŚCIOWE DANE
Możemy również wstawić częściowe dane do innej tabeli. Najpierw utwórzmy plik MANAGERDETAIL tabela z tabeli EMPLOYEE z poniższym zapytaniem.
CREATE TABLE MANAGERDETAIL AS SELECT * FROM EMPLOYEE WHERE 1 = 0;
Tutaj, GDZIE 1 = 0 odnosi się do pierwszej kolumny tabeli PRACOWNIK, którą jest CODE.
Następnie użyjemy instrukcji INSERT INTO SELECT, aby zduplikować dane z tabeli EMPLOYEE do tabeli MANAGERDETAIL.
Implementacja kodu za pomocą INSERT INTO SELECT;
BEGIN INSERT INTO MANAGERDETAIL SELECT CODE, NAME, AGE FROM EMPLOYEE WHERE CODE! = 0 END;
Wyjście powyższego kodu:
SELECT * from MANAGERDETAIL;
W powyższym przykładzie nie wspomnieliśmy o nazwach kolumn w poleceniu INSERT, ponieważ dane wyjściowe polecenia SELECT mają wartości zgodne z kolumnami tabeli MANAGERDETAIL. Zawarliśmy również warunek z klauzulą WHERE.
WPISAĆ CZĘŚCIOWE DANE I DANE DOTYCZĄCE
Do tabeli możemy wstawić częściowe dane i wartość literału.
Najpierw utwórzmy tabelę MANAGERCONTACT z poniższym zapytaniem:
CREATE TABLE MANAGERCONTACT ( CODE INT NOT NULL, NAME VARCHAR (15) NOT NULL, AGE INT NOT NULL, PRIMARY KEY (CODE) );
Teraz ponownie skorzystajmy z pomocy tabeli EMPLOYEE i spróbujmy skopiować dane z tabeli EMPLOYEE do tabeli MANAGERCONTACT.
Implementacja kodu za pomocą INSERT INTO:
BEGIN INSERT INTO MANAGERCONTACT (CODE, NAME, AGE) SELECT CODE, NAME, 0 FROM EMPLOYEE; END;
Wyjście powyższego kodu:
SELECT * from MANAGERCONTACT;
W powyższym przykładzie otrzymaliśmy wartości z tabeli EMPLOYEE, a także uwzględniliśmy literał 0 w instrukcji INSERT, która zmodyfikowała wartości kolumny AGE na 0 w tabeli MANAGERCONTACT.
WSTAW WSZYSTKIE
Instrukcja INSERT ALL służy do dodawania więcej niż jednego wiersza do pojedynczej tabeli lub wielu tabel. Nazywa się to również poleceniem dla wielu tabel i ma dwa typy warunkowe i bezwarunkowe.
# 1) BEZ WARUNKÓW WSTAW WSZYSTKO
Aby wstawić więcej niż jeden wiersz do tabeli, używana jest instrukcja INSERT ALL.
Składnia:
INSERT ALL INTO <> (c1, c2, c3) VALUES (v1, v2, v3) INTO <> (c1, c2, c3) VALUES (v4, v5, v6) INTO <> (c1, c2, c3) VALUES (v7, v8, v9) Tutaj c1, c2 i c3 to nazwy kolumn, a v1, v2 i v3 to wartości do wstawienia. W przypadku, musimy użyć wartości literalnej zamiast podzapytania; musimy użyć poniższego zapytania:
SELECT * FROM dual;
Tabelę SOCCERPLAYERS stworzyliśmy za pomocą poniższej instrukcji SQL:
CREATE TABLE SOCCERPLAYERS ( PLAYERID INT NOT NULL, NAME VARCHAR (15) NOT NULL, COUNTRY VARCHAR (15), PRIMARY KEY (PLAYERID) );
Implementacja kodu z INSERT ALL:
BEGIN INSERT ALL INTO SOCCERPLAYERS (PLAYERID, NAME, COUNTRY) VALUES (4, 'DANIEL', 'USA') INTO SOCCERPLAYERS (PLAYERID, NAME, COUNTRY) VALUES (8, 'DANNY', 'ITALY') INTO SOCCERPLAYERS (PLAYERID, NAME, COUNTRY) VALUES (7, 'FRANK', 'FRANCE') SELECT 1 FROM dual; END;
Wyjście powyższego kodu:
SELECT * from SOCCERPLAYERS;
W powyższym przykładzie trzy wiersze zostały wstawione jednocześnie do tabeli za pomocą polecenia INSERT ALL.
Aby wstawić więcej niż jeden wiersz do wielu tabel, używana jest instrukcja INSERT ALL.
Składnia:
INSERT ALL INTO <> (c1, c2, c3) VALUES (v1, v2, v3) INTO <> (c1, c2, c3) VALUES (v4, v5, v6) INTO <> (c1, c2, c3) VALUES (v7, v8, v9) Subquery;
Tutaj c1, c2 i c3 to nazwy kolumn, a v1, v2 i v3 to wartości do wstawienia. Nazwa_tabeli1, nazwa_tabeli2 i nazwa_tabeli3 to nazwy tabel.
# 2) WARUNKOWA WSTAW WSZYSTKO
Instrukcja INSERT ALL może wstawić więcej niż jeden wiersz do tabel w zależności od pewnych warunków.
Składnia:
INSERT (ALL | FIRST) WHEN cond1 THEN INTO table_name1 <> VALUES <> WHEN cond2 THEN INTO table_name2 <> VALUES <> ELSE INTO table_name3 <> VALUES <> Subquery;
Słowo kluczowe ALL jest używane do określenia, że wszystkie warunki z klauzuli WHERE zostaną wykonane. Jeśli warunek zostanie spełniony, zostanie uruchomiona odpowiednia klauzula INTO.
Jeśli zostanie użyte słowo kluczowe FIRST, wówczas dla każdego pojedynczego wiersza uzyskanego z podzapytania Oracle wykonuje kryteria w klauzuli WHEN od góry do dołu. Gdy warunek zostanie spełniony, odpowiednia klauzula INTO zostanie uruchomiona i przeskoczy do innej klauzuli WHEN dla tego wiersza.
Stworzyliśmy tabele VEHICLE, CARS, SMALLCARS i LARGECARS za pomocą poniższych instrukcji SQL:
CREATE TABLE VEHICLE ( CARID INT NOT NULL, NAME VARCHAR (15) NOT NULL, COLOR VARCHAR (15), PRIMARY KEY (CARID) );
Wprowadź poniższe wartości do tabeli VEHICLE:
INSERT INTO VEHICLE VALUES (1, 'AUDI', 'RED'); INSERT INTO VEHICLE VALUES (4, 'BMW', 'WHITE'); INSERT INTO VEHICLE VALUES (7, 'KIA', 'GREEN'); CREATE TABLE CARS ( CARID INT NOT NULL, NAME VARCHAR (15) NOT NULL, COLOR VARCHAR (15), PRIMARY KEY (CARID) ); CREATE TABLE SMALLCARS AS SELECT * FROM CARS; CREATE TABLE LARGECARS AS SELECT * FROM CARS;
Implementacja kodu za pomocą INSERT ALL.
BEGIN INSERT ALL WHEN CARID = 1 THEN INTO CARS WHEN CARID = 4 THEN INTO SMALLCARS WHEN CARID = 7 THEN INTO LARGECARS SELECT CARID, NAME, COLOR FROM VEHICLE; END;
Wyjście powyższego kodu:
SELECT * from CARS;
SELECT * from SMALLCARS;
SELECT * from LARGECARS;
W powyższym przykładzie jeden wiersz został wstawiony do każdej z trzech tabel na podstawie wartości CARDID.
Instrukcja INSERT ALL ma pewne ograniczenia:
- Służy tylko do wstawiania wartości w tabelach. Nie działa z widokami ani widokami zmaterializowanymi.
- Nie ma możliwości wstawiania wartości do zdalnych tabel.
- Liczba kolumn, które może obsłużyć polecenie INSERT INTO, nie powinna być większa niż 999.
- Wyrażenie kolekcji tabel nie może być używane w poleceniu INSERT dla wielu tabel.
- Podzapytanie INSERT z wieloma tabelami nie może używać sekwencji.
PL SQL Update Command
Instrukcja UPDATE służy do modyfikowania wartości w tabeli. Nazywa się to również a Język manipulacji danymi . Używa nazw tabeli, kolumny i wartości jako danych wejściowych i wykonuje modyfikację wartości w tabeli.
Składnia:
UPDATE <> SET <>=<>, <>=<>,… WHERE <>;Słowo kluczowe SET służy do zmiany wartości kolumny na nową wartość. Opcjonalnie używane jest słowo kluczowe WHERE, jeśli zostanie pominięte, wówczas wartość określonej kolumny w pełnej tabeli zostanie zmodyfikowana.
ZAKTUALIZUJ POJEDYNCZĄ KOLUMNĘ WIERSZA
Rozważmy ponownie tabelę PRACOWNIK.
Implementacja kodu z UPDATE:
BEGIN UPDATE EMPLOYEE SET NAME = 'HENRY' WHERE CODE=1; END;
Wyjście powyższego kodu:
SELECT * from EMPLOYEE;
ZAKTUALIZUJ WIELE KOLUMN W WIERSZU
Rozważmy ponownie tabelę PRACOWNIK.
Implementacja kodu z UPDATE:
BEGIN UPDATE EMPLOYEE SET NAME = 'COMO', AGE = 30 WHERE CODE=2; END;
Wyjście powyższego kodu:
SELECT * from EMPLOYEE;
ZAKTUALIZUJ WIELE WIERSZY
Rozważmy ponownie tabelę PRACOWNIK.
Implementacja kodu z UPDATE:
BEGIN UPDATE EMPLOYEE SET AGE = AGE +1; END;
Wyjście powyższego kodu:
SELECT * from EMPLOYEE;
W powyższym przykładzie WIEK wszystkich pracowników wzrósł o 1.
PL SQL Usuń polecenie
Instrukcja DELETE służy do usuwania całego rekordu z tabeli. Nazywa się to również a Język manipulacji danymi.
Składnia:
DELETE FROM <> WHERE <>;Słowo kluczowe FROM nie jest obowiązkowe, a instrukcja DELETE powinna dać ten sam wynik, jeśli FROM zostanie dodana lub nie w zapytaniu. Opcjonalnie użyte jest słowo kluczowe WHERE, jeśli zostanie pominięte, cała tabela zostanie usunięta.
USUŃ POJEDYNCZY RZĘD Z TABELI
Rozważmy ponownie tabelę PRACOWNIK.
Implementacja kodu z DELETE:
BEGIN DELETE FROM EMPLOYEE WHERE CODE=2; END;
Wyjście powyższego kodu:
SELECT * from EMPLOYEE;
USUŃ WIELE WIERSZY Z TABELI
Rozważmy ponownie tabelę MANAGERDETAIL.
Implementacja kodu z DELETE:
BEGIN DELETE FROM MANAGERDETAIL WHERE CODE > 0; END;
Wyjście powyższego kodu:
SELECT * from MANAGERDETAIL;
USUŃ CAŁY RZĘDY Z TABELI
Rozważmy ponownie tabelę VEHICLE.
Implementacja kodu z DELETE:
BEGIN DELETE FROM VEHICLE; END;
Wyjście powyższego kodu:
SELECT * from VEHICLE;
PL SQL Select Command
Instrukcja SELECT służy do pobierania danych z bazy danych. Instrukcja SELECT INTO służy do pobierania wartości z bazy danych i przechowywania ich w zmiennych lokalnych wprowadzonych przez PL / SQL.
Jeśli używamy tylko instrukcji SELECT, zwraca ona pojedynczy rekord. W przypadku, gdy instrukcja SELECT pobiera wiele wartości, TOO_MANY_ROWS wyjątek jest zgłaszany przez PL / SQL. Korzystając z instrukcji SELECT INTO, przypisujemy zmiennej co najmniej jedną wartość. Jeśli jednak żaden rekord nie zostanie pobrany z bazy danych, plik NIE ZNALEZIONO DANYCH jest zgłaszany wyjątek.
Liczba kolumn i ich typ powinny być równe liczbie zmiennych i ich typowi w słowie kluczowym INTO. Wartości są pobierane z bazy danych w tej samej kolejności, jak zdefiniowano w instrukcji SELECT.
Słowo kluczowe WHERE w instrukcji SELECT jest opcjonalne i pozwala nam uzyskać rekordy spełniające określone kryteria. Należy zauważyć, że zapytanie SELECT z poleceniami DELETE, UPDATE i INSERT nie ma klauzuli INTO.
Składnia:
SELECT <>, <>, ..<> INTO <>, <>, … <> FROM <> WHERE <>;POBIERZ DANE ZE WSZYSTKICH KOLUMN TABELI
Rozważmy ponownie tabelę PRACOWNIK.
Implementacja kodu z SELECT:
BEGIN SELECT * FROM EMPLOYEE WHERE CODE=1; END;
Wyjście powyższego kodu:
Implementacja kodu z instrukcją SELECT zgłaszającą wyjątek:
BEGIN SELECT * FROM EMPLOYEE WHERE CODE=2; END;
Wyjście powyższego kodu:
Wyjątek nie znaleziono danych jest generowany, ponieważ instrukcja SELECT nie uzyskała wiersza pasującego do warunku określonego, ponieważ w bazie danych nie ma pracownika o KOD 2.
POBIERZ DANE Z KOLUMNY TABELI
Rozważmy ponownie tabelę PRACOWNIK.
BEGIN SELECT CODE FROM EMPLOYEE; END;
Wyjście powyższego kodu:
POBIERZ DANE Z WIELU KOLUMN TABELI
Rozważmy ponownie tabelę PRACOWNIK.
BEGIN SELECT CODE, NAME FROM EMPLOYEE; END;
Wyjście powyższego kodu:
W powyższym przykładzie dwie kolumny CODE i NAME zostały dodane w instrukcji SELECT.
Często zadawane pytania i odpowiedzi
P 1) Co to jest INSERT, UPDATE i DELETE w SQL?
Odpowiedź: INSERT, UPDATE i DELETE to polecenia w języku SQL, które pomagają w obsłudze i aktualizowaniu danych. Instrukcja INSERT wstawia wiersze do tabeli. Instrukcja DELETE usuwa wiersze z tabeli, a instrukcja UPDATE aktualizuje wartości w wierszach tabeli.
Q # 2) Czy możemy WSTAWIĆ, AKTUALIZOWAĆ i USUWAĆ w widoku SQL?
Odpowiedź: Tak, możemy wstawiać, aktualizować i usuwać w widoku SQL. Jeśli widok został przyłączony między tabelami, możemy wykonać tylko akcje INSERT i UPDATE, ale nie możemy wykonać operacji DELETE. Instrukcja DROP służy do usuwania widoku.
P # 3) Czy INSERT DDL czy DML?
Odpowiedź: INSERT jest językiem DML lub językiem manipulacji danymi). Inne instrukcje DML obejmują UPDATE, DELETE i tak dalej. Instrukcja DDL umożliwia tworzenie tabel, schematów i baz danych.
P # 4) Czy możemy użyć zapytania usuwającego JOIN IN?
Odpowiedź: Tak, możemy użyć instrukcji INNER JOIN w poleceniu DELETE do usuwania wierszy z tabeli.
P # 5) Jaka jest różnica między poleceniem obcinania i usuwania?
Odpowiedź: TRUNCATE to instrukcja DDL, a DELETE to DML. Polecenie TRUNCATE może usunąć całą tabelę. Nie zachowuje integralności stołu. Instrukcja DELETE może usunąć tylko określone dane z tabeli. Może również zawierać warunki usunięcia.
P # 6) Co to są DML, DCL i DDL?
Odpowiedź: Instrukcje SQL są typu - DML, DCL i DML.
Język definicji danych lub DDL zawiera polecenia, takie jak ALTER, DROP, CREATE, RENAME, TRUNCATE i COMMENT. Język manipulacji danymi lub DML zawiera polecenia takie jak INSERT, DELETE, MERGE, UPDATE, CALL, LOCK TABLE i EXPLAIN PLAN.
Język kontroli danych lub DCL zawiera polecenia takie jak GRANT i REVOKE.
P # 7) Czy obcinanie jest szybsze niż upuszczanie?
Odpowiedź: Tak, operacja TRUNCATE jest szybsza niż DROP. Polecenie TRUNCATE usuwa tylko dane z tabeli. Polecenie DROP usuwa strukturę tabeli i dane z tabeli.
Wniosek
W tym samouczku szczegółowo omówiliśmy kilka podstawowych pojęć dotyczących poleceń PL SQL, które są niezbędne do rozwijania wiedzy na ich temat. Omówiliśmy następujące tematy wymienione poniżej:
- Polecenia języka manipulacji danymi.
- Wykorzystanie PL SQL INSERT.
- Wykorzystanie PL SQL UPDATE.
- Wykorzystanie PL SQL DELETE.
- Wykorzystanie PL SQL SELECT.
<< PREV Tutorial | NASTĘPNY samouczek >>
rekomendowane lektury
- Samouczek języka PL SQL dla początkujących z przykładami | Co to jest PL / SQL
- PL SQL Kursor i ciągi znaków: samouczek z przykładami kodu
- PL SQL Typy danych, zmienne, stałe i literały
- PL SQL Datetime Format: Funkcje daty i czasu w PL / SQL
- Pakiet PL SQL: Samouczek dotyczący pakietu Oracle PL / SQL z przykładami
- MySQL Wstaw do tabeli - Wstaw składnię instrukcji i przykłady
- Instrukcja MySQL Update - składnia i przykłady aktualizacji zapytania
- Instrukcja usuwania MySQL - składnia polecenia usuwania i przykłady
^