Informacje o nowych artykułach oraz akcjach edukacyjnych prosto na Twojej skrzynce e-mail!

Wstawianie danych do tabel w SQL

Jedną z podstawowych funkcji SQL’a jest wstawianie nowych danych do wcześniej utworzonych tabel w bazie danych. Prawdę mówiąc, jest to jedna z fundamentalnych możliwości oferowanych przez SQL. Czym była by baza danych, do której nie można było by nic zapisać?

W SQL do zapisywania nowych informacji w wybranej wcześniej tabeli używamy polecenia INSERT ... INTO ... VALUES .... Przyjrzyjmy się jego ogólnej składni:

INSERT INTO nazwaTabeli (kolumna1, kolumna2, itd) VALUES (wartosc1, wartosc2, itd);

lub:

INSERT INTO nazwaTabeli VALUES (wartosc);

W poprzednim artykule (dotyczącym tworzenia tabel w SQL) pokazałem jak stworzyć tabelę (nazwa: tab1) przechowującą ID, Imię oraz Nazwisko. Prezentuje się ona tak:

IDImieNazwisko

Oczywiście tabela ta nie zawiera, żadnych danych (jest pusta).

Przy napisaniu zapytania SQL wstawiającego nowe dane zakładamy, że nie została zdefiniowana auto inkrementacja klucza podstawowego (kolumna ID) oraz przyjmujemy, że kolumna ID nie może być pusta (NOT NULL). Przykładowe zdanie SQL wstawiające nowy wiersz będzie wyglądało więc tak:

INSERT INTO tab1 (ID, Imie, Nazwisko) VALUES ('1', 'Jan', 'Kowalski');

Efekt:

IDImieNazwisko
1JanKowalski

Możemy oczywiście zrezygnować na przykład z podania imienia:

INSERT INTO tab1 (ID, Nazwisko) VALUES ('2', 'Nowak');

Efekt:

IDImieNazwisko
1JanKowalski
2NullNowak

Istnieje również możliwość jawnego wstawienia wartości NULL:

INSERT INTO tab1 (ID, Imie, Nazwisko) VALUES ('3', NULL, 'Szczypczyk');

Efekt:

IDImieNazwisko
1JanKowalski
2NullNowak
3NullSzczypczyk

Wartości domyślne (Default)

Kolumna tabeli może mieć zadeklarowaną domyślną wartość czyli taką, która zostanie zapisana w przypadku nie podania innej. Tak więc, jeżeli w naszej kwerendzie zapomnielibyśmy podania na przykład imienia, w kolumnie imie mogło by się pojawić przykładowo słowo „anonim”.

Informację na temat wartości domyślnej dodajemy do danej kolumny za pomocą słowa kluczowego DEFAULT:

MsSQL:

ALTER TABLE tab1
ALTER COLUMN imie SET DEFAULT 'anonim';

MySQL:

ALTER TABLE tab1
ALTER Imie SET DEFAULT 'anonim';

Teraz kiedy dla kolumny Imie nie podamy żadnej wartości domyślnie zostanie wstawione słowo „anonim”.

Można to oczywiście zrobić jawnie:

INSERT INTO tab1 (ID, Imie) VALUES ('4', DEFAULT);

Efekt:

IDImieNazwisko
1JanKowalski
2NullNowak
3NullSzczypczyk
4anonimNull

Wstawianie wielu wierszy na raz

Do tej pory wykorzystaliśmy instrukcję INSERT INTO do wstawiania tylko jedno wiersza za jednym razem. Jest to trochę uciążliwy zabieg, gdy do zapisania mamy kilka danych. Oczywiście jak to zwykle bywa projektanci SQL’a pomyśleli również o tym.

Przykład wstawiania dwóch wierszy na raz:

INSERT INTO tab1 (ID, Imie, Nazwisko) VALUES
('5', 'Michał', 'Jakubiak'),
('6', 'Mikołaj', 'Roznerski');

Efekt:

IDImieNazwisko
1JanKowalski
2NullNowak
3NullSzczypczyk
4anonimNull
5MichałJakubiak
6MikołajRoznerski

Wstawianie danych z innej tabeli

W SQL można również wstawić dane bezpośrednio z innej tabeli. Wykonujemy to nieco modyfikując zapytanie SELECT:

SELECT * INTO tabelaDoKtorejWstawiamyDane
FROM tabelaZktorejPobieramyDane;

Spodobało się?

Jeśli tak, to zarejestruj się do newslettera aby otrzymywać informacje nowych artykułach oraz akcjach edukacyjnych. Gwarantuję 100% satysfakcji i żadnego spamowania!

, , , , , , , , ,

Dodaj komentarz

Komentarze (4)

  • Korzystasz tylko z MySQL?
    Planujesz wrócić do pisania o SQL?

    • lukas124 pisze:

      Na dniach będę startował z serią o Javie, potem planuję kolejne materiały na temat trochę innego zagadnienia, a dalszych planów nie mam. Możliwe, że wrócę do tematyki baz danych ale czy konkretnie do SQL to zobaczymy.

      • Super!
        Masz już jakiś plan na serię Javy? Będziesz opisywał sam język czy frameworki np. Hibernate, Spring?

      • lukas124 pisze:

        Artykuły już są w zasadzie gotowe. Będzie to cykl wpisów poruszający zagadnienia wymagane do zaliczenia egzaminu certyfikacyjnego OCAJP I. W skrócie opis tego jak zachowuje się Java w różnych „niestandardowych” sytuacjach.

Odpowiedz

Twój adres e-mail nie zostanie opublikowany.

Pin It on Pinterest