O que é INSERT INTO?
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 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` (coluna_1, coluna_2,…) VALORES (valor_1, valor_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 email |
---|---|---|---|---|---|---|
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 | PO 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', 'Masculino', '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', 'PO 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 | 07/12/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 | PO 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.
CRIAR TABELA `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` categorias`;
Executar o 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 `categorias_arquivo` (categoria_id, categoria_nome, comentários) SELECT category_id, categoria_name, comentários FROM` categorias`;
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 de história acient |
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 connectionif (!$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".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
Resumo
- O comando INSERT é usado para adicionar novos dados a 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.