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