Mostrando postagens com marcador postgresql. Mostrar todas as postagens
Mostrando postagens com marcador postgresql. Mostrar todas as postagens

quinta-feira, 12 de março de 2009

Conexões TCP/IP com PostgreSQL 8.3

Pessoal, quando queremos utilizar o banco de dados como um servidor para ser conectado por outras pessoas da rede, precisamos mudar algumas configurações que por padrão vem desativadas por questões de segurança.
Por isso traduzi um post sobre o assunto e vou publicá-lo aqui.

Siga os passos a seguir:


1.-Editar o arquivo postgresql.conf para aceitar conexões TCP/IP.

a) Botão Iniciar –> PostgreSQL 8.3 –> Configuration files –> Edit postgresql.conf



b) No arquivo postgresql.conf buscamos a linha:

# - Connection Settings -

Retire a tralha(jogo da velha) da linha abaixo:

#listen_addresses = ‘localhost’

Substituiremos localhost por *(asterisco), para que o postgresql possa receber conexões, ficando da seguinte forma:

listen_addresses = ‘*’



Salve o arquivo e feche-o. Agora vamos configurar para receber conexões Ip de outras máquinas.

Para dar autorização aos usuários através de conexão remota:

a) Botão Iniciar –> PostgreSQL 8.3 –> Configuration files –> Edit pg_hba.conf



b) No arquivo pg_hba.conf

Buscamos a linha:

# IPv4 local connections:


———-

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5

———–

Adicionaremos os IPs dos usuários que se conectarão ao servidor, ficando da seguinte forma:

———-

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.0.3/32 md5

———–

O último passo agora é reiniciar o serviço do PostgreSql no servidor para que as alterações tenham efeito e os clientes possam se conectar.

*Fazemos isto no Painel de controle-> Ferramentas Administrativas –> Serviços-> PostgreSQL Database Server 8.3



Paramos o servidor e iniciamos novamente

Assim o cliente poderá se conectar através de seu pgAdmin III

*Obs: Se estiver com firewall, desative-o ou coloque exceções ao postgreSQL.

Material retirado de: http://darkchicles.wordpress.com/2009/02/18/conexiones-tcpip-con-postgresql-83/

quarta-feira, 11 de março de 2009

Funções úteis para PostgreSql


Funções Diversas

SELECT CURRENT_DATABASE();

SELECT CURRENT_SCHEMA();

SELECT CURRENT_SCHEMA(boolean);

SELECT CURRENT_USER;

SELECT SESSION_USER;

SELECT VERSION();


SELECT CURRENT_SETTING('DATESTYLE');

SELECT HAS_TABLE_PRIVILEGE('usuario','tabela','privilegio');

SELECT HAS_TABLE_PRIVILEGE('postgres','nulos','insert'); - - Retorna: t

SELECT HAS_DATABASE_PRIVILEGE('postgres','testes','create'); - - Retorna: t

SELECT HAS_SCHEMA_PRIVILEGE('postgres','public','create'); - - Retorna: t


SELECT relname FROM pg_class WHERE pg_table_is_visible(oid);


Arrays

SELECT ARRAY[1.1,2.2,3.3]::INT[] = ARRAY[1,2,3];

SELECT ARRAY[1,2,3] = ARRAY[1,2,8];

SELECT ARRAY[1,3,5] || ARRAY[2,4,6];

SELECT 0 || ARRAY[2,4,6];


Array de char com 48 posições e cada uma com 2:

campo char(2) [48]


Funções Geométricas

area(objeto) - - area(box '((0,0), (1,1))');

center(objeto) - - center(box '((0,0), (1,2))');

diameter(circulo double) - - diameter(circle '((0,0), 2.0)');

height(box) - - height(box '((0,0), (1,1))');

length(objeto) - - length(path '((-1,0), (1,0))');

radius(circle) - - radius(circle '((0,0), 2.0)');

width(box) - - width(box '((0,0), (1,1))');


Funções para Redes

Funções cidr e inet

host(inet) - - host('192.168.1.5/24') - - 192.168.1.5

