Jak się posługiwać jednym z podstawowych zapytań SQL? Bądź jak Pani ze zdjęcia i stań się Squadron Leader (SQL).
Wstawiamy jeden wiersz do tabeli
Instrukcja INSERT służy do dodawania danych do tabeli. Polecenie INSERT INTO wstawia jeden lub wiele wierszy do tabeli MySQL. W zależności od liczby wierszy, które chcesz dodać, składnia nieco się różni.
Podczas wstawiania pojedynczego wiersza do tabeli MySQL składnia jest następująca:
INSERT INTO table_name(column_1,column_2,column_3)
VALUES (value_1,value_2,value_3);
W zapytaniu INSERT INTO należy podać następujące informacje:
- table_name: tabela MySQL, do której chcesz dodać nowy wiersz
- (column_1,column_2,column_3): lista kolumn, które będą zawierać nowy wiersz; kolumny są oddzielone przecinkiem w nawiasach okrągłych
- [li] (value_1,value_2,value_3) [/li]: lista wartości oddzielonych przecinkiem w nawiasach okrągłych, które będą używane w każdej odpowiedniej kolumnie
Liczba kolumn i wartości musi być taka sama inaczej zapytanie nie wykona się.
Wstawiamy kilka wierszy
Podczas wstawiania wielu wierszy do tabeli MySQL składnia jest następująca:
INSERT INTO table_name (column_1, column_2, column_3, ...)
VALUES
(value_list_1),
(value_list_2),
...
(value_list_n);
W tym miejscu należy wprowadzić następujące informacje:
- table_name: tabela, do której chcesz wstawić dane
- column_1, column_2, column_3: lista kolumn do przechowywania danych; kolumny są oddzielone przecinkiem w nawiasach okrągłych
- value_list_1 / 2 /.../ n: lista wartości do wstawienia w jednym wierszu; wartości są oddzielone przecinkiem w nawiasach okrągłych a liczba wartości na każdej liście musi odpowiadać liczbie kolumn określonej w (column_1, column_2, column_3, ...)
Ponadto wiersze są oddzielone przecinkami w klauzuli VALUES.
Przykłady zapytań INSERT
Przyjrzyjmy się kilku przykładom użycia instrukcji MySQL INSERT podczas wykonywania zadań związanych z danymi. Załóżmy, że mamy trzy tabele: Customers, Products, i [i]Smartphones.
Tego polecenia można użyć, gdy konieczne jest dodanie wartości i kolumn dla określonych wierszy. Na przykład dodaj dane tylko dla kolumn FirstName i LastName w tabeli Customers:
INSERT INTO Customers(ID, FirstName, LastName)
VALUES ('1', 'User', 'Test');
Tego polecenia można użyć w celu dodania wartości do wszystkich kolumn. Na przykład dodaj wartości do tabeli Products. Pamiętaj, że kolejność wartości powinna odpowiadać kolejności kolumn w tabeli.
INSERT INTO Products
VALUES ('01', 'iPhoneX', 'Apple', 35000, 3);
Tego polecenia można użyć, gdy dla kolumny określono wartość domyślną. Na przykład domyślna wartość kolumny ProductCount w tabeli Products jest równa 0. Aby wstawić wartość domyślną, wykonaj jedno z następujących zapytań:
INSERT INTO Products(ProductName, Manufacturer, Price, ProductCount)
VALUES ('Nokia 9', 'HD Global', '41000', DEFAULT);
INSERT INTO Products (ProductName, Manufacturer, Price, ProductCount)
VALUES ('Nokia 9', 'HD Global', '41000', NULL);
Aby wstawić wartości do kolumn, możemy użyć klauzuli SET zamiast klauzuli VALUES.
INSERT INTO Customers SET ID=2, FirstName='User2';
Użycie klauzuli SELECT w instrukcji MySQL INSERT INTO umożliwia wstawianie wierszy wygenerowanych przez instrukcję SELECT do docelowej tabeli MySQL:
INSERT INTO Products SELECT * FROM Smartphones;
W tym przypadku instrukcja INSERT INTO kopiuje wiersze pobrane za pomocą instrukcji SELECT z tabeli Smartphones i wstawia je do tabeli Products.
Jeśli chcesz pobrać określone wiersze na podstawie warunku, zastosuj opcje filtrowania w klauzuli WHERE. Pamiętaj, że struktura obu tabel powinna być zgodna; w przeciwnym razie zapytanie się nie uda:
INSERT INTO Products SELECT * FROM Smartphones WHERE Price=34000;
To polecenie dodaje do wartości tabeli Products wartości z tabeli Smartphones, gdzie cena jest równa 34000.
Sprawdź oferty pracy na TeamQuest
Możesz także skopiować i wstawić określone kolumny z innej tabeli. Jednak w tym przypadku upewnij się, że w tabeli docelowej nie ma rekordu o określonej nazwie; w przeciwnym razie zapytanie nie powiedzie się i wystąpi błąd.
Ignorowanie błędów
W przypadku wystąpienia błędów lub nieoczekiwanego zachowania podczas wstawiania wierszy do tabeli MySQL, wykonywanie instrukcji jest przerywane. Wiersze z prawidłowymi i nieprawidłowymi wartościami nie są dodawane do tabeli. Na przykład wykonaj następujące zapytanie:
INSERT INTO Products VALUES ('01', 'iPhoneX', 'Apple', 35000, 3);
To zapytanie zwróci błąd jeżeli rekord o tym identyfikatorze już istnieje. To teraz zmodyfikuj instrukcję za pomocą IGNORE. Umożliwia wstawianie wierszy z prawidłowymi wartościami, ale pomija wiersze z nieprawidłowymi wartościami:
INSERT IGNORE INTO Products VALUES ('01', 'iPhoneX', 'Apple', 35000, 3);
W rezultacie skrypt został wykonany bez błędów. MySQL powiadomi Cię, że wiersze zostały dodane do tabeli.