Lekcje modułu (1/4)
Wstawianie danych: INSERT
Jak dotąd czytałeś dane. Czas coś napisać. KODEF0 jest polecenie dodające nowe wiersze do tabeli.
Podstawowa składnia
INSERT INTO tabella (col1, col2, …)
VALUES (val1, val2, …);Przykład w naszym zbiorze danych:
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Marco', 'Bianchi', 'marco.bianchi@example.com', 'Verona', 'Italia', '2025-07-15');Nazywanie kolumn jest zalecaną praktyką: tworzy zapytanie
odporny na przyszłe zmiany schematu (np. nowa opcjonalna kolumna phone
niczego nie psuje) i samodokumentowanie.
WSTAWIENIE wielowierszowe
Pojedyncza instrukcja, wiele wierszy — znacznie szybciej niż N oddzielnych INSERT:
INSERT INTO categories (name, parent_id) VALUES
('Gaming', 1),
('Smart Home', 1),
('Cucina vegana', 8);POWRÓT: odczyt wartości, które właśnie wpisałeś
Klauzula charakterystyczna dla PostgreSQL: RETURNING zwraca wiersze, które
właśnie powstały. Niezwykle przydatny do odzyskiwania automatycznie wygenerowanego id:
INSERT INTO categories (name, parent_id)
VALUES ('Gaming', 1)
RETURNING id, name;Dane wyjściowe to jednowierszowa tabela z id (przypisanym przez SERIAL) i
KODEF2.
Co się stanie, jeśli brakuje kolumny
Jeśli pominiesz kolumnę w INSERT:
- jeśli jest to
NOT NULLbez DEFAULT → błąd; - jeśli posiada
DEFAULT(w tymSERIALdla identyfikatora) → który jest używany; - jeśli zaakceptuje
NULL→ staje sięNULL.
-- Va bene: id è SERIAL (auto), country ha NOT NULL ma forniamo tutti i campi
INSERT INTO customers (first_name, last_name, email, city, country, signed_up_on)
VALUES ('Olivia', 'Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');
-- Errore: first_name è NOT NULL e non è fornito
INSERT INTO customers (last_name, email, city, country, signed_up_on)
VALUES ('Marini', 'olivia.marini@example.com', 'Bari', 'Italia', '2025-07-20');Twoja kolej
Wstaw do tabeli klientów nowego klienta o imieniu „Marco”, nazwisku „Bianchi”, adresie e-mail „marco.bianchi@example.com”, mieście „Werona”, kraju „Italia” i podpisie_w dniu „2025-07-15”. Jawnie nazwij wszystkie kolumny.
Pokaż wskazówkę
Kolejność wartości w VALUES musi odpowiadać kolejności nazwanych kolumn.
Rozwiązanie dostępne po 3 próbach
Przejrzyj ćwiczenie
Wstaw nową kategorię „Gry” jako element podrzędny „Elettronica” (id = 1). Użyj klauzuli RETURNING, aby zwrócić identyfikator i nazwę nowo utworzonej kategorii.
Pokaż wskazówkę
RETURNING akceptuje listę kolumn (lub „*”) dokładnie tak, jak SELECT.
Rozwiązanie dostępne po 3 próbach