Introdução à inserção no MySQL
O principal objetivo de um sistema de banco de dados é armazenar dados em tabelas. Para definir a funcionalidade no banco de dados, temos diferentes tipos de comandos SQL. Neste tópico, vamos aprender sobre Inserir no MySQL.
Os comandos SQL podem ser categorizados da seguinte maneira:
- DDL (linguagem de definição de dados)
- DML (linguagem de manipulação de dados)
- DQL (linguagem de consulta de dados)
- DCL (linguagem de controle de dados)
- TCL (linguagem de controle de transações)
Aqui neste artigo, vamos nos concentrar principalmente no DML. Como podemos ver o nome da linguagem Data Manipulation, assim que a tabela / banco de dados é criada, para manipular algo, exigimos comandos DML. O mérito de usar esses comandos é que, se ocorrer alguma alteração errada, podemos reverter / desfazer.
A seguir estão os comandos no DML:
1. INSERT: Usado para inserir novas linhas na tabela.
INSERT into employee
Values(101, 'abcd');
2. EXCLUIR: Usado para excluir a única linha ou registros inteiros em uma tabela.
DELETE TABLE employee;
3. UPDATE: Usado para atualizar registros existentes em uma tabela.
UPDATE employee
SET col1 = new_col
WHERE condition;
Sintaxe do comando Insert no MySQL
Podemos escrever a instrução INSERT INTO das duas maneiras a seguir.
Caminho # 1
INSERT INTO table_name
VALUES (value1, value2, ….);
Caminho # 2
INSERT INTO table_name (column1, column2, …….)
VALUES (value1, value2, ….);
- INSERT INTO nome_tabela é o comando que adiciona uma nova linha a uma tabela chamada `nome_tabela` no banco de dados MySQL.
- (coluna_1, coluna_2, …) são os nomes das colunas nas quais um novo registro será adicionado.
- VALUES (valor_1, valor_2, …) especifica os valores a serem adicionados à nova linha.
Ao adicionar novos registros, precisamos ter cuidado com os tipos de dados definidos ao criar a estrutura da tabela.
- String: todos os valores de string devem ser colocados entre aspas simples.
- Numérico: os valores numéricos não devem ser colocados entre aspas simples ou duplas.
- Data: esses tipos de dados devem estar entre aspas simples com o formato 'AAAA-MM-DD'.
Vamos considerar que existe uma tabela 'employee' composta pelos seguintes atributos:
Emp_id | Emp_name | telefone | O email | Departamento | Gerente | Cidade |
1001 | Vinay | 9876543219 | CSR | Sudhir | Bangalore | |
1002 | Raaj | 9764527848 | ISTO | Stephen | Hyderabad | |
1003 | Sakti | 9567382784 | Automotivo | Ved | Bhubaneswar |
Se estivermos adicionando valores para todas as colunas de uma tabela, não precisamos especificar os nomes das colunas na consulta, mas precisamos garantir que nosso novo registro siga a sequência da coluna, conforme definido na tabela.
INSERT INTO employee
VALUES (1004, 'Ravi', 9856478398, ' ', 'marketing', 'shiv', 'kolkata');
Se não tivermos todos os valores das colunas e inseriremos alguns deles, precisaremos especificar os nomes das colunas na consulta.
INSERT INTO employee (emp_id, emp_name, phone, email, manager)
VALUES (1005, 'sam', 9856478398, ' ', 'shivankar');
Implementação do comando Insert no MySQL
Vamos considerar que temos as seguintes listas de novos registros que são necessários para adicionar à tabela do banco de dados STUDENT.
Núm. da lista | Primeiro nome | Último nome | Padrão | telefone | Percentagem | Cidade |
1 1 | Sandeep | Kumar | 10 | 9876456726 | 89, 33 | Cuttack |
2 | Shyam | 9 | 76 | Bhubaneswar | ||
3 | Sakti | Naik | 6463765776 | 76 | ||
4 | Sid | 8 | 9864876986 | Kolkata | ||
5 | Vinay | Kumar | 10 | 92 |
Vamos inserir essas linhas uma a uma no banco de dados.
- Vamos começar com Sandeep. Aqui 'Roll_no', 'Standard', 'Phone' e 'Percentage' são campos numéricos, portanto, os valores nesta coluna serão inseridos sem aspas.
INSERT INTO student
VALUES (1, 'Sandeep', 'Kumar', 10, 9876456726, 89.33, 'Cuttack');
Nota: Como temos valores de todas as colunas da tabela do aluno, não precisamos especificar o nome da coluna enquanto estiver usando o comando INSERT. Mas temos que garantir que nosso valor siga a ordem das colunas na tabela.
- No caso do registro Shyam, podemos ver muitos valores ausentes. Então, aqui precisamos especificar os nomes das colunas, nas quais queremos inserir os valores.
INSERT INTO student (Roll_no, First_name, Standard, Percentage, City)
VALUES (2, 'Shyam', 9, 76, 'Bhubaneswar');
Nota: neste registro, não temos os valores de todas as colunas. É por isso que precisamos especificar todos os nomes de colunas nos quais queremos inserir nossos valores e, na ordem desses nomes de coluna, também temos que mencionar valores.
INSERT INTO student (Roll_no, First_name, Last_name, Phone, Percentage)
VALUES (3, 'Sakti', 'naik', 6463765776, 76);
INSERT INTO student (Roll_no, First_name, Standard, Phone, City)
VALUES (4, 'Sid', 8, 9864876986, 'Kolkata');
INSERT INTO student (Roll_no, First_name, Last_name, standard, Percentage)
VALUES (5, 'Vinay', 'Kumar', 10, 92);
Alterar a ordem das colunas e do valor não terá efeito na consulta INSERT, pois o valor certo não pode ser mapeado para a coluna direita. Assim, podem surgir problemas como inserir um valor numérico em uma string ou vice-versa.
Em todas as consultas acima, faltam muitos campos como Sobrenome, Telefone, Valores da cidade. Portanto, nesses casos, o MySQL inserirá, por padrão, valores NULL nas colunas que foram ignoradas nas consultas.
Inserindo em uma tabela de outra tabela
Se houver duas tabelas semelhantes e desejarmos inserir dados da tabela_1 na tabela_2 diretamente para evitar o trabalho manual, também podemos usar um tipo diferente de consulta INSERT. Nesse caso, temos que usar um comando SELECT com o comando INSERT. Basicamente, o comando SELECT vem sob o DQL (Data Query Language), que é usado para recuperação / busca de dados. O comando select também pode ser usado com muitos tipos de cláusulas.
A sintaxe básica para inserir registros em uma tabela de outra é a seguinte:
INSERT INTO table_1 SELECT * FROM table_2;
Exemplo
Vamos ver o exemplo dado abaixo:
1. Tabela de pedidos
Order_no | Order_department | Nome do cliente | Contact_no | Quantidade | Lugar, colocar |
8465637 | Mobília | Pedro | 8659876766 | 1000 | Délhi |
9473636 | Enfeites | Alex | 9863769898 | 800 | Mumbai |
2. Tabela de Order_archive
Order_no | Order_department | Nome do cliente | Contact_no | Quantidade | Lugar, colocar |
Aqui temos 2 tabelas denominadas Order e Order_archive. Se movermos todos os registros da tabela Order para Order_archive, o código a seguir poderá executar a tarefa:
INSERT INTO Order_archive SELECT * FROM Order;
Se quisermos mover algumas colunas específicas da tabela Order para Order_archive, então:
INSERT INTO Order_archive (Order_no, Order_department, Contact_no, Quantity)
SELECT Order_no, Order_department, Contact_no, Quantity FROM Order;
Conclusão
O comando Insert é muito útil, pois é reproduzido desde o momento da criação da tabela até sempre, sempre que adicionamos mais registros à tabela existente. Podemos resumir os seguintes pontos deste artigo:
- O comando INSERT é usado para adicionar novos dados à tabela.
- O valor da data e da string deve estar entre aspas simples.
- O valor numérico não deve estar entre aspas.
- Ao inserir registros em colunas específicas, o nome e o valor da coluna devem ser mapeados na mesma ordem.
- Este comando também pode ser usado para inserir registros de uma tabela para outra tabela.
Artigos recomendados
Este é um guia para inserir no MySQL. Aqui discutimos a implementação do comando Insert no MySQL, juntamente com exemplos e sintaxe apropriados. Você também pode consultar o seguinte artigo.
- O que é o esquema do MySQL?
- Funções String do MySQL
- O que é o MySQL?
- Como instalar o MySQL
- Exemplos para implementar o INSERT no Oracle