Pesquisar no Programero

segunda-feira, 29 de dezembro de 2008

Usando o Oracle II

Olá a todos, peço primeiramente desculpas a todos pela ausência e principalmente pela demora na continuidade de alguns assuntos, como o Oracle, o fato é que em novembro meu tempo ficou meio apertado devido a assuntos profissionais (ainda bem, fechamos o ano com muito trabalho) e pessoais (reservei parte do meu tempo livre para estudar SQL e PL/SQL para o exame de certificação da Prometric que no dia 17/12/2008 o fiz e passei).
Desculpas a parte iremos retomar aqui a série “Usando o Oracle”, e no episódio de hoje mostraremos como manipular as informações (inserir, alterar, apagar e consultar).

 

SELECT

Com o SELECT realizamos a seleção das informações, devemos informar as informações desejadas, de onde elas serão buscadas e, se for o caso, restringir, agrupar ou ordenar o resultado.
Sintaxe:
SELECT coluna_01, coluna_02
FROM      tebla_x
WHERE  coluna_03 = 1;
O SELECT tem como objetivo, projeção (escolha das colunas de uma tabela), seleção (restringir os registros a serem retornados) e junção (reunir informações contidas em mais de uma tabela).
OBS.:
Pode ser utilizado o caracter coringa * no lugar do nome das colunas, com isso todas as colunas da tabela serão retornadas. Para casos onde existam valores repetidos pode-se eliminar os duplicados utilizando o DISTINCT logo após o SELECT.

 

 

INSERT

O INSERT é responsável por inserir dados nas tabelas, pode ser inserido um registro por vez ou vários quando utilizado uma consulta.
Sintaxe:
INSERT INTO tabela_x(coluna_01
                                         ,coluna_02
                                         ,coluna_03)
                          VALUES(1
                                          ,’ABC’
                                          ,3);
É recomendável que se coloque todas as colunas que receberão dados dentro da instrução, pois caso os nomes sejam suprimidos, se por algum motivo uma nova coluna for inserida na tabela o código INSERT deixará de funcionar até que o novo valor seja adicionado na cláusula VALUES.
OBS.:
Para casos onde se deseja inserir em uma tabela dados contidos em outra podemos fazer da seguinte maneira (lembrando que nesse caso a cláusula VALUES não é utilizada e deve-se sempre respeitar o tipo de dados e o número de colunas do INSERT e do SELECT):
INSERT INTO tabela_x
SELECT col_1, col_2, col_3
FROM     tab_y;

 

UPDATE

Para atualizar registros já existentes devemos utilizar o UPDATE.
Sintaxe:
UPDATE tabela_x
SET          coluna_02 = ‘NOVO_VALOR’
WHERE  coluna_01 = 1;
No exemplo utilizado para a sintaxe o que ocorre é o seguinte, a coluna_02 recebe o novo valor apenas para o registro que possua o valor 1 na coluna_01, se houverem mais de um registro nesta situação todos serão atualizados, do mesmo modo se a cláusula WHERE não for indicada todos os registros da tabela serão alterados.

 

DELETE

O DELETE é responsável por remover registros (todos ou um determinado número) de uma tabela.
Sintaxe:
DELETE FROM tabela_x
WHERE              coluna_01 = 1;
Lembrando que a exemplo do UPDATE, quando a cláusula WHERE não é fornecida todos os registros da tabela são apagados.

 

MERGE

Por fim falaremos do MERGE que possibilita atualizar ou inserir dados em uma tabela condicionalmente, onde sempre ocorre um UPDATE quando o registro existe e um INSERT caso seja um novo registro.
Sintaxe:
MERGE INTO tabela_x a
USING             tab_y       b
ON                   (a.coluna_01 = b.col_1)
WHEN MATCHED THEN
UPDATE SET
  a.coluna_02 = b.col_2
WHEN NOT MATCHED THEN
INSERT VALUES(b.col_1, b.col_2, b.col_3);
Como foi possível perceber as alterações irão ocorrer na tabela_x, quando existirem registros com o mesmo valor da condição ON ocorre a atualização, caso contrário ocorre a inserção.
Por enquanto é só, no próximo artigo falaremos de junções e agrupamento.

domingo, 28 de dezembro de 2008

Google “paga eu”

Quando nosso espaço começa a receber um numero razoável de visitas vislumbramos a possibilidade de juntar o útil ao agradável, porque não ganhar uma grana escrevendo algo que nos agrada e que certamente ajudara alguém. Pois é, na internet a publicidade come solta e no meu caso a primeira medida tomada na tentativa de rentabilizar o blog foi o adsense. Tudo muito simples, muito fácil e rápido até o momento de receber, sim amigos, estou com uma quantia parada já a algum tempo e ainda nada, ainda sou recebido pela boa e velha frase “Os seus pagamentos estão atualmente retidos. São necessárias algumas medidas para liberar o seu pagamento.” Ok, já perdi as contas de quantas vezes cliquei no maldito “mais detalhes” e a minha “Medida necessária” é sempre a mesma, o tal do PIN, não senhores eu não o inseri errado porque eu sequer recebi a tal correspondencia. Não resido em uma região inóspita ou desconhecida, haja visto que tenho recebido minhas correspondências normalmente, principalmente as faturas de todo mês, então que diabos de dificuldade é essa que o google tem em enviar uma carta para minha casa, a menos que eu esteja sofrendo de algum tipo de ilusão de ótica quando leio e releio, (e leio mais uma vez só pra ter certeza) não existe motivo para essa carta não ter vindo ainda (a possibilidade de meu carteiro ser um sabotador já foi descartada também). Então decidi escrever esse post e mais uma vez ir ate o adsense e reiterar para o google que ainda não recebi o danado do PIN. Bom, acho até que vou usar uma ferramenta do google para ajudá-los a encontrar minha casa, já que eles parecem estar ocupados (deduzo isso pois o ultimo contato do suporte em relação a isso ocorreu em setembro). Bom, o novo prazo de recebimento termina no primeiro dia do ano que vem (é claro que caso eu não receba nada vou aguardar ate o dia 3 mais ou menos, porque se o pessoal não conseguiu mandar a desgrama da carta até hoje, não vai ser de ressaca que o farão).
como_chegar(pessoal do google, se quiserem entregar pessoalmente ai esta a rota saindo da rodoviária)