masklen(inet) - - masklen('192.168.1.5/24') - - 24

netmask(inet) - - netmask('192.168.1.5/24') - - 255.255.255.0

network(inet) - - network('192.168.1.5/24') - - 192.168.1.0/24


Função macaddr

trunt(macaddr) - - trunc(maraddr '12:34:34:56:78:90:ab') - - 12:34:56:00:00:00


Funções de Informação do Sistema

current_database()

current_schema()

current_schemas(boolean)

current_user()

inet_client_addr()

inet_client_port()

inet_server_addr()

inet_server_port()

pg_postmaster_start_time()

version()

has_table_privilege(user, table, privilege) - dá privilégio ao user na tabela

has_table_privilege(table, privilege) - dá privilégio ao usuário atual na tabela

has_database_privilege(user, database, privilege) - dá privilégio ao user no banco

has_function_privilege(user, function, privilege) - dá privilégio ao user na função

has_language_privilege(user, language, privilege) - dá privilégio ao user na linguagem

has_schema_privilege(user, schema, privilege) - dá privilégio ao user no esquema

has_tablespace_privilege(user, tablespace, privilege) - dá privilégio ao user no tablespace


current_setting(nome) - valor atual da configuração

set_config(nome, novovalor, is_local) - seta parâmetro de retorna novo valor

pg_start_backup(label text)

pg_stop_backup()

pg_column_size(qualquer)

pg_tablespace_size(nome)

pg_database_size(nome)

pg_relation_size(nome)

pg_total_relation_size(nome)

pg_size_pretty(bigint)

pg_ls_dir(diretorio)

pg_read_file(arquivo text, offset bigint, tamanho bigint)

pg_stat_file(arquivo text)

Retirado do site: http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/Fun%C3%A7%C3%B5es_Internas/Convers%C3%A3o_de_Tipos

segunda-feira, 24 de novembro de 2008

Funções Matemáticas com PostgreSql


Ola pessoal...Estive pesquisando algumas funções de arredondamento e achei este excelente material na net...

Operadores Matemáticos utilizados no PostgreSql

+, -, *, /, % (módulo, resto de divisão de inteiros), ^(potência), !(fatorial), @(valor absoluto)

| / - rais quadrada ( | / 25.0 = 5)

| | / - raiz cúbica ( | | / 27.0 = 3)




Algumas funções Matemáticas

ABS(x) - valor absoluto de x

CEIL(numeric) - arredonda para o próximo inteiro superior

DEGREES(valor) - converte valor de radianos para graus

FLOOR(numeric) - arredonda para o próximo inteiro inferior

MOD(x,y) - resto da divisão de x por y

PI() - constante PI (3,1415...)

POWER(x,y) - x elevado a y

RADIANS(valor) - converte valor de graus para radianos

RANDOM() - valor aleatório entre 0 e 1

ROUND(numeric) - arredonda para o inteiro mais próximo

ROUND(v, d) - arredonda v com d casas decimais

SIGN(numeric) - retorna o sinal da entrada, como -1 ou +1

SQRT(X) - Raiz quadrada de X

TRUNC (numeric) - trunca para o nenhuma casa decimal

TRUNC (v numeric, s int) - trunca para s casas decimais


Operadores Lógicos:

AND, OR e NOT. TRUE, FALSE e NULL


Operadores de Comparação:

<, >, <=, >=, =, <> ou !=

a BETWEEN x AND y

a NOT BETWEEN x AND y

expressão IS NULL

expressão IS NOT NULL

expressão IS TRUE

expressão IS NOT TRUE

expressão IS FALSE

expressão IS NOT FALSE

expressão IS UNKNOWN

expressão IS NOT UNKNOWN




OPERADOR NULL

Em SQL NULL é para valores inexistentes. Regra geral: NULL se propaga, o que significa que com quem NULL se combina o resultado será um NULL. NULL não zero, não é string vazia nem string de comprimento zero.

Um exemplo: num cadastro de alunos, para o aluno que ainda não se conhece a nota, não é correto usar zero para sua nota, mas sim NULL. Não se pode efetuar cálculos de expressões onde um dos elementos é NULL.


