MySQL Consulta 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 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 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 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 Caixa postal 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 afeta a consulta INSERT em 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, 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 no MySQL inserir instruรงรฃo. Se estivermos fornecendo valores para TODAS as colunas da tabela, podemos omitir as colunas do MySQL inserir consulta.

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 Caixa postal 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`

fornece os seguintes resultados mostrados abaixo.

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.

A funรงรฃo SQL inserir na tabela pode ser usada para executar os seguintes tipos de consulta:

  • inserรงรฃo
  • Selecionar
  • Atualizar
  • delete

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

Resuma esta postagem com: