Manipulating Data

Bem, até agora nesse blog, todos os posts praticamente eram apenas sobre SELECT. Nesse post iremos mudar um pouco. Vamos falar de outros comandos DML(Data Modeler Language). O DELETE, UPDATE e INSERT.

Vamos falar primeiro do INSERT. Com essa cláusula podemos inserir novas linhas na tabela que até agora só era possível visualizar através pelo SELECT. Podemos tanto inserir apenas uma linha como várias linhas ao mesmo tempo utilizando um SELECT como origem dos dados a serem inseridos. A sintaxe é bastante simples. Veja no exemplo abaixo a forma em que informamos as colunas.

INSERT

INSERT

Vejam que utilizamos as palavras reservadas INSERT INTO e o nome da tabela, depois especificamos quais colunas serão utilizadas no INSERT, logo depois utilizamos outra palavra reservada, VALUES, seguindo dos valores que seriam inseridos nas colunas que especificamos anteriormente seguindo a ordem especificada. Percebam que não utilizamos todas as colunas da tabela, apenas as que era NOT NULL para não gerar um erro de constraint no nosso INSERT. Não somos obrigados a especificar todas as colunas, apenas que queremos inserir valores, as colunas omitidas ficarão com valores NULL. A ordem também não é obrigatória ser a mesma da tabela, podemos especificar a ordem como desejarmos. Podemos omitir o nome das colunas que serão utilizadas caso seja inserido um valor para cada coluna, mas nesse caso temos que obedecer a ordem das colunas de acordo com a tabela em questão.

No exemplo acima vimos como inserir uma linha em uma certa tabela, mas e se quisermos inserir mais de uma linha por vez? Veja o exemplo abaixo.

INSERT COM SUBSELECT

INSERT COM SUBSELECT

Percebam que não especificamos os nomes das colunas que teriam os valores inseridos, conforme mencionamos antes, não precisamos especificar a coluna caso seja inserido um valor para cada coluna, que foi o que aconteceu, já que a tabela REGIONS só possui duas colunas. A outra mudança foi que não temos a palavra reservada VALUES. Isso ocorre toda vezes em que utilizamos um SELECT como fonte dos valores do INSERT para inserir mais de uma linha por vez. Podemos ver o resultado que foi dobrado o número de linhas da tabela regions, adicionamos mais 4 linhas então a tabela em questão.

Agora, vejamos como atualizar as linhas já existentes na tabela através do UPDATE. Vejam um exemplo abaixo.

UPDATE

UPDATE

Percebam que alteramos o salário do empregado que tinha código 200 para 100000. Caso tivéssemos esquecido da cláusula WHERE todos os funcionários teriam os seus salários alterados para 100000, e acredito que isso não seria o desejado. Podemos alterar quantas colunas quisermos, apenas separando elas por ‘,’.

Agora vamos para a nossa última cláusula desse post, que é a DELETE. Com ela podemos remover linhas das nossas tabelas. A sintaxe é bem simples. Vejam um exemplo:

DELETE FROM tabela
WHERE condicao;

Existe aqui algumas particularidades. A primeira é que a palavra FROM é opcional, podemos omitir ela. E a segunda é que se não colocarmos a cláusula WHERE todas as linhas da tabela mencionada serão apagadas, que talvez não seja o objetivo e tenha sido somente esquecimento. Apenas informando que se o DELETE não tiver nenhuma restrição poderá demorar muito até concluir e consumindo muito processamento do servidor. Caso realmente seja a intenção remover todas as linhas da tabela, seria muito melhor utilizar o TRUNCATE que remove todas as linhas quase que instantaneamente sem utilizar quase nenhum processamento. A sintaxe é muito simples, vejam:

TRUNCATE TABLE nome_da_tabela;

E por que essa enorme diferença entre os dois? Bem, isso vocês poderão verificar no site http://www.profissionaloracle.com.br no qual estou sendo articulista e criei um artigo para explicar isso que vocês poderão acessar no seguinte link: http://www.profissionaloracle.com.br/gpo/artigo/banco-de-dados/banco-oracle/28-oracle/501-diferencas-entre-truncate-e-select

Espero que tenham gostando. Até a próxima!

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Marcado com: , , , , , ,
Publicado em Sem categoria

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Esse Blog é reconhecido pela
Sou um
Certificações
Sou articulista

Clique para seguir este blog e receber notificações via email de novos posts.

Tércio Costa

Tércio Costa

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Links Pessoais

Serviços verificados

Visualizar Perfil Completo →

Total de Visualizações da Página
  • 150.890 Visualizações
%d blogueiros gostam disto: