Lekcja 4 – Wstawianie danych do bazy danych SQL

Po utworzeniu tabel w bazie danych, następnym krokiem jest wstawianie do nich danych. W tej lekcji omówimy, jak dodawać dane do tabel, używając polecenia INSERT INTO, w tym jak wstawić jeden rekord, jak dodać wiele rekordów naraz oraz jak radzić sobie z automatycznym numerowaniem identyfikatorów. Dowiesz się również, jak zadbać o poprawność danych wprowadzanych do tabeli.

Wstawianie danych za pomocą INSERT INTO

Podstawowym poleceniem do wstawiania danych do tabel w SQL jest INSERT INTO. Polecenie to umożliwia dodawanie nowych rekordów do istniejącej tabeli. Składnia polecenia wygląda następująco:

INSERT INTO nazwa_tabeli (kolumna1, kolumna2, ...)
VALUES (wartosc1, wartosc2, ...);
  • nazwa_tabeli – nazwa tabeli, do której chcemy dodać dane.
  • kolumna1, kolumna2, … – nazwy kolumn, do których wstawiane będą wartości.
  • wartosc1, wartosc2, … – wartości, które mają być dodane w poszczególnych kolumnach.

Przykład: Wstawianie pojedynczego rekordu

Załóżmy, że mamy tabelę Uzytkownicy, którą stworzyliśmy w poprzedniej lekcji, z kolumnami ID, Imie, Nazwisko i Email. Teraz chcemy dodać do tej tabeli nowego użytkownika.

Przykład zapytania:

INSERT INTO Uzytkownicy (Imie, Nazwisko, Email)
VALUES ('Jan', 'Kowalski', 'jan.kowalski@example.com');

W tym przykładzie wstawiamy dane do kolumn Imie, Nazwisko i Email, a wartość ID zostanie automatycznie wygenerowana, ponieważ kolumna ID została zdefiniowana z opcją AUTO_INCREMENT.

Wstawianie wielu rekordów

SQL umożliwia wstawianie wielu rekordów jednocześnie w jednym zapytaniu, co jest bardziej efektywne, gdy mamy do dodania większą ilość danych. Aby wstawić kilka rekordów na raz, wystarczy dodać kolejne zestawy wartości w poleceniu INSERT INTO.

Przykład:

INSERT INTO Uzytkownicy (Imie, Nazwisko, Email)
VALUES 
('Anna', 'Nowak', 'anna.nowak@example.com'),
('Piotr', 'Zieliński', 'piotr.zielinski@example.com'),
('Maria', 'Kowalska', 'maria.kowalska@example.com');

To zapytanie doda trzy nowe rekordy do tabeli Uzytkownicy. Każdy zestaw wartości odpowiada jednemu wierszowi w tabeli.

Pomijanie kolumn z AUTO_INCREMENT

Jeśli tabela zawiera kolumnę z ustawieniem AUTO_INCREMENT, tak jak w przypadku kolumny ID w tabeli Uzytkownicy, nie musisz jej uwzględniać w poleceniu INSERT INTO. SQL automatycznie wygeneruje dla niej kolejne unikalne wartości. W powyższych przykładach kolumna ID była pomijana, a wartości były generowane automatycznie.

Wstawianie danych do wszystkich kolumn

Możesz również wstawić wartości do wszystkich kolumn tabeli, bez konieczności podawania nazw kolumn. W takim przypadku musisz podać wartości dla każdej kolumny w tej samej kolejności, w jakiej zostały zdefiniowane w tabeli.

Przykład:

INSERT INTO Uzytkownicy
VALUES (NULL, 'Tomasz', 'Wiśniewski', 'tomasz.wisniewski@example.com');

W tym przypadku podaliśmy wartości dla wszystkich kolumn, ale kolumna ID otrzymuje wartość NULL, co powoduje, że SQL automatycznie wygeneruje dla niej kolejną wartość. Ta metoda działa tylko wtedy, gdy wiesz dokładnie, jakie kolumny są w tabeli i w jakiej kolejności.

Sprawdzanie poprawności danych

Podczas wstawiania danych do tabeli musisz upewnić się, że dane są zgodne z typami danych zdefiniowanymi dla każdej kolumny. Jeśli spróbujesz wstawić niewłaściwe dane, SQL zwróci błąd. Oto kilka przykładów typowych błędów:

  • Wstawianie zbyt długiego tekstu do kolumny typu VARCHAR:
