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

O que é INSERIR EM?

INSERT INTO é 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 aplicativos executados no 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 `table_name` é o comando que diz ao servidor MySQL para adicionar uma nova linha em uma tabela chamada `table_name.`
  • (coluna_1,coluna_2,…) especifica as colunas a serem atualizadas na nova linha do MySQL
  • 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, o seguintewing 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 o seguintewing 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 Email
Leonardo Hofstadter Masculino crista de madeira 0845738767
Sheldon Cooper Masculino crista de madeira 0976736763
Rajesh Koothrappali Masculino Fairview 0938867763
Leslie Winkle 14/02/1984 Masculino 0987636553
Howard Wolowitz 24/08/1981 Masculino South Park PO Box 4563 0987786553 lwolowitz@email.me

Vamos INSERIR os dados um por um. Começaremos com Leonard Hofstadter. Trataremos o número de contato como um tipo de dados numérico e não colocaremos o número 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 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 será eliminado, 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 em colunas 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 de inserção 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 o Instrução SELECT para visualizar todas as linhas na tabela do membro.

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 email
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 PO Box 4563 0987786553 lwolowitz@email.me

Observe que o número de contato de Leonard Hofstadter eliminou o zero (0) do número de contato. Os demais números de contato não descartaram o zero (0) no início.

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;

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_archive. 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.

Vamos agora 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`;

A execução do script acima insere todas as linhas da tabela de categorias na tabela de arquivo de categorias. Observe que as estruturas da tabela deverão 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`

dá o seguintewing resultados mostrados abaixo.

Categoria ID category_name observações
1 Comédia Filmes com humor
2 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çao Social NULL
8 Comédia romântica NULL
9 Cartoons NULL
10 Cartoons NULL

Exemplo PHP: Inserir na tabela MySQL

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

A função SQL inserir na tabela pode ser usada para executar o seguintewing tipos de consulta:

  • inserção
  • Selecionar
  • Atualizar
  • excluir

Tem o seguintewing 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.guru99.com/','1000')";
		if (mysqli_query($conn, $sql)) {
			echo "New record created successfully".'<br>';
		} else {
		echo "Error: " . $sql. "<br>" . mysqli_error($conn);
	}
}

Resumo

  • O comando INSERT é usado para adicionar novos dados em uma tabela. O MySql adicionará uma nova linha assim que o comando for 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.