Login
Estamos no Facebook
Buscar
Quem está conectado
Há 7 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 7 Visitantes :: 2 Motores de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| m@r<3|o | ||||
| mfelis | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| _batmanvfp_ | ||||
| marcio |
Karaoke feito em FoxPro 2.6
23/5/2012, 11:45 por fabiomacarrao
Bom dia a todos. Desenvolvi um programa em FoxPro for windows 2.6 para karaoke. tenho mais de 2700 …
Comentários: 3
Estatísticas
Temos 4048 usuários registradosO último usuário registrado atende pelo nome de fabiomacarrao
Os nossos membros postaram um total de 14433 mensagens em 2047 assuntos
PostgreSQL, Aprendendo, by Hugo
Página 1 de 1 • Compartilhe •
PostgreSQL, Aprendendo, by Hugo
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.
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 | Pago | ||
VIRUS | .Sem riscos. | .Com riscos. | ||
.Velocidade. | .Maior. | .Menor. |
"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!

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.
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
Neste caso voce tem que ter um arquivo .sql com sequencia de comandos sql.
Visualize a ajuda para nos comandos sql:
- Código:
\h
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;
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
Se deu tudo certo voce verá seu banco listado!
Apague o banco de dados:
- Código:
drop database teste;
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
Agora estamos utilizando o banco teste.
Tente apagar o banco teste agora:
- Código:
drop database teste;
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;
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
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 |
| smallint | int2 | inteiro. Abrange valores de -32678 a +32678 |
| integer | int4 | inteiro. Abrange valores de -2147483648 a +2147483647 |
| bigint | int8 | inteiro. Abrange valores de -9223372036854775808 a 9223372036854775807 |
| numeric | numeric | precisão definida pelo usuário |
| real | float4 | Número em vírgula flutuante com precisão simples |
| double precision | float8 | Número em vírgula flutuante de dupla precisão. |
| serial | serial | Inteiro com auto-incrementação. Abrange de 1 a 2147483647 |
| bigserial | bigserial | Inteiro 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 zone | timestamp | Data e hora. Abrange de 4713AC até 5874897DC |
| timestamp with time zone | timestampz | Data e hora com zona horária. Abrange de 4713AC até 5874897DC |
| interval | interval | Intervalo de tempo. Abrange de -178000000 a 178000000 anos |
| date | date | Apenas datas. Abrange de 4713AC até 5874897DC |
| time without time zone | time | Apenas hora. Abrange de 00:00:00.00 a 23:59:59.99 |
| time with time zone | timez | Apenas 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. |
| text | text | Cadeia 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
);
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;
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'
);
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'
);
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.
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';
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

hugo- Usuário 5 Estrelas

Re: PostgreSQL, Aprendendo, by Hugo
Acompanhando...
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras
Marcos Guedes- Webmaster

Re: PostgreSQL, Aprendendo, by Hugo
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!
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

hugo- Usuário 5 Estrelas

Re: PostgreSQL, Aprendendo, by Hugo
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".
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

hugo- Usuário 5 Estrelas

Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
Início
» Modificar TitleBar e Icone do Executavel.
» Criar atalho, SYS(2020) e Desktop
» Karaoke feito em FoxPro 2.6
» Como separar caminho do diretório?
» Utilizando PHPMailer
» Programador em Visual Foxpro
» Link PHP (Dúvida)
» Fundo do PROJETO Transparente??
» Minimizar , Maximizar e Restaurar
» Pivot Table no sql server
» Scroll EditBox Automatico
» Select Nexval do FoxPro no OracleXE
» Colocar gif na caixa do MESSAGEBOX ()
» Comparar Versões do programa.exe
» Menu lateral
» Fazer com que a tela do sistema assume a janela principal
» Trocar Palavra no Sistema
» invocar Dll em Xbase
» Fechar Porta Aberta