INSERT - polecenie to służy do dodawania rekordów do tabeli.
Postać instrukcji INSERT jest następująca:
INSERT INTO tabela
VALUES (wartosc1, wartosc2, wartosc3,...)
lub
INSERT INTO tabela (nazwa_kolumny_1, nazwa_kolumny_2, nazwa_kolumny_3,...)
VALUES (wartosc1, wartosc2, wartosc3,...)
UWAGA!
Jeżeli chcemy wprowadzić wartość pustą (null) musimy użyć operacji INSERT określając nazwy kolumy (kolumn).
W poleceniu
INSERT INTO tabela VALUES(wartosci....);
musimy podać wszystkie wartości. W przeciwnym wypadku otrzymamy błąd. (przykład 2, przykład 3)
Przykład 1.
Wyświetlamy zawartość tabeli DEPT, następnie dodajemy rekord pierwszym sposobem.
W dalszej kolejności ponownie wyświetlamy zawartość tabeli, aby sprawdzić efekt działania polecenia INSERT.
Czynność tą powtarzamy dodając rekord drugim sposobem (uwzględniając nazwy kolumn w poleceniu INSERT).
SELECT * FROM DEPT;
DEPTNO DNAME LOC
---------------------- ------------------------- -------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS DENVER
4 rows selected
INSERT INTO DEPT VALUES('50', 'NOWY WPIS 1', 'LOKALIZACJA 1');
1 rows inserted
SELECT * FROM DEPT;
DEPTNO DNAME LOC
---------------------- ------------------------- -------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS DENVER
50 NOWY WPIS 1 LOKALIZACJA 1
5 rows selected
INSERT INTO DEPT (DEPTNO, DNAME, LOC) VALUES('60', 'NOWY WPIS 2', 'LOKALIZACJA 2');
1 rows inserted
SELECT * FROM DEPT;
DEPTNO DNAME LOC
---------------------- ------------------------- -------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS DENVER
50 NOWY WPIS 1 LOKALIZACJA 1
60 NOWY WPIS 2 LOKALIZACJA 2
6 rows selected
Przykład 2.
INSERT INTO DEPT (DEPTNO) VALUES('90');
DEPTNO DNAME LOC
---------------------- ------------------------- -------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS DENVER
90 (null) (null)
7 rows selected
Przykład 3.
INSERT INTO DEPT VALUES('100');
Error starting at line 1 in command:
INSERT INTO DEPT VALUES('100')
Error at Command Line:1 Column:12
Error report:
SQL Error: ORA-00947: not enough values
00947. 00000 - "not enough values"
*Cause:
*Action:
Otrzymujemy błąd - not enough values!!!
Błąd jest spowodowany tym, iż struktura tabeli DEPT zawiera 3 kolumny (DEPTNO, DNAME, LOC), a w naszym INSERT została określona tylko jedna wartość.
Brak komentarzy:
Prześlij komentarz