Pular para o conteúdo principal

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.

Comentários

Mais visitadas

Iniciar e Parar Serviços do Windows (Delphi)

Em certas ocasiões nos deparamos com a necessidade de manipular determinadas atividades do SO, como iniciar ou parar um banco de dados, ou qualquer outro serviço que esteja funcionando no momento. Segue abaixo um código que encontrei na Internet para tal finalidade (não me recordo à fonte, assim que eu a encontrar colocarei). Iniciar Serviço: uses WinSvc; // // start service // // return TRUE if successful // // sMachine: //   machine name, ie: \SERVER //   empty = local machine // // sService //   service name, ie: Alerter // function ServiceStart(   sMachine,   sService : string ) : boolean; var   //   // service control   // manager handle   schm,   //   // service handle   schs   : SC_Handle;   //   // service status   ss     : TServiceStatus;   //   // te...

Alterar cores do PageControl (Delphi)

O padrão Windows todo cinza não é muito atraente, por isso quando nos utilizarmos do PageControl podemos alterar suas cores e fontes da seguinte maneira: Em primeiro lugar devemos alterar a propriedade OwnerDraw para TRUE ; Depois implementar seu método DrawTab da seguinte maneira: //pinta a fonte Control.Canvas.Font.Color:=clBlack; // // pinta a paleta / aba Control.Canvas.brush.Color:=clSkyBlue; PageControl1.Canvas.Rectangle(Rect); Control.Canvas.TextOut(Rect.left+5,Rect.top+3,PageControl1.Pages[tabindex].Caption); // pinta a parte interna (tabsheet) PageControl1.Pages[TabIndex].brush.Color := Control.Canvas.brush.Color; PageControl1.Pages[TabIndex].Repaint; Caso a intenção seja manter cada aba com seu próprio estilo basta adicionar um CASE filtrando o índice das abas: case TabIndex of   0: Control.Canvas.Font.Color:=clBlack;   1: Control.Canvas.Font.Color:=clWindow; ...

Manipular arquivos com PL/SQL (Oracle)

O bom e velho arquivo, é impressionante como lidamos com seus vários tipos durante todos os dias, bom hoje vamos mostrar um jeito simples de se escrever e ler arquivos apenas com a codificação nativa do Oracle. A primeira coisa a fazer é criar um diretório válido configurado no Oracle, e permissões de acesso a esse diretório para o usuário de banco onde faremos o exemplo, sendo assim suponhamos que nosso usuário de banco se chame programero, e nosso diretório real esteja em c:\programero, então logado como SYSTEM devemos executar os seguintes comandos: 1: -- cria diretorio 2: create or replace directory DIR_PROGRAMERO as ' C:\PROGRAMERO '; 3: -- concede permissão de escrita e leitura para nosso usuário 4: grant read , write on directory DIR_PROGRAMERO to PROGRAMERO; Para escrever, basicamente precisamos apenas saber onde esse arquivo ficará, no nosso caso no diretório criado acima, segue o código de escrita: 1: declare 2: -- nosso handler 3: v_a...