Clique abaixo para nos ajudar
Conectar-se

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 Visitantes :: 1 Motor de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Espessura do cursor intermitente

7/3/2017, 09:08 por Jefferson Matakas

Bom dia a todos !!

Existe uma opcao no windows que pode ser acessada atraves da 'central da …

Comentários: 0

DESENVOLVIMENTO EM REDES

4/3/2017, 18:45 por AJC

Pessoal tem ou conhece livros ou material para programação em
redes usando banco de dados nativo …

Comentários: 0

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 4

Como preencher campos vazios

9/2/2017, 11:55 por Linghston

Pessoal boa tarde,

É o seguinte, eu preciso preencher os campos de uma coluna da tabela DBF que …

Comentários: 2

Enviar msg para WhatsAPP via VFP

7/2/2017, 10:31 por Eliana

Olá Pessoal!

Alguém sabe se é possível enviar mensagem para o WhatsAPP via VFP?


Grata


Comentários: 0

Estatísticas
Temos 7037 usuários registrados
O último usuário registrado atende pelo nome de GETULIO

Os nossos membros postaram um total de 31 mensagens em 17 assuntos

PostgreSQL, Aprendendo, by Hugo

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Tutorial PostgreSQL, Aprendendo, by Hugo

Mensagem por hugo em 3/4/2010, 12:52

A ideia deste post é a de compartilhar com todos do forum a minha caminhada no aprendizado do Banco de Dados PostgreSQL. Pretendo enfatizar aqui a utilizacao deste banco com a linguagem de programacao Visual FoxPro! Agradeco por comentarios, contribuicoes e afins!

Este material conterá tudo que estou aprendendo em pratica, logo, espero que este material seja util pra galera!

Para manter o post limpo, os comentarios e afins poderao ser ou nao incluidos no material principal e/ou deletados apos a absorcao do conteudo!

Agradeco a todos que vierem a contribuir!
J. Hugo R.


O que é o PostgreSQL?
O PostgreSQL é um sistema para gerenciamento de banco de dados relacional, ou SGBD, e é desenvolvido sob uma licença nos padrões BSD, servindo como alternativa a outros gerenciadores de banco de dados, livres (MySQL, FireBird) ou proprietários(Oracle, SyBase, Microsoft SQL Server). A licença garante o livre uso, a cópia, distribuição ou modificação do software e de toda a sua documentação, desde que mantida a licença. Leia a licença completa em http://www.postgresql.org/about/licence.


Servidor de Banco de Dados PostgreSQL for Linux X Windows:
X
LINUX
.L......
WINDOWS
.W......
OS
Free
Very Happy
Pago
Sad
VIRUS
.Sem riscos.
Very Happy
.Com riscos.
Sad
.Velocidade.
.Maior.
Very Happy
.Menor.
Sad
Obs. Comparacoes feitas com mesmo hardware e Banco de dados Postgresql pra mesmo software de automacao!

"Quanto ao servidor ser Windows ou Linux, se me perguntasse em qual o caminho natural que eu seguiria eu apontaria para o Linux por ser o ambiente natural do PostgreSQL e por outros quesitos que influenciam em melhor no trinômio performance/segurança/escalabilidade." Mais detalhes em http://www.mail-archive.com/pgbr-geral@listas.postgresql.org.br/msg11325.html


Comunidades PostgreSQL:
http://www.postgresql.org/
http://www.postgresql.org.br/
http://wiki.postgresql.org/wiki/Portugu%C3%AAs


Links com materiais didaticos:
http://pgdocptbr.sourceforge.net/pg80/index.html (on-line)
http://www.ebah.com.br/manual-postgres-8-0-download-pdf-pdf-a2092.html (pdf)
http://www.scribd.com/doc/1555969/postgreSQL-pratico
http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico
http://www.linux-magazine.com.br/images/uploads/pdf_aberto/LM07_postgresql.pdf


Quais plataformas o PostgreSQL pode ser executado?
- Qualquer plataforma compativel com Unix, ou seja, qualquer Linux atual!
- Windows 2000 SP4, XP, 2003 nativamente;
- Windows 95, 98, Me (usando Cygwin);

O que é Cygwin?
Cygwin é uma coleção de ferramentas de software livre originalmente desenvolvidas por Cygnus Solutions! Ele permite que o Windows possa portar softwares que rodam em sistemas Linux com pouco mais do que uma recompilação. O Cygwin é atualmente mantido por funcionários da Red Hat e outras pessoas.
Obs. Com certeza voce nao vai colocar um servidor de banco PostgreSQL num 95 ou 98, alem de que temos o postgresql nativo pra Windows, contudo a informacao pode ser util para outras coisas! Enfatizando pois trata-se de um emulador de Linux para Windows muito interessante!