INSERT INTO Uzytkownicy (Imie, Nazwisko, Email)
VALUES ('Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'Nowak', 'anna.nowak@example.com');

Jeżeli kolumna Imie ma określenie VARCHAR(50), powyższe zapytanie spowoduje błąd, ponieważ wartość przekracza dozwoloną długość 50 znaków.

  • Wstawianie niewłaściwego typu danych:
INSERT INTO Uzytkownicy (Imie, Nazwisko, Email)
VALUES ('Anna', 'Nowak', 12345);

W tym przypadku próba wstawienia liczby do kolumny Email, która jest typu VARCHAR, spowoduje błąd, ponieważ kolumna ta oczekuje tekstu.

Ignorowanie błędów za pomocą INSERT IGNORE

Czasami możesz chcieć zignorować błędy, które wystąpią podczas wstawiania danych, np. gdy próbujesz wstawić rekord, który narusza reguły unikalności. W takim przypadku możesz użyć polecenia INSERT IGNORE. Jeśli wystąpi błąd, SQL po prostu zignoruje ten rekord i przejdzie do kolejnego.

Przykład:

INSERT IGNORE INTO Uzytkownicy (Imie, Nazwisko, Email)
VALUES ('Anna', 'Nowak', 'anna.nowak@example.com');

W tym przypadku, jeśli istnieje już rekord z takim samym adresem e-mail (jeśli kolumna Email ma ograniczenie unikalności), SQL zignoruje ten wiersz i nie doda go ponownie.

Wstawianie danych z wartościami domyślnymi

Czasami tabela może mieć ustawione domyślne wartości dla niektórych kolumn. W takim przypadku możesz pominąć te kolumny w poleceniu INSERT INTO, a SQL automatycznie wstawi domyślne wartości.

Załóżmy, że kolumna Status w tabeli Uzytkownicy ma domyślną wartość ‘aktywny’. Możesz pominąć tę kolumnę w zapytaniu INSERT INTO, a SQL automatycznie przypisze tej kolumnie wartość ‘aktywny’:

INSERT INTO Uzytkownicy (Imie, Nazwisko, Email)
VALUES ('Anna', 'Nowak', 'anna.nowak@example.com');

Wstawianie danych w phpMyAdmin

Jeśli używasz narzędzia phpMyAdmin (np. w XAMPP), możesz wstawiać dane do tabeli za pomocą graficznego interfejsu:

  1. Wybierz swoją tabelę (np. Uzytkownicy) z listy tabel w phpMyAdmin.
  2. Kliknij zakładkę Wstaw.
  3. Wypełnij formularz z wartościami, które chcesz dodać do tabeli.
  4. Kliknij Wykonaj, aby wstawić dane.

phpMyAdmin automatycznie wygeneruje odpowiednie zapytanie INSERT INTO, więc nie musisz pisać go ręcznie.

Podsumowanie

Wstawianie danych do tabeli za pomocą polecenia INSERT INTO to podstawowa operacja w SQL. Nauczyliśmy się, jak wstawiać pojedyncze rekordy, jak dodawać wiele rekordów naraz, jak radzić sobie z kolumnami AUTO_INCREMENT, a także jak unikać typowych błędów związanych z typami danych. W następnej lekcji omówimy, jak aktualizować istniejące dane w tabelach oraz jak bezpiecznie usuwać rekordy.

Wstawianie danych to pierwszy krok do wypełnienia tabeli danymi, z którymi będziesz mógł później pracować, tworząc bardziej złożone zapytania i operacje na bazie danych.

Gratulacje! Ukończyłeś lekcję 4.
Przejdź teraz do lekcji 5 >> Pobieranie danych z bazy danych SQL


Spis Treści - darmowy kurs SQL


Wprowadzenie: Czym jest baza danych?
Lekcja 1: Instalacja dedykowanego środowiska dla SQL
Lekcja 2: Tworzenie bazy danych
Lekcja 3: Tworzenie tabel w SQL
Lekcja 4: Wstawianie danych do bazy danych SQL
Lekcja 5: Pobieranie danych z bazy danych SQL
Lekcja 6: Aktualizacja i usuwanie danych SQL
Lekcja 7: Operacje na danych (JOIN)
Lekcja 8: Funkcje agregujące i grupowanie danych (GROUP BY)
Lekcja 9: Podzapytania (Subqueries)
Lekcja 10: Indeksy w bazach danych
Lekcja 11: Optymalizacja zapytań SQL
Lekcja 12: Transakcje w bazach danych
Lekcja 13: Zarządzanie blokadami (Locks) i dostępem do danych
Lekcja 14: Replikacja danych w bazach danych
Lekcja 15: Partycjonowanie danych SQL
Lekcja 16: Widoki (Views) w bazach danych
Lekcja 17: Procedury składowane (Stored Procedures) i funkcje w SQL
Lekcja 18: Wyzwalacze (Triggers) w bazach danych
Lekcja 19: Zaawansowane indeksowanie w bazach danych
Lekcja 20: Narzędzia do zarządzania dużymi danymi (Big Data) w SQL
Lekcja 21: Bezpieczeństwo baz danych


Dodatki: 
- Spis najważniejszych funkcji SQL