MySQL Consulta INSERT INTO: Como adicionar linha na tabela (exemplo)
⚡ Resumo Inteligente
MySQL A consulta INSERT INTO adiciona novas linhas a uma tabela, seja especificando explicitamente as colunas de destino ou fornecendo um valor para cada coluna. O uso correto das aspas em strings, números e datas determina se os dados armazenados serão preservados intactos.

O que é INSERIR EM?
INSERT INTO É utilizado para armazenar dados em tabelas. O comando INSERT cria uma nova linha na tabela para armazenar dados. Os dados geralmente são fornecidos por programas de aplicação que são executados sobre o banco de dados.
Sintaxe básica
Vejamos a sintaxe básica do INSERT INTO MySQL comando:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
AQUI
- INSERT INTO `table_name` é o comando que informa MySQL servidor para adicionar uma nova linha em uma tabela chamada `table_name.`
- (coluna_1,coluna_2,…) especifica as colunas a serem atualizadas no novo MySQL linha
- VALUES (valor_1, valor_2,…) especifica os valores a serem adicionados à nova linha
Ao fornecer os valores dos dados a serem inseridos na nova tabela, deve-se considerar o seguinte:
- Tipos de dados de string – todos os valores de string devem ser colocados entre aspas simples.
- Tipos de dados numéricos – todos os valores numéricos devem ser fornecidos diretamente, sem serem delimitados por aspas simples ou duplas.
- Tipos de dados de data – coloque os valores de data entre aspas simples no formato 'AAAA-MM-DD'.
Inserindo várias linhas de uma só vez
Uma única instrução INSERT pode conter várias linhas. Separe cada conjunto de valores com uma vírgula. Uma única instrução é mais rápida do que várias, porque o índice é atualizado apenas uma vez.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL Exemplo de consulta INSERT INTO
Suponha que temos a seguinte lista de novos membros da biblioteca que precisam ser adicionados ao banco de dados.
| Nomes completos | Data de nascimento | gênero | Endereço físico | endereço postal | Número de contato | |
|---|---|---|---|---|---|---|
| Leonardo Hofstadter | Masculino | crista de madeira | 0845738767 | |||
| Sheldon Cooper | Masculino | crista de madeira | 0976736763 | |||
| Rajesh Koothrappali | Masculino | crista de madeira | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Masculino | crista de madeira | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | Masculino | Parque Sul | Caixa postal 4563 | 0987786553 | lwolowitz@email.me |
Vamos INSERIR os dados uma linha por vez, começando com Leonard Hofstadter. Trataremos o número de contato como um tipo de dado numérico e não o colocaremos entre aspas simples.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
A execução do script acima remove o 0 do número de contato de Leonard, porque o valor é tratado como numérico e um zero à esquerda não é significativo.
Para evitar esses problemas, o valor deve ser colocado entre aspas simples, como mostrado abaixo.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Dica: Armazene números de telefone, códigos postais e identificadores semelhantes em uma coluna de texto, como VARCHAR. Colunas numéricas não podem conter um zero à esquerda.
Alterar a ordem das colunas
Alterar a ordem das colunas não afeta a consulta INSERT em MySQL, desde que os valores corretos tenham sido mapeados para as colunas corretas. A consulta abaixo demonstra esse ponto.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
As consultas acima ignoraram a coluna da data de nascimento. Por padrão, MySQL Insere valores NULL em colunas que foram omitidas da consulta INSERT.
Vamos agora inserir o registro de Leslie, que contém a data de nascimento. O valor da data deve estar entre aspas simples, no formato 'AAAA-MM-DD'.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Omitir a lista de colunas
Todas as consultas acima nomearam as colunas e as mapearam para valores. Se fornecermos valores para TODAS as colunas da tabela, a lista de colunas poderá ser omitida da consulta. MySQL inserir consulta.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Vamos agora usar o Instrução SELECT Para visualizar todas as linhas da tabela de membros.
SELECT * FROM `members`;
| número de membro | nomes completos | gênero | data de nascimento | endereço físico | endereço postal | número_de contato | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Feminino | 21-07-1980 | Lote da Primeira Rua nº 4 | Mala Privada | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janete Smith Jones | Feminino | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Masculino | 12-07-1989 | Rua 3 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Feminino | 14-02-1984 | Rua 2 23 | NULL | NULL | NULL |
| 5 | Leonardo Hofstadter | Masculino | NULL | crista de madeira | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Masculino | NULL | crista de madeira | NULL | 0976736763 | NULL |
| 7 | Rajesh Koothrappali | Masculino | NULL | crista de madeira | NULL | 0938867763 | NULL |
| 8 | Leslie Winkle | Masculino | 14-02-1984 | crista de madeira | NULL | 0987636553 | NULL |
| 9 | Howard Wolowitz | Masculino | 24-08-1981 | Parque Sul | Caixa postal 4563 | 0987786553 | lwolowitz@email.me |
Observe que o número de contato de Leonard Hofstadter perdeu o zero inicial, exatamente como previsto. Os números citados mantêm o zero.
Inserindo em uma tabela de outra tabela
O comando INSERT também pode ser usado para inserir dados de outra tabela em uma tabela. A sintaxe básica é mostrada abaixo.
INSERT INTO table_1 SELECT * FROM table_2;
Agora vamos criar uma tabela fictícia para categorias de filmes, chamada categories_archive. O script abaixo cria a tabela.
CREATE TABLE `categories_archive` ( `category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Execute o script acima para criar a tabela. Agora, vamos inserir todas as linhas da tabela de categorias na tabela de arquivo de categorias.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Para que esse script funcione, as estruturas das tabelas precisam ser idênticas. Um script mais robusto mapeia os nomes das colunas na tabela de destino para os nomes das colunas na tabela que contém os dados, como mostrado abaixo.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
A execução da consulta SELECT abaixo produz os seguintes resultados.
SELECT * FROM `categories_archive`;
| Categoria ID | category_name | observações |
|---|---|---|
| 1 | Comédia | Filmes com humor |
| 2 | Ensaio Romântico | Histórias de amor |
| 3 | Épico | Filmes antigos de história |
| 4 | Horror | NULL |
| 5 | Ficção científica | NULL |
| 6 | Suspense | NULL |
| 7 | Ação | NULL |
| 8 | Comédia romântica | NULL |
| 9 | Cartoons | NULL |
| 10 | Cartoons | NULL |
Exemplo de PHP: Inserir em MySQL mesa
A função mysqli_query é usada para executar SQL consultas do PHP. Executa instruções Insert, Select, Update e Delete, e possui a seguinte sintaxe.
mysqli_query($db_handle,$query);
AQUI,
- “mysqli_query(…)” é a função que executa as consultas SQL.
- “$query” é a consulta SQL a ser executada.
- “$db_handle” é o link de conexão do servidor retornado por mysqli_connect.
Exemplo
$servername = "localhost"; $username = "alex"; $password = "yPXuPT"; $dbname = "afmznf"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "INSERT INTO addkeyworddata(link, keyword) VALUES ('https://www.guru99.com/','1000')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully" . '<br>'; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }
