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 dadosColumn1, etc são os nomes das colunas nas quais você deseja inserir dadosValue1, 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,Value1vai paraColumn1, 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... SELECTdemonstraçã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 INTOdemonstraçã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.