wtorek,
Wstawianie rekordów
Struktura tabeli
Wstawianie rekordu
W zapytaniu INSERT określamy nazwę tabeli i pola gdzie zostaną wstawione dane (names(nid,fname,lname)). W przypadku pól oznaczonych atrybutem auto_increment (autonumerowanie) lub mających inną zdefiniowaną wartość domyślną, nie musimy uwzględniać ich w zapytaniu INSERT, ponieważ zostaną wypełnione automatycznie. W pierwszym przykładzie jawnie wstawiono wartość pola nid, aby zademonstrować, że jest to możliwe. W przypadku pola auto_increment nie musi to być kolejna liczba, ważne jest jedynie, żeby przyjęta wartość nie występowała już w tabeli (w takim przypadku zapytanie wygeneruje błąd).
W części zapytania zawierającej właściwe dane (VALUES(105,'John','Smith')) istotne jest zachowanie kolejności pól zdefiniowanej w pierwszym fregmencie (names(nid,fname,lname)). Łańcuchy znaków umieszcza się w apostrofach, jeśli apostrofy nadmiarowo zastosujemy do wartości numerycznych, baza danych skonwertuje pole do właściwego typu. W przypadku danych będących wynikiem obliczeń lub zwracanych przez funkcję, zastosowanie apostrofów spowoduje potraktowanie instrukcji jako łańcuch znaków, np. w przypadku pola typ tekstowego wyrażenie '2+2' zostanie zapisane dosłownie jako "2+2".
Zapytanie z drugiego przykładu pomija pole autonumerowane, zdając się na mechanizm bazy danych. Równoważnym zapytaniem jest "INSERT INTO names(nid,fname,lname) VALUES(NULL,'John','Hudson')".
Wielokrotne wstawianie rekordu
W bazie danych MySQL jednym zapytaniem INSERT można wstawić kilka wierszy. Zestawy wstawianych danych oddziela się przecinkiem.
INSERT INTO SELECT
Odmianą zapytania INSERT jest konstrukcja INSERT INTO SELECT. Wstawiane dane są wynikiem zapytania SELECT. W przykładzie jest to dokładnie jeden rekord, jednak po zmianie warunku (np. nid < 10) może być ich więcej. Dane pobrane zapytaniem SELECT można wstawiać także do innej tabeli, pod warunkiem, że jej struktura na to pozwoli.