INSERT INTO – dodawanie/wstawianie rekordów do tabeli – Kurs SQL

Omówimy teraz polecenie INSERT INTO, które służy do wstawiania danych do tabeli. Jego składnia jest następująca:

INSERT INTO nazwa_tabeli VALUES (lista_wartości)

Pole „nazwa_tabeli” wskazuje na tabelę w bazie danych do której chcemy wstawić wartości podane w „lista_wartości”.

Przykład 1:

Mamy tabelę pracownik o następującej strukturze:

pracownik (id_pracownika, imie, nazwisko, pensja)

Teraz do tej tabeli dodamy następujące dane:

Tab. 4.1 Tabela pracownik

id_pracownikaimienazwiskopensja
12008JanKowalski1321,56
22008AdamNowak2536,76
32008KasiaKowalska1207,76

Poprawne polecenia umożliwiające dodanie powyższych danych są następujące:

INSERT INTO pracownik VALUES (‘012008’, ‘Jan’, ‘Kowalski’, ‘1321,56’);
INSERT INTO pracownik VALUES (‘022008’, ‘Adam’, ‘Nowak’, ‘2536,76’);
INSERT INTO pracownik VALUES (‘032008’, ‘Kasia’, ‘Kowalska’, ‘1207,76’);

Poprawna jest także wersja polecenia w której możemy wskazać do jakiej kolumny mają zostać dodane powyższe dane. Polecenia wyglądają wtedy następująco:

INSERT INTO pracownik(id_pracownika, imie, nazwisko, pensja) VALUES (‘012008’, ‘Jan’, ‘Kowalski’, ‘1321,56’);
INSERT INTO pracownik(id_pracownika, imie, nazwisko, pensja) VALUES (‘022008’, ‘Adam’, ‘Nowak’, ‘2536,76’);
INSERT INTO pracownik(id_pracownika, imie, nazwisko, pensja) VALUES (‘032008’, ‘Kasia’, ‘Kowalska’, ‘1207,76’);

Przykład 2:

W tym przykładzie uzupełnimy tabelę „adresy” o następujące dane:

Tab. 4.2 Tabela adresy

idtelefonadres_emailid_pracownika
1501234567jkowalski@msql.pl12008
2601234567anowak@msql.pl22008
3701234567 32008

Tabela w bazie danych ma następującą strukturę:

adresy(id, telefon, adres_email, id_pracownika)

Pole „id” jest indeksem tabeli uzupełnianym automatycznie, więc nie musimy go wstawiać, zaś „adres_email” nie jest polem obowiązkowym – nie każdy pracownik musi posiadać adres e-mail. Zatem aby wstawić powyższe dane do tabeli w bazie danych użyjemy poleceń o następującej składni:

INSERT INTO adresy (telefon, adres_email, id_pracownika) VALUES (‘501234567’, ‘jkowalski@msql.pl’, ‘12008’);
INSERT INTO adresy (telefon, adres_email, id_pracownika) VALUES (‘601234567’, ‘anowak@msql.pl’, ‘22008’);
INSERT INTO adresy (telefon, id_pracownika) VALUES (‘701234567’, ‘32008’);