Zapytanie INSERT: Dodawanie danych

Dodawanie nowych rekordów do tabel w bazie danych MySQL odbywa się za pomocą zapytania INSERT. Jest to jedna z najczęściej używanych operacji, która pozwala na wprowadzanie danych do tabeli w sposób dynamiczny.

Możemy dodawać pojedyncze rekordy, wiele rekordów jednocześnie, a także dane pobrane z innych tabel.

📌 Podstawowa składnia zapytania INSERT

✅ Podstawowa składnia:

  • INSERT INTO – określa tabelę, do której dodajemy dane.
  • (kolumna1, kolumna2, kolumna3) – lista kolumn, do których wprowadzamy wartości.
  • VALUES (wartość1, wartość2, wartość3) – wartości przypisane do poszczególnych kolumn.
Przykład
-- Podstawowa Składnia
INSERT INTO nazwa_tabeli (kolumna1, kolumna2, kolumna3)
VALUES (wartość1, wartość2, wartość3);

-- Przykład: Dodanie nowego użytkownika do tabeli uzytkownicy
INSERT INTO uzytkownicy (imie, nazwisko, email, wiek)
VALUES ('Jan', 'Kowalski', '[email protected]', 30);

📌 Wstawianie wielu rekordów jednocześnie

✅ Przykład: Dodanie kilku użytkowników w jednym zapytaniu

📌 Zalety:

  • Zmniejsza liczbę zapytań do serwera, co poprawia wydajność.
  • Przyspiesza proces dodawania dużych zbiorów danych.
Przykład
INSERT INTO uzytkownicy (imie, nazwisko, email, wiek)
VALUES 
  ('Anna', 'Nowak', '[email protected]', 25),
  ('Piotr', 'Wiśniewski', '[email protected]', 35),
  ('Katarzyna', 'Dąbrowska', '[email protected]', 28);

📌 Pomijanie kolumn z domyślnymi wartościami

✅ Przykład: Dodanie użytkownika bez określania wieku

📌 Opis:

  • Jeśli kolumna wiek ma ustawioną wartość domyślną (np. NULL lub 0), nie trzeba jej podawać w zapytaniu.
Przykład
INSERT INTO uzytkownicy (imie, nazwisko, email)
VALUES ('Michał', 'Zieliński', '[email protected]');

📌 Wstawianie danych na podstawie innej tabeli

✅ Przykład: Skopiowanie aktywnych użytkowników do tabeli archiwum_uzytkownikow

Opis:

  • Pobieramy dane z tabeli uzytkownicy i zapisujemy je w tabeli archiwum_uzytkownikow.
  • Może być przydatne w archiwizacji lub migracji danych.
Przykład
INSERT INTO archiwum_uzytkownikow (imie, nazwisko, email, wiek)
SELECT imie, nazwisko, email, wiek FROM uzytkownicy WHERE status = 'aktywny';

Podsumowanie

  • Zapytanie INSERT służy do dodawania nowych rekordów do tabeli.
  • Można wstawić pojedynczy rekord lub wiele rekordów w jednym zapytaniu.
  • Nie trzeba podawać wartości dla kolumn z domyślnymi ustawieniami.
  • Możemy kopiować dane między tabelami za pomocą `INSERT INTO ... SELECT`.
  • Obsługa błędów: `IGNORE` ignoruje błędy duplikatów, a `ON DUPLICATE KEY UPDATE` aktualizuje istniejący rekord.