MySQL – INSERT INTO – Inserir Dados em Tabelas – 11

Inserir Dados nas tabelas no MySQL – comando INSERT INTO

Uma das operações mais importantes em um banco de dados é a inserção de registros (dados). Fazemos isso com o uso do comando INSERT INTO.

Sintaxe padrão:

INSERT INTO nome_tabela (coluna1, coluna2,...)
VALUES (valor1, valor2,...);

De acordo com a sintaxe apresentada, devemos especificar a tabela e quais colunas dessa tabela receberão os dados, e em seguida, logo após a palavra-chave VALUES, especificamos os dados em si – na mesma ordem em que as colunas foram especificadas.

Caso haja uma coluna com auto incremento, ela não deve ser incluída na lista de colunas do comando, pois seus dados serão gerados e inseridos automaticamente pelo MySQL quando um novo registro for adicionado.

Exemplos no banco de dados db_biblioteca:

Vamos inserir dados de quatro editoras na tabela tbl_editoras:

INSERT INTO tbl_editoras (Nome_Editora) VALUES ('Prentice Hall');
INSERT INTO tbl_editoras (Nome_Editora) VALUES ('O´Reilly');
INSERT INTO tbl_editoras (Nome_Editora) VALUES ('Microsoft Press');
INSERT INTO tbl_editoras (Nome_Editora) VALUES ('Wiley');
INSERT INTO tbl_editoras (Nome_Editora) VALUES ('McGraw-Hill Education');

Agora, vamos inserir dados na tabela de autores. No exemplo anterior executamos o comando INSERT INTO quatro vezes. mas é possível executá-lo apenas uma vez e inserir múltiplos registros, como mostra o código abaixo, que irá inserir 12 autores de uma vez na tabela tbl_autores:

INSERT INTO tbl_autores
VALUES
(1, 'Daniel', 'Barret'),
(2, 'Gerald', 'Carter'),
(3, 'Mark', 'Sobell'),
(4, 'William', 'Stanek'),
(5, 'Richard', 'Blum'),
(6, 'Jostein', 'Gaarder'),
(7, 'Umberto', 'Eco'),
(8, 'Neil', 'De Grasse Tyson'),
(9, 'Stephen', 'Hawking'),
(10, 'Stephen', 'Jay Gould'),
(11, 'Charles', 'Darwin'),
(12, 'Alan', 'Turing'),
(13, 'Simon', 'Monk'),
(14, 'Paul', 'Scherz');

Note que nesse caso, como inserimos dados em todas as colunas da tabela, e na mesma ordem em que elas foram criadas, não foi necessário especificar essas colunas no comando.

Vamos inserir dados na tabela de categorias:

INSERT INTO tbl_categorias
VALUES
(1, 'Tecnologia'),
(2, 'História'),
(3, 'Literatura'),
(4, 'Astronomia'),
(5, 'Botânica');

Agora, para finalizar, vamos inserir dados na tabela de livros (tbl_livro):

INSERT INTO tbl_Livro (Nome_Livro, ISBN13, ISBN10, Data_Pub, Preco_Livro, Categoria, ID_Autor, ID_Editora)
VALUES
('Linux Command Line and Shell Scripting','9781118983843', '111898384X', '20150109', 68.35, 1, 5, 4),
('SSH, the Secure Shell','9780596008956', '0596008953', '20050517', 58.30, 1, 1, 2),
('Using Samba','9780596002565', '0596002564', '20031221', 61.45, 1, 2, 2),
('Fedora and Red Hat Linux', '9780133477436', '0133477436', '20140110', 62.24, 1, 3, 1),
('Windows Server 2012 Inside Out','9780735666313', '0735666318', '20130125', 66.80, 1, 4, 3),
('Microsoft Exchange Server 2010','9780735640610', '0735640610', '20101201', 45.30, 1, 4, 3),
('Practical Electronics for Inventors', '9781259587542', '1259587541', '20160324', 67.80, 1, 13, 5);

Neste último exemplo, uma das colunas não recebeu dados inseridos pelo comando (ID_livro é auto-incrementado), então especificamos as colunas que receberiam dados.

Testando a inserção de dados

Agora vamos executar os comandos abaixo (consultas simples com SELECT) para verificar se os registros foram inseridos corretamente em cada tabela no MySQL:

SELECT * FROM tbl_autores;
SELECT * FROM tbl_editoras;
SELECT * FROM tbl_livro;

Veja o resultado da inserção de dados na tabela de livros, verificado com o comando executado acima:

Comando insert MySQL - inserir dados no banco de dados

Assista a um vídeo explicativo sobre a inserção de registros no MySQL:

 

