MYSQL

 

INSERÇÃO DE DADOS

 

O comando INSERT tem como função inserir alguma informação a respeito de determinada tabela, a fim de incrementar dados relacionados a ela, armazenando as informações. A respeito deste comando, existe algumas formas de representá-lo, pois caso você queira fazer múltiplas inserções consecutivamente, algumas facilitam sua vida.

 

O Comando INSERT tem como padrão a seguinte sintaxe:

 

INSERT INTO Tabela (atributos) VALUES (valores na ordem dos atributos);

 

O comando INSERT é flexível, com várias representações para diferentes necessidades. Inclui inserções únicas, definindo tabela e valores, e opções eficientes para inserir várias linhas de dados, economizando tempo e repetição.

 

Como exemplo, será tratado um banco de dados de uma loja que possui várias franquias pelo Brasil.

 
 

Com isso, para auxiliar no cadastro de novos cliente nas lojas, segue abaixo o script de criação de tabelas, para servir de apoio durante o aprendizado:

 
-- Script para criação das tabelas

CREATE DATABASE FranquiaLoja;
USE FranquiaLoja;

CREATE TABLE LOJA (
   idLoja INTEGER NOT NULL,
   nome VARCHAR(100) NOT NULL,
   CONSTRAINT LOJA_PK PRIMARY KEY(idLoja)
);

CREATE TABLE CLIENTE (
    idCliente INTEGER NOT NULL,
    idLoja INTEGER  NOT NULL,
    nome VARCHAR(100)  NOT NULL,
    cpf  NUMERIC(11) NOT NULL,
    rua VARCHAR(100) NOT NULL,
    cidade VARCHAR(100) NOT NULL,
    estado VARCHAR(2) NOT NULL,
    credito_limite DECIMAL(7,2) NOT NULL,
    CONSTRAINT CLIENTE_PK PRIMARY KEY(idCliente),
    CONSTRAINT CLIENTE_LOJA_FK FOREIGN KEY(idLoja) REFERENCES LOJA(idLoja)
);

Logo, existe um exemplo de duas formas básicas de inserção, uma para inserções atômicas e outra para inserções de várias tuplas em sequência.

 

Primeira forma:

 
-- Inserção das informações das lojas

INSERT INTO LOJA VALUES (1, 'Casas Bahia');
INSERT INTO LOJA VALUES (2, 'Ponto Frio');
INSERT INTO LOJA VALUES (3, 'Pao de acucar');
INSERT INTO LOJA VALUES (4, 'Extra');
INSERT INTO LOJA VALUES (5, 'Acai atacadista');

-- Inserção das informações dos clientes
 
INSERT INTO CLIENTE VALUES (1,1, 'Pedro Augusto da Rocha',
'48181884094', 'Rua Pedro Carlos Hoffman', 'Porto Alegre', 'RS', 700.00);
INSERT INTO CLIENTE VALUES (2,2, 'Antonio Carlos Mamel',
'50574326219', 'Av. Pinheiros', 'Belo Horizonte', 'MG', 3500.50);
INSERT INTO CLIENTE VALUES (3,3, 'Luiza Augusta Mhor', '59154535387',
'Rua Salto Grande', 'Niteroi', 'RJ', 4000.00);
INSERT INTO CLIENTE VALUES (4,4, 'Jane Ester', '69760415160',
'Av. 7 de setembro', 'Erechim', 'RS', 800.00);
INSERT INTO CLIENTE VALUES (5,5, 'Marcos Antonio dos Santos',
'73649809893', 'Av. Farrapos', 'Porto Alegre', 'RS', 4250.25);

Esta forma utiliza da inferência dos elementos da tabela, deixando implícito que a inserção está sendo feita na ordem que foi criado os atributos da tabela, porém, como trata apenas de comandos atômicos, tem-se a repetição dos comandos para cada inserção. Necessariamente as informações a serem inseridas têm que ser correspondentes ao que está pré-definido na tabela, pois caso a ordem dos dados da inserção seja feita de forma errada, pode ser retornado um erro invalidando os tipos inseridos ou até a inserção possa ser feita com sucesso, porém suas informações vão estar incorretas comparando com o desejado.

 

Segunda forma:

 
-- Segunda forma de inserção das informações das lojas

INSERT INTO LOJA VALUES
(1, 'Casas Bahia'), (2, 'Ponto Frio'), (3, 'Pao de acucar'),
(4, 'Extra'), (5, 'Acai atacadista');

-- Segunda forma de inserção das informações dos clientes

INSERT INTO CLIENTE VALUES
(1,1, 'Pedro Augusto da Rocha','48181884094', 'Rua Pedro Carlos Hoffman',
'Porto Alegre', 'RS', 700.00),
(2,2, 'Antonio Carlos Mamel','50574326219', 'Av. Pinheiros',
'Belo Horizonte', 'MG', 3500.50),
(3,3, 'Luiza Augusta Mhor', '59154535387','Rua Salto Grande',
'Niteroi', 'RJ', 4000.00),
(4,4, 'Jane Ester', '69760415160','Av. 7 de setembro',
'Erechim', 'RS', 800.00),
(5,5, 'Marcos Antonio dos Santos','73649809893', 'Av. Farrapos',
'Porto Alegre', 'RS', 4250.25);

Já, ao visualizar a segunda forma de inserção, percebe-se que foi utilizado o esquema de concatenação de comandos, atribuindo várias tuplas para somente uma inserção. Neste exemplo percebe-se também que é mostrado a ordenação a ser utilizada para a inserção das tuplas, podendo ser adaptada também para a implicidade deles.

 
 

Logo, seguindo o exemplo, após a escolha de algum dos métodos para realizar a inserção dos dados, a tabela CLIENTE será incrementada com todas as tuplas inclusas no comando. Agora, como ficaria o resultado final? Execute a linha de código a seguir:

 
SELECT * FROM CLIENTE;

Com isso, é possível obter o seguite resultado:

 
 

Atividade de Fixação

 

No intuito de fixar a aprendizagem iniciada por meio deste módulo e verificar como está sua compreensão sobre o mesmo, são sugeridos alguns exercícios de fixação para serem resolvidos. Clique no link de exercícios ao lado, pois será por meio dele iniciada a lista de exercícios sobre os conteúdos estudados até este momento. Boa revisão sobre os mesmos!!