COMPARANDO NULLs

NOT NULL com NULL -- Unknown

NULL com NULL -- Unknown


CONVERSÃO DE/PARA NULL

NULLIF() e COALESCE()

NULLIF(valor1, valor2)

NULLIF – Retorna NULL se, e somente se, valor1 e valor2 forem iguais, caso contrário retorna valor1.


Algo como:

if (valor1 == valor2){

then NULL

else valor1;


Retorna valor1 somente quando valor1 == valor2.

COALESCE – retorna o primeiro de seus argumentos que não for NULL. Só retorna NULL quando todos os seus argumentos forem NULL.

Uso: mudar o valor padrão cujo valor seja NULL.

create table nulos(nulo int, nulo2 int, nulo3 int);

insert into nulos values (1,null,null);

select coalesce(nulo, nulo2, nulo3) from nulos; - - Retorna 1, valor do campo nulo;

select coalesce(nulo2, nulo3) from nulos; - - Retorna NULL, pois ambos são NULL.


GREATEST - Retorna o maior valor de uma lista - SELECT GREATEST(1,4,6,8,2); - - 8


LEAST - Retorna o menor valor de uma lista.

Todos os valores da lista devem ser do mesmo tipo e nulos são ignorados.

Obs.: Ambas as funções acima não pertencem ao SQL standard, mas são uma extensão do PostgreSQL.


CONCATENANDO NULLs

A regra é: NULL se propaga. Qualquer que concatene com NULL gerará NULL.

STRING || NULL -- NULL

Usos:

- Como valor default para campos que futuramente receberão valor.

- Valor default para campos que poderão ser sempre inexistentes.

Material retirado do endereço:
http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/Fun%C3%A7%C3%B5es_Internas/Matem%C3%A1ticas

Conversão Explícita de Tipos (CAST)

Conversão Explícita de Tipos (CAST)
CAST ( expressão AS tipo ) AS apelido; -- Sintaxe SQL ANSI


Outra forma:


Tipo ( expressão );


Exemplo:


SELECT DATE '10/05/2002' - DATE '10/05/2001'; -- Retorna a quantidade de dias - -entre as duas datas


Para este tipo de conversão devemos:

Usar float8 ao invés de double precision;

Usar entre aspas alguns tipos como interval, time e timestamp


Obs.: aplicações portáveis devem evitar esta forma de conversão e em seu lugar usar o CAST explicitamente.


A função CAST() é utilizada para converter explicitamente tipos de dados em outros.

SELECT CAST(2 AS double precision) ^ CAST(3 AS double precision) AS "exp";

SELECT ~ CAST('20' AS int8) AS "negativo"; - Retorna -21

SELECT round(CAST (4 AS numeric), 4); - Retorna 4.0000

SELECT substr(CAST (1234 AS text), 3);

SELECT 1 AS "real" UNION SELECT CAST('2.2' AS REAL);

O material foi retirado do endereço:

http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/Fun%C3%A7%C3%B5es_Internas/Convers%C3%A3o_de_Tipos

Continue visitando o site

sexta-feira, 21 de novembro de 2008

Starting today

Hello people who love computer languages, programming, software engineering, computers and technology. I am doing this blog to report, share and help people with my experiences in programming and the topics related. I have worked with programming since i was 15 years old when I have started High School. The first language I have studied was Clipper. After three years with Clipper and some of Delphi I stayed 2 years without programming. So I started Information Technology studies where I learned some languages like c, c++, java, pascal, delphi, php, asp, javascript, html... Of course I have learned the basic of any language but after I worked 4 years with Visual Fox Pro and 2 years with Delphi and I made some Home Pages with html, flash, php i got some "Know How" I guess. Therefore I have had experience in languages and algorithms I have many things i want to know and I feel that I need to share with you. I also will post questions because now i am working with C++ and its a wide language and you can make a lot of differents applications and get differents doubts.

I hope you all like this blog and put your question and code here and I will try to help you.
My name is Carlos Augusto from Brazil, I am 26 years old.

Links

Related Posts with Thumbnails