Database
 sql >> Base de Dados >  >> RDS >> Database

SQL INSERT para iniciantes


Este artigo contém SQL básico INSERT instruções que iniciantes podem usar para inserir dados em suas tabelas de banco de dados.

Sintaxe básica


A sintaxe básica para inserir dados no SQL é assim:
INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);

Onde:
  • TableName é o nome da tabela na qual você deseja inserir dados
  • Column1 , etc são os nomes das colunas nas quais você deseja inserir dados
  • Value1 , etc são os valores que você está inserindo nessas colunas. A ordem desses valores deve corresponder à ordem em que você listou as colunas (ou seja, Value1 vai para Column1 , etc).

Você pode omitir os nomes das colunas se estiver inserindo valores em todas as colunas. Nesse caso, você pode usar a seguinte sintaxe:
INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);

Observe que alguns SGBDs usam uma sintaxe mais complexa do que essa (ou seja, eles oferecem mais opções), mas geralmente essa é a sintaxe básica necessária para inserir dados em uma tabela.

Inserir em todas as colunas


Aqui está um exemplo básico que insere dados em todas as colunas da tabela:
INSERT INTO PetTypes
VALUES( 1, 'Bird' );

Neste caso, existem duas colunas no PetTypes table e estamos inserindo valores em ambas as colunas, portanto, não precisamos especificar os nomes das colunas.

A declaração acima é o mesmo que fazer isso:
INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );

Podemos verificar nossos dados executando um SELECT demonstração.
SELECT * FROM PetTypes;

Resultado:
+-------------+-----------+
| PetTypeId   | PetType   |
|-------------+-----------|
| 1           | Bird      |
+-------------+-----------+

Inserir em algumas colunas


Aqui está um exemplo básico que insere dados em apenas algumas das colunas da tabela:
INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );

Esta tabela tem na verdade quatro colunas, mas só inserimos dados em três dessas colunas. Podemos ver que quando executamos um SELECT declaração contra a tabela depois de inserir os dados.
SELECT * FROM Users;

Resultado:
+----------+-------------+------------+-----------------------------+
| UserId   | FirstName   | LastName   | DateInserted                |
|----------+-------------+------------+-----------------------------|
| 1        | Lansell     | Letterman  | 2020-11-21 05:18:50.0029455 |
+----------+-------------+------------+-----------------------------+

Como inserir valores na ordem errada


O método de lista de colunas permite inserir dados que não estão na mesma ordem:
INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );

Neste exemplo, reorganizei a ordem das colunas e seus respectivos valores. Felizmente, a lista de colunas fornece ao SGBD orientação sobre onde cada valor deve ser inserido.

Então agora, se selecionarmos nossos dados, veremos que eles foram inseridos nas colunas corretas.
SELECT * FROM Users;

Resultado:
+----------+-------------+------------+-----------------------------+
| UserId   | FirstName   | LastName   | DateInserted                |
|----------+-------------+------------+-----------------------------|
| 1        | Lansell     | Letterman  | 2020-11-21 05:18:50.0029455 |
| 2        | Bart        | Pitt       | 2020-11-21 05:30:07.4456867 |
+----------+-------------+------------+-----------------------------+

Inserir o resultado de uma consulta


Também é possível inserir o conjunto de resultados de uma consulta em uma tabela. Existem algumas abordagens que você pode adotar com isso.
  • Use INSERT INTO... SELECT demonstração. Nesse caso, você precisa criar a tabela primeiro, antes de inserir um conjunto de resultados de consulta nela.
  • Use a instrução CREATE TABLE … AS SELECT. Esse método cria automaticamente uma nova tabela com base no conjunto de resultados da consulta e insere esses resultados na tabela. Embora esse método esteja em conformidade com o padrão SQL, ele não é suportado por todos os DBMSs.
  • Use o SELECT INTO demonstração. Isso é semelhante à opção anterior. Ele cria automaticamente uma nova tabela com base no conjunto de resultados da consulta e, em seguida, insere esses resultados na tabela. Se o método anterior (CREATE TABLE ... AS SELECT ) não é compatível com seu DBMS, tente este método.