Onde eu posso conseguir o PostgreSQL?
Via navegador web, utilize http://www.postgresql.org/ftp/ e via ftp, utilize ftp://ftp.postgresql.org/pub/. Lembre-se que se voce for instalar o Debian (linux), voce ja tem o Banco de dados na sua instalacao! O debian 5.04 vem com o PostgreSQL 8.3.

Observacao importante:
Na instalacao do Debian 5.0.4, se marcar a opcao "Banco de dados SQL", o PostgreSQL 8.3 ja sera instalado na maquina!


Instalando PostgreSQL no Windows:
Aguarde...




Instalando PostgreSQL no Linux:

Qual a distribuicao mais indicada?
Até o momento, em minhas pesquisas, a distribuicao Debian é a mais indicada para utilizacao do PostgreSQL:

1 ) Um indicio de boa funcionalidade do Debian com PostgreSQL: Referente a um curso em SP a nivel Avançado de PostgreSQL e HA: "A 4Linux trabalha todas as distribuições Linux, mas foca em Debian pela confiabilidade e estabilidade. O curso PostgreSQL será trabalhado nesta distribuição, por também inserir o aluno na distribuição mais livre do mundo;" http://www.4linux.com.br/cursos/postgresql-alta-performance-alta-disponibilidade-459.html

2 ) Indicacao sobre Debian - http://www.andrelop.org/blog/2006/09/08/por-que-debian/comment-page-1/#comment-67365

Se achou interessante o Debian veja o tutorial completo de download e instalacao:
http://wiki.debian.org/pt_BR/DebianInstall

Dica de instalacao Debian:
Para Intel ou AMD de 32 bits, usa o distribuição "i386", para Intel ou AMD de 64 bits, use a distribuição "amd64".

Desabilite placas de rede on-board na bios, coloque uma placa de rede rtl 8139c e o hardware sera automaticamente reconhecido, nao mande configurar automaticamente em DHCP, informe ip fixo durante a instalacao!


Caso resolva instalar o Debian como seu OS para servidor de banco PostgreSQl, voce tambem precisara de uma integracao eficaz com estacoes Windows, logo, precisara do Samba.

O que é Samba?
O SAMBA é uma aplicação que utiliza o protocolo SMB (no Linux, os "server daemons" SMBD e NMBD) permitindo compatibilidade com redes que utilizam este protocolo, principalmente redes NetBios da Microsoft. Com o SAMBA é possível compartilhar diretórios, impressoras, acessar arquivos na rede exatamente como em redes Microsoft. Mas neste caso, seu servidor é um Linux rodando uma aplicaçao específica.

Instalacao e configuracao do Samba no Debian:
Aguarde....[/justify]



Instalando e configurando o PostgreSQL no Debian:
http://forum.programacaobrasil.com/debian-f79/debian-postgresql-e-o-concluido-t837.htm
http://jucacrispim.wordpress.com/2009/12/21/instalcao-e-configuracao-do-postgresql-no-debian/


Instalando o PostgreSQL no Ubuntu:
Obs. O Ubuntu foi desenvolvido com base no Debian!
http://sigma2k.wordpress.com/2009/10/16/configurar-postgres-8-3-no-ubuntu/




Apos instalacao do PostgreSQL:
O primeiro teste para verificar se é possível acessar o servidor de banco de dados é tentar criar um banco de dados.

Um servidor PostgreSQL pode gerenciar muitos bancos de dados. Normalmente é utilizado um banco de dados em separado para cada projeto.
Podemos acessar o banco pelo psql (shell), pgacess (grafico) ou ainda pelo phAdmin III (grafico)! Pode-se tambem manusear o banco atraves de um pacote de automação de escritórios com suporte a ODBC (Visual FoxPro por exemplo).
Na finalizacao da instalacao do Postgresql ele vai te perguntar se voce quer baixar itens adicionais, se voce usa VFP vai precisar do ODBC, entao verifique as opcoes e solicite a instalacao do mesmo!



Para comecar abra o "sql shell" (psql):

Para saber sua versao do Postgresql digite:
Código:
SELECT version();

Para saber a data corrente no banco:
Código:
SELECT current_date;

