1. Como conectar via console um banco ORACLE
sqlplus usuario/senha@banco
2. Como visualizar tabelas ou objetos do usuário ?
Você pode visualizar as tabelas e objetos do usuário
através das tabelas user_tables, user_objects e user_catalog.
Pode ser utilizado também os sinônimos TAB ou CAT.
Ex.: select tname
from user_tables;
select tname
from tab;
3. Visualizar a estrutura de 1 tabela
desc nome_tabela
4. Visualizar as constraints de uma tabela
select constraint_name, constraint_type
from user_constraints
where table_name = 'FUNC';
5. Tabelas úteis para consulta
user_indexes
user_sequences
Pesquisar este blog
terça-feira, 21 de julho de 2009
quarta-feira, 15 de julho de 2009
Oracle / PostgreSQL SQL Tips
DICAS ORACLE / POSTGRESQL
1. Como renomear uma tabela ?
PostgreSQL
alter table clientes
rename to func;
ORACLE
rename clientes to func;
ou
alter table clientes
rename to func;
2. Como adicionar constraint após tabela criada ?
alter table tabela
add [constraint] restricao;
Ex: alter table clientes
add constraint check (limite >= 0);
3. Fazer a constraint ser verificada apenas ao comitar transação
ORACLE
alter table tabela
add [constraint] restricao deferrable;
Ex: alter table clientes
add check (limite >= 0) deferrable;
4. Como criar uma função que retorna 1 tabela ?
PostgreSQL
create or replace function lista_func(ACidade varchar(100)) returns setof func
as '
declare
registro record;
begin
for registro in select * from func
where cidade = ACidade
loop
return next registro;
end loop;
end;
'
language 'plpgsql';
USO:
select * from lista_func();
5. Excluir um campo de uma tabela
ORACLE
alter table clientes
drop column nome;
6. Adicionar uma constraint unique para um campo
PostgreSQL
alter table func
add constraint nome_uk unique(nome);
ORACLE
alter table func
add constraint nome_uk unique(nome);
ou
alter table func
modify nome unique;
7. Criar uma tabela com o conteúdo de uma tabela existente
create table func_temp as
select * from func;
create table func_temp as
(select * from func);
8. Adicionar campo com integridade referêncial
alter table func
add dept_id integer references dept;
alter table func
add dept_id integer references dept(id);
9. Realizar consultas com relações derivadas (select from select)
PostgreSQL
// Retorna a lista de departamentos em que a
// quantidade de funcionários é maior que 1
select nome, count
from(
select dept.nome,
(select count(1)
from func
where func.dept = dept.id)
from dept
) as dept(nome, count)
where count > 1;
ORACLE
select nome, count
from(
select dept.nome,
(select count(1)
from func
where func.dept = dept.id) as count
from dept
)
where count > 1
10. Qual a ordem de precedência na avaliação dos operadores ?
ESQUERDA->DIREITA
1 - operadores de comparação
2 - not
3 - and
4 - or
OBS.: Por clareza, sempre use parênteses.
11. Exemplos de funções single row para caracter
Largura da string:
select length('ORACLE') from dual;
Localizar string em outra string:
select instr('everton agilar', 'a') from dual;
Preencher uma string com zeros a esquerda
select lpad('7891237812', 13, '0') from dual;
Preencher uma string com zeros a direita
select rpad('7891237812', 13, '0') from dual;
12. Exemplos de funções single row para data/hora
Obter data atual
select sysdate from dual; -- somente ORACLE
select current_date from dual;
select current_timestamp from dual;
Obter hora atual
select current_time from dual; -- Somente PostgreSQL
Obter a data/hora em formato texto
select to_char(current_date-1, 'dd/mm/yyyy') from dual;
select cast(current_date as varchar(15)) from dual; -- ANSI
Obter parte da data/hora
select to_char(current_date, 'MONTH') from dual;
select to_char(current_date, 'dd') from dual;
-- ANSI
select extract(month from current_date) from dual;
select extract(day from current_date) from dual;
13. Converter string de dígitos para número
ORACLE
select to_number('190.83') from dual;
select cast('190.83' as numeric(12, 2)) from dual;
PostgreSQL
select cast('190.83' as numeric(12, 2)) from dual;
14. Formatar números
Formata valor monetário
select to_char(190.83, '99999D99') from dual;
Formata código de barra com zeros a esquerda
select to_char(7891231212, '0999999999999') from dual;
15. Trocar valor nulo por outro valor em uma expressão
ORACLE
select coalesce(telefone, celular) from cliente;
select coalesce(null, null, null, 2) from dual;
select nvl(null, 2) from dual;
select nvl2(null, 1, 2) from dual;
PostgreSQL
select coalesce(telefone, celular) from cliente;
select coalesce(null, null, null, 2) from dual;
16. Comentar uma tabela ou coluna de tabela
-- comentário para tabela
comment on table clientes is 'Tabela de clientes';
-- comentário para coluna de tabela
comment on column clientes.tipo is 'F=Fisica J=Juridica';
17. Visualizar a estrutura de uma tabela
ORACLE (sqlplus.exe)
desc nome_tabela
PostgreSQL (psql.exe)
\d nome_tabela
18. Excluir os dados da tabela de forma rápida
truncate table nome_tabela;
OBS.: Este comando não permite desfazer alterações (rollback) e
é executado muito mais rápido que um delete.
19. Utilizando SEQUENCES
ORACLE
-- criar a sequence
create sequence seq_func
start with 100
increment by 10
nocache;
-- gerar sequencia
select seq_func.nextval from dual;
-- obter valor atual
select seq_func.currval from dual;
PostgreSQL
-- criar a sequence
create sequence seq_func
start with 100
increment by 10
nocache;
-- gerar sequencia
select nextval('seq_func') from dual;
-- obter valor atual
select currval('seq_func') from dual;
OBS.: A diferença do PostgreSQL para o ORACLE é a
utilização de funções nextval() e currval().
O SQL ANSI é utilizada a expressão NEXT VALUE FOR.
20. Como reconstruir um índice ?
ORACLE
// refaz o índice na mesma tablespace
alter index dept_nome_uk rebuild;
// refaz o índice em outra tablespace.
alter index dept_nome_uk rebuild tablespace indx;
20. Como fazer para retornar parte de uma string ?
ORACLE
select substr('Oracle 10g', 1, 6) from dual;
retorna Oracle
domingo, 12 de julho de 2009
Linux Knowledge base
1. Listar a tabela de interrupções de um computador
2. Listar os dispositivos USB conectados ao computador
3. Descompactar um arquivo compactado com gzip
4. Alterar data e hora no Linux
5. Desligar o computador ou agendar desligamento
6. Reiniciar o computador ou agendar reboot
7. Fazer Backup da MBR (Master Boot Record) antes de instalar o Linux
- 1. Listar a tabela de interrupções de um computador
cat /proc/interrupts
- 2. Listar os dispositivos USB conectados ao computador
lsusb
- 3. Descompactar um arquivo compactado com gzip
gzip -d arquivo.gz
gunzip arquivo.gz
- 4. Alterar data e hora no Linux
date 071312592009
Parâmetros: mes dia hora minuto ano
- 5. Desligar o computador ou agendar desligamento
shutdown -h now
shutdown -h 10
O primeiro comando desliga imediatamente, já o segundo comando passa como parâmetro os minutos que o Linux aguarda antes de iniciar o desligamento.
- 6. Reiniciar o computador ou agendar reboot
shutdown -r now
shutdown -r 10
O primeiro comando reinicia imediatamente, já o segundo comando passa como parâmetro os minutos que o Linux aguarda antes de reiniciar.
- 7. Fazer Backup da MBR (Master Boot Record) antes de instalar o Linux
Fazer um backup da MBR é útil quando queremos fazer uma instalação dual boot de Linux e Windows. Se algo der errado na instalação do Linux, podemos facilmente recuperar a MBR e ter acesso ao Windows novamente. É útil também para recuperar a MBR depois de instalado o Windows em um computador com Linux, pois o Windows substitui o bootstrap, programa necessário para carregar o sistema operacional, e que está gravado no MBR.
dd if=/dev/hda of=mbr.backup bs=512 count=1
Parâmetros:
if - dispositivo que queremos fazer backup (no exemplo, primeiro HD do computador)
of - arquivo que será gravado o MBR.
bs - quantos bytes será lido
count - quantas vezes será lido
Para recuperar a MBR em caso de perda, utiliza-se o seguinte comando:
dd if=mbr-backup of=/dev/hda bs=512 count=1
Para recuperar somente o bootstrap sem alterar a tabela de partição utiliza-se o seguinte comando:
dd if=mbr-backup of=/dev/hda bs=446 count=1
quarta-feira, 8 de julho de 2009
Dicas ao Fazer Casos de Uso
O modelo de casos de uso é uma representação das funcionalidades externamente observáveis do sistema e dos elementos externos (atores) ao sistema que interagem com ele. Este modelo é parte integrante da especificação de requisitos. Deve ser utilizado para moldar os requisitos funcionais do sistema.
Segue algumas dicas ao fazer casos de uso:
Segue algumas dicas ao fazer casos de uso:
Quando usar: Quando precisar mostrar os objetivos dos atores. Não utilize para representar funcionalidades do sistema, mas para representar os objetivos dos atores.
Independência de Interface Gráfica: Escreva os casos sem os detalhes da interface gráfica. Isto é chamado de caso de uso essencial.
O que o caso de uso representa: Um caso de uso representa as interações entre os atores e o sistema, sem considerar o comportamento interno do sistema.
Casos de Usos Essenciais e Caso de Uso Reais: Casos de uso essenciais não fazem menção a técnologia utilizada enquanto que caso de uso reais fazem.
- Como escolher o tipo de relacionamento: Depende da prática. Use inclusão quando o mesmo caso de uso se repete em mais de um caso de uso; Use extensão, quando um comportamento opcional tiver de ser descrito; Use herança para reutilização.
Como identificar casos de uso: Casos de usos representam os processos da empresa que estão sendo automatizados pelo sistema de software. Faça as seguintes perguntas para descobrir os casos de uso:
- Quais são as necessidades e objetivos de cada ator
em relação ao sistema ? - Que informações o sistema deve exibir ?
- O sistema deve realizar alguma ação que deva ocorrer
regularmente no tempo ? - Para cada requisito funcional, existe um ou mais caso(s) de uso
para atendê-lo ?
Diferença entre casos de uso primário e secundário: Caso de uso primário são os que identificam os objetivos dos atores. Os casos de uso secundário são os que não trazem nenhum objetivo aos atores mas que são necessário para que o sistema funcione adequadamente.
- Por onde começar: Considere os casos de uso mais arriscados primeiro!
- Os benefícios: Casos de uso devem trazer benefícios para equipe. Se não trazer, descarte-o
- Quais são as necessidades e objetivos de cada ator
domingo, 5 de julho de 2009
Trabalhando com Pacotes RPM
Pacotes RPM é um arquivo que contém informações necessárias para instalação de programas de computador para Linux baseadas na distribuição Hed-Hat. Geralmente é composto por executáveis, documentos e scripts, ou seja, tudo que for necesário para instalação de uma determinada aplicação.
Pacotes RPM oferecem muita flexibilidade na instalação, atualização, consulta e remoção de softwares, pois elimina a necessidade de configuração e compilação, tornando a instalação de programas mais fácil e organizada em ambientes Linux.
Segue abaixo uma lista de tarefas comuns que são realizadas por um operador Linux:
Pacotes RPM oferecem muita flexibilidade na instalação, atualização, consulta e remoção de softwares, pois elimina a necessidade de configuração e compilação, tornando a instalação de programas mais fácil e organizada em ambientes Linux.
Segue abaixo uma lista de tarefas comuns que são realizadas por um operador Linux:
- Instalar novos programas
- Atualizar um programa para versão mais nova
- Remover um programa já instalado
- Para ver a lista de programas (pacotes) instalados em seu sistema
- Para ver se algum programa está instalado em seu sistema
- Para ver quais arquvos um pacote instalou no meu sistema e em que local estão
- Para ver quais arquivos um pacote que ainda não está instalado possui
- Obter informações de um pacote instalado
- Obter informações de um pacote não instalado
- Reinstalar ou atualizar um programa existente
- Instalar um pacote sem verificação de dependências
- Simular instalação de um pacote para ver se tudo vai ocorrer sem problemas
- Reconstruir a base de dados RPM
- Obter mais informações sobre o comando rpm
rpm -i nome_do_pacote.rpm
rpm -U nome_do_pacote.rpm
rpm -e nome_do_pacote
OBS: Não coloque a extensão "rpm"!
rpm -qa
rpm -qa | grep nome_do_pacote
OBS: Não coloque a extensão "rpm"!
EXEMPLO: Ver se o openoffice está instalado: rpm -qa | grep openoffice
rpm -ql nome_do_pacote
EXEMPLO:
rpm -ql openoffice.org-writer-3.1.0-11.3.fc11.i586
rpm -ql openoffice.org-writer (perceba que aqui não estou informando o nome completo do pacote)
rpm -qlp nome_do_pacote
OBS.: Note o parâmetro "p"
rpm -qi nome_do_pacote
EXEMPLO: rpm -qi postgresql-server
rpm -qip nome_do_pacote.rpm
EXEMPLO: rpm -qip pidgin-2.5.7-1.fc11.i586.rpm
OBS.: Note o parâmetro "p"
rpm -U nome_do_pacote.rpm
rpm -U --replacedpkgs nome_do_pacote.rpm
rpm -i --nodeps nome_do_pacote.rpm
OBS.: Esta opção não é recomendada!
rpm -i --test nome_do_pacote.rpm
rpm --rebuilddb ou
rpm --initdb
man rpm
Assinar:
Postagens (Atom)