Ten artykuł zawiera podstawowe informacje o języku SQL INSERT
oświadczenia, których początkujący mogą używać do wstawiania danych do swoich tabel bazy danych.
Podstawowa składnia
Podstawowa składnia do wstawiania danych w SQL wygląda następująco:
INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);
Gdzie:
TableName
to nazwa tabeli, do której chcesz wstawić daneColumn1
itp. to nazwy kolumn, do których chcesz wstawić daneValue1
itd. to wartości, które wstawiasz do tych kolumn. Kolejność tych wartości musi odpowiadać kolejności podanej w kolumnach (tj.Value1
przechodzi doColumn1
itp.).
Możesz pominąć nazwy kolumn, jeśli wstawiasz wartości do wszystkich kolumn. W takim przypadku możesz użyć następującej składni:
INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);
Zauważ, że niektóre DBMS używają bardziej złożonej składni niż ta (tj. oferują więcej opcji), ale jest to generalnie podstawowa składnia wymagana do wstawiania danych do tabeli.
Wstaw do wszystkich kolumn
Oto podstawowy przykład, który wstawia dane do wszystkich kolumn w tabeli:
INSERT INTO PetTypes
VALUES( 1, 'Bird' );
W tym przypadku w PetTypes
znajdują się dwie kolumny tabeli i wstawiamy wartości do obu kolumn, dlatego nie musimy określać nazw kolumn.
Powyższe stwierdzenie jest tym samym, co robienie tego:
INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );
Możemy sprawdzić nasze dane, uruchamiając SELECT
oświadczenie.
SELECT * FROM PetTypes;
Wynik:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | +-------------+-----------+
Wstaw do niektórych kolumn
Oto podstawowy przykład, który wstawia dane tylko do niektórych kolumn w tabeli:
INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );
Ta tabela w rzeczywistości ma cztery kolumny, ale wstawiamy dane tylko do trzech z tych kolumn. Widzimy to, gdy uruchamiamy SELECT
oświadczenie względem tabeli po wstawieniu danych.
SELECT * FROM Users;
Wynik:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | +----------+-------------+------------+-----------------------------+
Jak wstawić wartości w złej kolejności
Metoda listy kolumn umożliwia wstawianie danych, które nie są w tej samej kolejności:
INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );
W tym przykładzie zmieniłem kolejność kolumn i ich odpowiednie wartości. Na szczęście lista kolumn dostarcza DBMS-owi wskazówki, gdzie należy wstawić każdą wartość.
Więc teraz, jeśli wybierzemy nasze dane, zobaczymy, że zostały one wstawione do właściwych kolumn.
SELECT * FROM Users;
Wynik:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | | 2 | Bart | Pitt | 2020-11-21 05:30:07.4456867 | +----------+-------------+------------+-----------------------------+
Wstaw wynik zapytania
Możliwe jest również wstawienie zestawu wyników zapytania do tabeli. Istnieje kilka podejść do tego.
- Użyj
INSERT INTO... SELECT
oświadczenie. W takim przypadku musisz najpierw utworzyć tabelę, zanim wstawisz do niej zestaw wyników zapytania. - Użyj instrukcji CREATE TABLE … AS SELECT. Ta metoda automatycznie tworzy nową tabelę na podstawie zestawu wyników zapytania, a następnie wstawia te wyniki do tabeli. Chociaż ta metoda jest zgodna ze standardem SQL, nie jest obsługiwana przez wszystkie DBMS.
- Użyj
SELECT INTO
oświadczenie. Jest to podobne do poprzedniej opcji. Automatycznie tworzy nową tabelę na podstawie zestawu wyników zapytania, a następnie wstawia te wyniki do tabeli. Jeśli poprzednia metoda (CREATE TABLE ... AS SELECT
) nie jest obsługiwany przez Twój DBMS, wypróbuj tę metodę.