Fazendo calculos:
Código:
SELECT 2 + 2;

Visualize a ajuda para os comandos de contrabarra internos:
Código:
\?

Listar todos os usuários cadastrados no servidor:
Código:
\du

Listar todos os grupos cadastrados no servidor
Código:
\dg

Listar todos os tipos de dados
Código:
\dT

O comando \i lê os comandos no arquivo especificado. A opção -s ativa o modo passo a passo, que faz uma pausa antes de enviar cada comando para o servidor.
Código:
\i teste.sql
Obs.
Neste caso voce tem que ter um arquivo .sql com sequencia de comandos sql.

Visualize a ajuda para nos comandos sql:
Código:
\h
(Enter) vai listando linha a linha, (Ctrl+C) Cancela visualizacao

Defina o diretorio de trabalho do banco:
Ainda nao sei fazer isto, aguarde....

Para saber qual diretorio de trabalho o banco esta armazenado:
Ainda nao sei fazer isto, aguarde....

Visualize o help de um comando em específico:
Código:
\h create

Crie um banco de dados:
Código:
create database teste;

De permissao de utilizacao total a todos:
Código:
grant all on database teste to public;
Obs.
Este comando eh opcional neste momento. Pode-se atribuir permissoes detalhadamente. Omitir este comando fara com que so o seu usuario e o super usuario tenham previlegios neste banco.
Verifique a lista de bancos disponiveis:
Código:
\L
Obs.
Se deu tudo certo voce verá seu banco listado!

Apague o banco de dados:
Código:
drop database teste;
Obs.
Um database so pode ser apagado se nao estiver em uso!
Neste caso nao estamos utilizando-o, logo, sera excluido.

Crie novamente o banco teste:
Código:
create database teste;

Selecione o banco de dados:
Código:
\c teste
Obs.
Agora estamos utilizando o banco teste.

Tente apagar o banco teste agora:
Código:
drop database teste;
Obs.
Nao sera possivel pois estamos conectados a ele!

Feche seu psql:
Código:
\q

Abra novamente seu psql e confirme quais bancos voce tem disponivel:
Código:
\L

Tente apagar o banco teste agora:
Código:
drop database teste;
Obs.
Agora apagamos o banco teste com sucesso. Atente para que nao conseguimos apagar da ultima vez pois estavamos conectados ao banco pelo psql, ao fechar o psql utilizando o "\q" nós nos desconectamos do banco. Atencao, se voce estiver conectado ao banco pelo "pgAdmin III" por exemplo, voce nao conseguira apagar o banco teste pelo psql mesmo nao estando conectado ao banco pelo psql.

Crie novamente o banco teste:
Código:
create database teste;

Este comando acima gera um banco de dados atraves de comandos equivalentes a estes abaixo por default:
Código:
CREATE DATABASE teste
  WITH OWNER = postgres -- determinando o proprietario do banco
      ENCODING = 'UTF8' -- utilizando encoding UTF8
      LC_COLLATE = 'Portuguese, Brazil' -- cod. regional brasil
      LC_CTYPE='Portuguese, Brazil' --cod. reg. character brasil
      CONNECTION LIMIT = -1 -- limite de conexoes;

Selecione o banco de dados:
Código:
\c teste
Obs.
Agora estamos utilizando o banco teste.

Tipos dados:
É necessario conhecermos os tipos de dados antes de prosseguirmos com criacao de tabelas.

Tipos Numéricos:
Nome
Nome Interno
Descrição
smallintint2inteiro. Abrange valores de -32678 a +32678
integerint4inteiro. Abrange valores de -2147483648 a +2147483647
bigintint8inteiro. Abrange valores de -9223372036854775808 a 9223372036854775807
numericnumericprecisão definida pelo usuário
realfloat4Número em vírgula flutuante com precisão simples
double precisionfloat8Número em vírgula flutuante de dupla precisão.
serialserialInteiro com auto-incrementação. Abrange de 1 a 2147483647
bigserialbigserialInteiro com auto-incrementação. Abrange de 1 a 9223372036854775807

Nota:
Os tipos serial e bigserial não são realmente tipos de dados.
Mas apenas uma notação conveniente para criar colunas identificadoras com valores únicos e auto-incrementação. (Outros bancos de dados utilizam a propriedade AUTO_INCREMENT para criar colunas com auto-incrementação).

