Lekcja 17: Wstawianie danych - INSERT INTO

Preview Mode

You're viewing this material in preview mode. Sign up to track your progress and access all features.

Lekcja 17: Wstawianie danych - INSERT INTO
Required In Progress

Przechodzimy do DML (Data Manipulation Language)

Do tej pory (Lekcje 3–16) skupialiśmy się wyłącznie na DQL (SELECT), czyli odczytywaniu danych. Teraz przechodzimy do DML, czyli modyfikowania danych. Zaczynamy od dodawania nowych wierszy.

Składnia INSERT INTO... VALUES...

Jest to podstawowe polecenie DML służące do dodawania nowych wierszy (rekordów) do tabeli.

Wstawianie wartości dla wszystkich kolumn

Istnieje skrócona składnia, która pozwala na wstawienie danych bez wymieniania nazw kolumn:

INSERT INTO Uczniowie VALUES (101, 'Jan', 'Nowak', '3A', 3.75);

Zła praktyka: Ta składnia jest niebezpieczna i krucha. Wymaga podania wartości dla każdej kolumny w tabeli, w dokładnie tej kolejności, w jakiej zostały zdefiniowane w strukturze tabeli (CREATE TABLE). Jeśli ktoś zmieni strukturę tabeli (np. doda kolumnę DrugieImie między Imie a Nazwisko), to zapytanie natychmiast się zepsuje lub (co gorsza) wstawi błędne dane do złych kolumn (np. 'Nowak' do kolumny DrugieImie).

Wstawianie wartości dla wybranych kolumn

To jest jedyna słuszna, bezpieczna i profesjonalna metoda wstawiania danych. Polega ona na jawnym wymienieniu kolumn, do których wstawiamy dane.

Składnia:

INSERT INTO [nazwa_tabeli] ([kolumna1], [kolumna2],...) VALUES ([wartość1], [wartość2],...);

Przykład:

INSERT INTO Uczniowie (ID_Ucznia, Imie, Nazwisko, Srednia) VALUES (102, 'Anna', 'Kowalska', 4.5);

Zalety tego podejścia:

  • Czytelność: Od razu widać, która wartość trafia do której kolumny.
  • Elastyczność: Kolejność kolumn w liście INSERT nie ma znaczenia (o ile pasuje do kolejności w VALUES).
  • Obsługa NULL / wartości domyślnych: Można pominąć kolumny, które akceptują NULL lub mają zdefiniowaną wartość domyślną (np. DataUtworzenia).
  • Odporność na zmiany: Zapytanie jest odporne na zmiany w strukturze tabeli (o ile nie usuniemy lub nie zmienimy kolumn, których jawnie użyliśmy).

Fragment lekcji dotyczącej INSERT INTO (Lekcja 17) pochodzi z dostarczonych materiałów edukacyjnych