Consulta INSERT INTO do MySQL: como adicionar linha na tabela (exemplo)

O que é INSERT INTO?

INSIRA DENTRO DE é usado para armazenar dados nas tabelas.O comando INSERT cria uma nova linha na tabela para armazenar dados.Os dados geralmente são fornecidos por programas de aplicativos executados na parte superior do banco de dados.

Sintaxe básica

Vejamos a sintaxe básica do comando INSERT INTO MySQL:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

AQUI

  • INSERT INTO `nome_tabela` é o comando que diz ao servidor MySQL para adicionar uma nova linha em uma tabela chamada` nome_tabela`
  • (column_1, column_2, ...) especifica as colunas a serem atualizadas na nova linha do MySQL
  • VALUES (value_1, value_2, ...) especifica os valores a serem adicionados na nova linha

Ao fornecer os valores dos dados a serem inseridos na nova tabela, o seguinte deve ser considerado:

  • 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 colocá-los entre aspas simples ou duplas.
  • Tipos de dados de data - coloque os valores de data entre aspas simples no formato 'AAAA-MM-DD'.

Exemplo:

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 sexual Endereço físico endereço postal Número de contato Endereço de e-mail
Leonard Hofstadter Masculino Woodcrest 0845738767
Sheldon Cooper Masculino Woodcrest 0976736763
Rajesh Koothrappali Masculino Fairview 0938867763
Leslie Winkle 14/02/1984 Masculino 0987636553
Howard Wolowitz 24/08/1981 Masculino Parque Sul P.O. Box 4563 0987786553 Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.

Vamos INSERIR os dados um por um. Começaremos 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);

Executar o script acima elimina o 0 do número de contato de Leonard. Isso ocorre porque o valor será tratado como um valor numérico e o zero (0) no início é descartado, pois não é significativo.

Para evitar tais problemas, o valor deve ser colocado entre aspas simples, conforme mostrado abaixo -

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763'); 

No caso acima, zero (0) não será descartado

Alterar a ordem das colunas não tem efeito na consulta INSERT no MySQL, desde que os valores corretos tenham sido mapeados para as colunas corretas.

A consulta mostrada abaixo demonstra o ponto acima.

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, o MySQL irá inserir valores NULL nas colunas que são omitidas na consulta INSERT.

Vamos agora inserir o registro de Leslie, que tem a data de nascimento fornecida. O valor da data deve ser colocado entre aspas simples, usando o 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'); 

Todas as consultas acima especificaram as colunas e as mapearam para valores na instrução insert do MySQL. Se estivermos fornecendo valores para TODAS as colunas da tabela, podemos omitir as colunas da consulta de inserção do MySQL.

Exemplo: -

INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24',  
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');

Vamos agora usar a instrução SELECT para visualizar todas as linhas na tabela do membro.

SELECT * FROM `members`; 
número de membro nomes completos Gênero sexual data de nascimento endereço físico endereço postal contct_ number o email
1 Janet Jones Fêmea 21/07/1980 Terreno da primeira rua nº 4 Mala Privada 0759 253 542 Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
2 Janet Smith Jones Fêmea 23/06/1980 Melrose 123 NULO NULO Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
3 Robert Phil Masculino 12/07/1989 3rd Street 34 NULO 12345 Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.
4 Gloria Williams Fêmea 14/02/1984 2nd Street 23 NULO NULO NULO
5 Leonard Hofstadter Masculino NULO Woodcrest NULO 845738767 NULO
6 Sheldon Cooper Masculino NULO Woodcrest NULO 976736763 NULO
7 Rajesh Koothrappali Masculino NULO Woodcrest NULO 938867763 NULO
8 Leslie Winkle Masculino 14/02/1984 Woodcrest NULO 987636553 NULO
9 Howard Wolowitz Masculino 24/08/1981 Parque Sul P.O. Box 4563 987786553 Este endereço de e-mail está protegido contra spambots. Você deve habilitar o JavaScript para visualizá-lo.

Observe que o número de contato de Leonard Hofstadter retirou o zero (0) do número de contato. Os outros números de contato não diminuíram o zero (0) no início.

Inserindo em uma mesa de outra mesa

O comando INSERT também pode ser usado para inserir dados em uma tabela de outra tabela. A sintaxe básica é mostrada abaixo.

INSERT INTO table_1 SELECT * FROM table_2; 

Vejamos agora um exemplo prático. Criaremos uma tabela fictícia para categorias de filmes para fins de demonstração. Chamaremos a nova tabela de categorias de categorias_arquivo. O script mostrado 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. O script mostrado abaixo nos ajuda a conseguir isso.

INSERT INTO `categories_archive` SELECT * FROM `categories`; 

Executar o script acima insere todas as linhas da tabela de categorias na tabela de arquivo de categorias. Observe que as estruturas da tabela terão que ser as mesmas para que o script funcione. Um script mais robusto é aquele que mapeia os nomes das colunas na tabela de inserção para aqueles na tabela que contém os dados.

A consulta mostrada abaixo demonstra seu uso.

INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;

Executando a consulta SELECT

SELECT * FROM `categories_archive`

fornece os seguintes resultados mostrados abaixo.

Categoria ID Nome da Categoria observações
1 Comédia Filmes com humor
2 Romântico Histórias de amor
3 Épico Filmes acient de história
4 Horror NULO
5 Ficção científica NULO
6 Filme de ação NULO
7 Açao NULO
8 Comédia romântica NULO
9 Desenhos animados NULO
10 Desenhos animados NULO

Exemplo de PHP: inserir na tabela MySQL

A função mysqli_query é usada para executar consultas SQL.

A função pode ser usada para executar os seguintes tipos de consulta;

  • Inserir
  • Selecione
  • Atualizar
  • excluir

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

'$ link_identifier' é opcional, pode ser usado para passar o link de conexão do servidor

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.on2vhf.be/','1000')'; if (mysqli_query($conn, $sql)) { echo 'New record created successfully'.'  
'; } else { echo 'Error: ' . $sql. '
' . mysqli_error($conn); } }

Resumo

  • O comando INSERT é usado para adicionar novos dados em uma tabela. O MySql adicionará uma nova linha, uma vez que o comando seja executado.
  • Os valores de data e string devem ser colocados entre aspas simples.
  • Os valores numéricos não precisam ser colocados entre aspas.
  • O comando INSERT também pode ser usado para inserir dados de uma tabela em outra.