Tipos de Data e hora:
nome
nome interno
descrição
timestamp without time zonetimestampData e hora. Abrange de 4713AC até 5874897DC
timestamp with time zonetimestampzData e hora com zona horária. Abrange de 4713AC até 5874897DC
intervalintervalIntervalo de tempo. Abrange de -178000000 a 178000000 anos
datedateApenas datas. Abrange de 4713AC até 5874897DC
time without time zonetimeApenas hora. Abrange de 00:00:00.00 a 23:59:59.99
time with time zonetimezApenas hora com zona horária. Abrange de 00:00:00.00+12 a 23:59:59.99-12

Tipos de Cadeia(String):
nome
nome interno
descrição
character varying(tamanho)varchar(tamanho)Cadeia de caracteres com comprimento variável. Possui um limite de tamanho.
character(tamanho)char(tamanho)Cadeia de caracteres com tamanho fixo. Completado com espaços em branco.
texttextCadeia de caracteres de tamanho variável. Sem limite de tamanho.

Crie uma tabela:
Código:
CREATE TABLE pessoas
    (
    codigo varchar(6), -- codigo da pessoa
    razaosoc varchar(50), -- Nome da pessoa
    tipo varchar(1), -- (f)ornecedor (c)cliente (a)mbos
    nrdocpri varchar(17), -- nr ci ou cnpj
    dtinc date -- data da inclusao
    );
Obs.
Os sinais "--" dentro da sintaxe sao comentarios! O endentamento ajuda o bem entendimento dos comandos! Os comentarios nao sao obrigatorios!

Este comando acima gera uma tabela atraves de comandos equivalentes a estes abaixo:
Código:
CREATE TABLE pessoas
  (
  codigo character varying(6),
  razaosoc character varying(50),
  tipo character varying(1),
  nrdocpri character varying(17),
  dtinc date
  )
  WITH (
  OIDS=FALSE
  );
ALTER TABLE pessoas OWNER TO postgres -- postgres dono da tabela;
Obs.
Note que VARCHAR() = CHARACTER VARYING(), no caso é mais rapido usar varchar().

Ver todas as informações sobre as colunas da tabela 'pessoas':
Código:
\d pessoas

Para sabermos quais sao as tabelas que temos no banco:
ainda nao sei como se faz isto.... aguarde

Inserindo dados em ordem de colunas na tabela pessoas:
Código:
INSERT INTO pessoas
    VALUES (
    '000001', 'TESTE01', 'C', '95398899977', '2010-04-02'
    );
Obs.
A sintaxe usada até agora requer que seja lembrada a ordem das colunas quando criada a tabela.

Inserindo dados sem ordem colunas na tabela pessoas:
Código:
INSERT INTO pessoas
    (dtinc, codigo, razaosoc, tipo, nrdocpri)
    VALUES (
    '2010-04-02', '000002', 'TESTE02', 'C', '95398899955'
    );
Obs.
Se for desejado, pode-se declarar as colunas em uma ordem diferente, e pode-se,
também, omitir algumas colunas. Por exemplo, se a precipitação não for conhecida.

Inserindo dados a partir de um arquivo .TXT:
Código:
COPY pessoas FROM 'c:\teste\teste.txt';
Obs.
O comando COPY para carregar uma grande quantidade de dados a partir de arquivos texto puro. Geralmente é mais rápido, porque o comando COPY é otimizado para esta finalidade, embora possua menos flexibilidade que o comando INSERT.

Consultarmos os dados inseridos:
Código:
select * from pessoas;

Consultarmos dados especificos inseridos na tabela:
Código:
select codigo, razaosoc, dtinc from pessoas;

Na lista de seleção podem ser especificadas expressões, e não apenas referências a colunas:
Código:
SELECT codigo, razaosoc, (5+3)/2 AS calculo, dtinc FROM pessoas;

Visualizando todas colunas num campo apenas:
Código:
SELECT pessoas FROM pessoas;

Utilizando condicoes no select:
Código:
SELECT * FROM pessoas WHERE codigo='000001';

Utilizando ordenacao:
Código:
SELECT * FROM pessoas ORDER BY nrdocpri;

Utilizando mais de uma ordenacao:
Código:
SELECT * FROM pessoas ORDER BY nrdocpri, codigo;

Adicionaremos uma coluna na tabela, alterando estrutura:
Código:
ALTER TABLE pessoas
  ADD COLUMN cidade varchar(20);

Inserindo mais dados na tabela pessoas:
Código:
INSERT INTO pessoas
    VALUES (
    '000004', 'TESTE04', 'C', '95398899944', '2010-04-02', 'BH'
    );
