w poprzednim artykule stworzyliśmy dwie tabele, a teraz jesteśmy gotowi użyć polecenia SQL INSERT INTO TABLE i wypełnić te tabele danymi. W tym celu przygotujemy instrukcje w programie Excel, a następnie wkleimy te instrukcje do SQL Server i wykonamy je. Sprawdzimy również zawartość obu tabel przed i po tych poleceniach za pomocą instrukcji SELECT. Więc zacznijmy.
polecenie Wstaw do tabeli
nie ma sensu tworzyć struktur bazy danych i nie mieć żadnych danych w bazie danych. Instrukcja INSERT INTO TABLE jest tą, której użyjemy do rozwiązania tego problemu. Jest to jedna z czterech ważnych instrukcji SQL DML (Data Manipulation Language) SELECT … FROM, INSERT INTO TABLE, UPDATE … SET I DELETE FROM… pełna składnia jest dość złożona, ponieważ INSERT INTO może być również bardzo złożoną instrukcją. Proszę spojrzeć na składnię T-SQL INSERT INTO TABLE complete tutaj.
w tym artykule użyjemy uproszczonej, ale również najczęstszej składni:
INSERT INTO table_name (column_list) VALUES (column_values);
w takiej instrukcji INSERT INTO musisz zdefiniować table_name, do którego wstawiasz dane, wyświetlić listę wszystkich kolumn (może użyjesz wszystkich, ale może tylko kilku z nich), a następnie wyświetlić listę wszystkich wartości. Zauważ, że wartości kolumn powinny odpowiadać definicji typów kolumn (np. nie można wstawić wartości tekstowej do kolumny/atrybutu numerycznego).
w przypadku wstawiania wszystkich wartości w tabeli, nie musisz wyświetlać wszystkich kolumn po nazwie tabeli i możesz użyć jeszcze bardziej uproszczonej składni:
INSERT INTO table_name VALUES (column_values);
osobiście wolę wyświetlanie wszystkich nazw kolumn, ponieważ takie podejście zadziała nawet jeśli dodamy nowe kolumny do istniejącej tabeli.
-
Notatka: polecenie INSERT INTO TABLE można zapisać w taki sposób, że wstawiamy wiele wierszy z 1 instrukcją lub nawet w połączeniu z instrukcją SELECT.
uproszczona składnia dla jednego z takich przypadków, w których instrukcje INSERT i SELECT są połączone, jest podana poniżej:
INSERT INTO destination_table (column_list, …)
SELECT column_list
FROM source_table
WHERE condition;
INSERT INTO table example
zanim cokolwiek zrobimy, sprawdźmy, co jest zapisane w naszych tabelach. Jest to model, który stworzyliśmy w poprzednim artykule. Widać, że mamy jedną tabelę, w której będziemy przechowywać dane dotyczące krajów i inną dla danych dotyczących miast. Są one również ze sobą powiązane, ale porozmawiamy o tym w poniższym artykule:
aby sprawdzić zawartość tych dwóch tabel, użyjemy dwóch prostych instrukcji SELECT:
1
2
|
SELECT * FROM country;
SELECT * FROM city;
|
chociaż SELECT nie jest tematem tego artykułu, należy wspomnieć, że jego podstawową składnią jest:
SELECT 1 lub więcej atrybutów z tabeli;
gwiazda (*) po SELECT oznacza, że chcemy pokazać wartości wszystkich atrybutów/kolumn z tej tabeli w wyniku zapytania.
zgodnie z oczekiwaniami, w tych dwóch tabelach nic nie ma, a SQL Server zwraca wynik, jak pokazano na poniższym obrazku. Polecenia zwracają nazwy kolumn z tabel, których użyliśmy w zapytaniu SELECT, ale pod tymi nazwami kolumn nic nie ma. Możesz spojrzeć na to jako na pusty arkusz Excela z zdefiniowanymi nazwami kolumn (nagłówkami). Wiesz, jaki rodzaj danych powinien tam być, ale nie ma nic:
musimy to zmienić.
najpierw wypełnimy tabelę kraju za pomocą następujących instrukcji INSERT INTO TABLE:
1
2
3
4
5
|
INSERT INTO Country (country_name, country_name_eng, country_code) VALUES (’Deutschland’, 'Germany’, 'DEU’);
INSERT INTO Country (country_name, country_name_eng, country_code) VALUES (’Srbija’, 'Serbia’, 'SRB’);
INSERT INTO country (country_name, country_name_eng, country_code) values („Hrvatska”, „Croatia”, „HRV”);
INSERT INTO Country (country_name, country_name_eng, country_code) VALUES (’United Stated of America’, 'United Stated of America’, 'USA’);
INSERT INTO Country (country_name, country_name_eng, country_code) VALUES (’Polska’, 'Polska’, 'POL’);
|
udało się wprowadzić dane dla pięciu krajów. Wynik pokazano na poniższym obrazku. Ponieważ mieliśmy 5 instrukcji INSERT INTO TABLE, mamy 1 Wiadomość” (1 wiersz dotknięty) „dla każdego z tych pięciu poleceń w sekcji „Wiadomości”:
należy pamiętać, że wszystkie wartości (po wartościach) zostały uporządkowane w taki sam sposób, w jaki podaliśmy kolumny (po wstawieniu do kraju). Wszystkie trzy wartości są tekstami. Zapytanie zadziała, nawet jeśli nie zamówiliśmy ich we właściwy sposób, ponieważ wszystkie mają ten sam typ danych (tekst), ale dane będą przechowywane w niewłaściwych kolumnach. W takim przypadku mielibyśmy błąd semantyczny.
Zrobimy to za pomocą następujących instrukcji:
1
2
3
4
5
6
|
INSERT INTO City (city_name, lat, long, country_id) VALUES (’Berlin’, 52.520008, 13.404954, 1);
INSERT INTO City (city_name, lat, long, country_id) VALUES (”, 44.787197, 20.457273, 2);
INSERT INTO City (city_name, lat, long, country_id) VALUES (”, 45.815399, 15.966568, 3);
INSERT INTO City (city_name, lat, long, country_id) VALUES (’Nowy Jork’, 40.73061, -73.935242,4) ;
INSERT INTO City (city_name, lat, long, country_id) VALUES (’Los Angeles’, 34.052235, -118.243683, 4);
INSERT INTO City (city_name, lat, long, country_id) VALUES (’Warszawa’, 52.237049, 21.017532, 5);
|
po wykonaniu tych poleceń był to wynik. Zgodnie z oczekiwaniami Dodano 6 wierszy. I jeszcze raz mamy 1 wiadomość dla każdej wstawki w sekcji Wiadomości:
w tym przypadku mielibyśmy problem, gdybyśmy nie podali wartości w ten sam sposób, podalibyśmy kolumny, ponieważ ich typy danych nie są takie same (są w kolejności: text, decimal number, decimal number, integer). Ten typ błędu nazywany jest błędem składni, a sam DBMS uniemożliwiłby w ogóle uruchomienie zapytania.
SELECT-sprawdź co zostało wstawione
teraz jeszcze raz sprawdzimy co jest zapisane w naszych tabelach. Użyjemy tych samych dwóch instrukcji SELECT, których wcześniej użyliśmy:
1
2
|
SELECT * FROM country;
SELECT * FROM city;
|
wynik pokazano na poniższym obrazku. Proszę zauważyć, że po wykonaniu zapytań mamy teraz sekcje wyniki i wiadomości w zapytaniach:
możemy stwierdzić, że obie tabele w naszej bazie danych zawierają dane i teraz jesteśmy gotowi „zagrać” z czymś o wiele fajniejszym niż to.
wstaw do tabeli za pomocą programu Excel
w wielu przypadkach musisz uruchomić wiele instrukcji SQL na podstawie dostarczonego zestawu danych. Dotyczy to nie tylko instrukcji INSERT INTO TABLE, ale także instrukcji UPDATE I DELETE. Nie ma sensu ręcznie wpisywać tych instrukcji, ale powinieneś raczej zastosować mądrzejsze podejście-przygotować formuły (lub skrypt), które zautomatyzują tę część. W takich sytuacjach wolę używać Excela i formuł.
Uwaga: Osobiście, w kontekście baz danych, uważam, że Excel jest bardzo przydatny, gdy muszę utworzyć wiele instrukcji, a także podczas prezentacji wyników i / lub tworzenia pulpitów nawigacyjnych.
spójrzmy na te formuły:
wzór użyty do wstawienia pierwszego kraju (Niemcy) to:
1
|
=”INSERT INTO Country (country_name, country_name_eng, country_code) VALUES ('”& B2 & „’, '” & C2 & „’, '” & D2 &”’);”
|
wzór użyty do wstawienia pierwszego miasta (Berlin) to:
1
|
=”wstaw do wartości city (city_name, lat, long, country_id) ('”& B2 & „’, ” & C2 & „, ” & D2 & „, ” & E2 & „);”
|
możesz używać tych formuł do automatyzacji zadań. Podobne podejście zastosujemy później, gdy uruchamiamy wiele instrukcji UPDATE I DELETE (a nawet podczas tworzenia instrukcji SELECT).
podsumowanie
w tym artykule omówiliśmy jedną z czterech najważniejszych instrukcji SQL –instrukcję INSERT INTO TABLE. Użyliśmy go do wypełnienia tabel utworzonych w poprzednim artykule. Było to warunkiem wstępnym przejścia do bardziej inteligentnych rzeczy, takich jak teoria baz danych, a co ważniejsze, zwracanie wyników z naszej bazy danych.
w nadchodzącym artykule omówimy klucz podstawowy – co to jest i dlaczego jest ważny w bazach danych.
spis treści
dowiedz się SQL: Utwórz bazę danych & Utwórz operacje na tabelach
dowiedz się SQL: wstaw do tabeli
dowiedz się SQL: klucz podstawowy
dowiedz się SQL: klucz obcy
dowiedz się sql: polecenie select
dowiedz się sql: wewnętrzne połączenie vs lewe połączenie
dowiedz się SQL: skrypty SQL
dowiedz się sql: rodzaje relacji
dowiedz się SQL: Dołącz do wielu tabel
dowiedz się SQL: Funkcje zbiorcze
dowiedz się SQL: Jak napisać złożone zapytanie SELECT
dowiedz się SQL: baza danych INFORMATION_SCHEMA
dowiedz się SQL: typy danych SQL
dowiedz się sql: funkcje zdefiniowane przez użytkownika
dowiedz się SQL: procedury składowane zdefiniowane przez użytkownika
dowiedz się SQL: widoki SQL
dowiedz się SQL: wyzwalacze SQL
dowiedz się SQL: Przykłady zapytań SQL
dowiedz się SQL: Utwórz raport ręcznie za pomocą zapytań SQL
dowiedz się SQL: Funkcje daty i czasu SQL Server
dowiedz się SQL: tworzenie raportów SQL Server za pomocą funkcji daty i czasu
dowiedz się SQL: Tabele przestawne SQL Server
dowiedz się SQL: SQL Server eksport do Excela
dowiedz się sql: wprowadzenie do pętli SQL Server
dowiedz się sql: kursory SQL Server
dowiedz się SQL: najlepsze praktyki SQL dotyczące usuwania i aktualizacji danych
dowiedz się sql: Zadania związane z SQL
dowiedz się SQL: nie Equi łączy w SQL Server
dowiedz się SQL: SQL Injection
dowiedz się SQL: dynamiczny SQL
- Autor
- Ostatnie posty
jego dotychczasowe i obecne zadania różnią się od projektowania baz danych i kodowania po nauczanie, doradztwo i pisanie o bazach danych. Również nie zapomnij, BI, tworzenie algorytmów, szachy, Filatelistyka, 2 psy, 2 Koty, 1 żona, 1 dziecko…
znajdziesz go na LinkedIn
Zobacz wszystkie posty, których autorem jest Emil Drkusic
- dowiedz się SQL: dynamiczny SQL-3 marca 2021 r
- dowiedz się SQL: SQL Injection-2 listopada 2020 r
- dowiedz się SQL: Non-Equi dołącza do SQL Server-wrzesień 29, 2020