Sobre Fábio dos Reis (1194 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

6 Comentários em MySQL – INSERT INTO – Inserir Dados em Tabelas – 11

  1. Renan Elias // 18/05/2016 em 11:57 // Responder

    O site esta direcionando para /redes-computadores/curso-de-rede-par-trancado-parte-1/ quando devia esta indo para /mysql/mysql-select-realizar-consultas-simples-em-tabelas-12/ que seria a sequência correta.

  2. Sonny martins // 26/05/2016 em 7:23 // Responder

    Grande aulas gostei recordar pessoal. QUERO MATERIAL POR FAVOR.

  3. Bom dia amigo. Tenho uma dúvida e se possivel gostaria da ajuda do mestre do Excel\Access. Eu estou usando o comando INSERT INTO desse jeito:

    SQL = “INSERT INTO cadastro(Nome, Endereço, Telefone)”
    SQL = SQL & ” VALUES (”
    SQL = SQL & ” ‘” & Me.txtNome.Value & “‘”
    SQL = SQL & “, ‘” & Me.txtApelido.Value & “‘”
    SQL = SQL & “, ‘” & Me.txtEndereco.Value & “‘”
    SQL = SQL & ” )”

    Até aí tudo bem, funciona perfeitamente mas se possível eu gostaria de usar assim:

    SQL = “INSERT INTO cadastro”
    SQL = SQL & ” VALUES (”
    SQL = SQL & ” ‘” & Me.txtNome.Value & “‘”
    SQL = SQL & “, ‘” & Me.txtApelido.Value & “‘”
    SQL = SQL & “, ‘” & Me.txtEndereco.Value & “‘”
    SQL = SQL & ” )”
    Conforme vc fez no exemplo CADASTRO AUTORES
    Eu já vi na internet algumas instruções que dizem que assim tambem funciona mas eu não consegui fazer funcionar, o que estou fazendo de errado?
    Antes fique se indagando pq eu quero complicar a guerra, eu explico: eu tenho diversos formularios que vão criar tabela com mais de 50 colunas, se eu tiver que escrever o nome de cada coluna, vou levar muito tempo fazendo isso.

    Queria usar um comando tipo o SELECT, SQL = “SELECT * FROM cadastro”.

    O mestre tem alguma ideia?
    Estou usando o Office 2013 32Bits.

  4. Marcel Guedes // 16/05/2021 em 16:58 // Responder

    Boa tarde Fábio !! Sou estudando de Sistemas para Internet e estamos vendo agora comandos do MySql !! Gostaria de saber se tem como inserir registros em duas tabelas ao mesmo tempo ?? Obrigado pelo seus conhecimentos compartilhados !! Que Deus te abençoe sempre !!

  5. Alex Wilson Krutzfeldt // 25/04/2022 em 9:50 // Responder

    Olá Fábio.
    Estou com problema com Trigger no MariaDB, quero criar uma Trigger de log que toda vez que for alterado uma coluna de uma tabela, ela grave em uma tabela de log uma chave, tipo(alteração ou Deleção) , nome da tabela, campo, dado alterado e dado novo.
    Eu criei essa trigger mas não esta funcionando!!!
    DELIMITER //
    create trigger TBU_sam_dados2
    before update on sam_dados
    for each row
    BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE x, o, n VARCHAR(50) ;
    DECLARE cur1 CURSOR FOR SELECT COLUMN_NAME
    FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ‘cohab’ AND TABLE_NAME = ‘sam_dados’;
    DECLARE cur2 CURSOR FOR SELECT concat(‘old.’, COLUMN_NAME)
    FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ‘cohab’ AND TABLE_NAME = ‘sam_dados’;
    DECLARE cur3 CURSOR FOR SELECT concat(‘new.’, COLUMN_NAME)
    FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ‘cohab’ AND TABLE_NAME = ‘sam_dados’;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    OPEN cur1;
    OPEN cur2;
    OPEN cur3;
    read_loop: LOOP
    FETCH cur1 INTO x ;
    FETCH cur2 INTO o ;
    FETCH cur3 INTO n ;
    IF done THEN
    LEAVE read_loop;
    END IF;

    SET @o := o ;
    SET @n := n ;

    if @o != @n then
    Insert into logs.sam_logs(cod, tipooperacao, tabela, campo, alterado, alteracao, data, hora, login)
    values( old.cpf, ‘U’, ‘sam_dados’,x , @o , @n, sysdate(),curtime() ,user());
    end if;

    END LOOP;
    CLOSE cur1;
    CLOSE cur2;
    CLOSE cur3;
    END; //
    DELIMITER ;

    Deste de já agradeço muito pela sua atenção

    Alex Wilson Krutzfeldt.
    alexkrutzfeldt@gmail.com
    Fone : (19) 99109-4156

Escreva um comentário

Seu e-mail não será divulgado


*