INSERT INTO pessoas
    VALUES (
    '000004', 'TESTE05', 'C', '95398899955', '2010-04-02', 'BH'
    );
INSERT INTO pessoas
    VALUES (
    '000006', 'TESTE06', 'C', '95398899966', '2010-04-02', 'BH'
    );

Verifique o resultado desta consulta:
Código:
SELECT codigo FROM pessoas;

Agora verifique o resultado desta consulta! Ela omite linhas duplicadas:
Código:
SELECT DISTINCT codigo FROM pessoas;

O mesmo codigo de cima porem em ordenado por codigo:
Código:
SELECT DISTINCT codigo FROM pessoas ORDER BY codigo;


Assuntos relacionados ao VFP e PostgreSQL:
* http://forum.programacaobrasil.com/visual-foxpro-foxpro-for-ms-dos-f4/exemplo-usando-postgresql-no-visual-foxpro-t52.htm
* http://forum.programacaobrasil.com/visual-foxpro-foxpro-for-ms-dos-f4/postgre-no-visual-foxpro6-t308.htm


Feche o psql:
Código:
\q;


{RASCUNHO}
Sendo estudado na pratica ainda

2. Criando uma tabela: (Com um valor default)
Código:
CREATE TABLE nome_da_tabela (nome_da_coluna tipo_da_coluna DEFAULT valor);

3. Criando uma tabela: (Com restrição - no caso abaixo não aceita valor igual a ZERO)
Código:
CREATE TABLE exemplo (quantidade integer CHECK (quantidade >= 0) );

4. Criando uma tabela: (Com restrição - não aceita valores nulos)
Código:
CREATE TABLE exemplo (quantidade integer NOT NULL);

5. Criando uma tabela: (Com chave primária)
Código:
CREATE TABLE nome_data_tabela(nome_da_coluna tipo_coluna UNIQUE);

6. Criando uma tabela: (Com chave estrangeira)
Código:
CREATE TABLE nome_data_tabela(nome_da_coluna tipo_coluna PRIMARY KEY);

Nota: No postgreSQL, PRIMARY KEY é uma junção de UNIQUE com NOT NULL.

7. Criando referências entre tabelas:
Código:
CREATE TABLE tabela1 (coluna1Tabela1 integer PRIMARY KEY, coluna2Tabela1 integer REFERENCES tabela2, campo1Tabela2 date, campo2Tabela2);






continua...


Última edição por hugo em 4/5/2010, 17:41, editado 6 vez(es)

_________________
"A tristeza é a falta de alegria, mais sem ela eu não poderia entender a alegria do fato de que a felicidade existe!"
Helio Leites - http://www.youtube.com/watch?v=3NUEXX_yOL0
avatar
hugo
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Tutorial Re: PostgreSQL, Aprendendo, by Hugo

Mensagem por Marcos Guedes em 6/4/2010, 08:06

Acompanhando...

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
http://portal.programacaobrasil.com

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Tutorial Re: PostgreSQL, Aprendendo, by Hugo

Mensagem por hugo em 7/4/2010, 02:23

topico inicial atualizado em 07-04-2010 02.20hs

Observacao importante:
Na instalacao do Debian 5.0.4, se marcar a opcao "Banco de dados SQL", o PostgreSQL 8.3 ja sera instalado na maquina!

Dica instalacao Debian:
Desabilite placas de rede on-board na bios, coloque uma rtl 8139c e o hardware sera automaticamente reconhecido, nao mande configurar automaticamente em DHCP, informe ip fixo durante a instalacao!


Última edição por hugo em 7/4/2010, 12:29, editado 1 vez(es)

_________________
"A tristeza é a falta de alegria, mais sem ela eu não poderia entender a alegria do fato de que a felicidade existe!"
Helio Leites - http://www.youtube.com/watch?v=3NUEXX_yOL0
avatar
hugo
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Tutorial Re: PostgreSQL, Aprendendo, by Hugo

Mensagem por hugo em 7/4/2010, 12:28

topico inicial atualizado em 07 04 2010 as 12:20hs

Instalacao em 32bits e 64bits

Para Intel ou AMD de 32 bits, usa o distribuição "i386", para Intel ou AMD de 64 bits, use a distribuição "amd64".

_________________
"A tristeza é a falta de alegria, mais sem ela eu não poderia entender a alegria do fato de que a felicidade existe!"
Helio Leites - http://www.youtube.com/watch?v=3NUEXX_yOL0
avatar
hugo
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum