Post on 25-May-2020
Treinamento PostgreSQL - Aula 03
Eduardo Ferreira dos Santos
SparkGroup
Treinamento e Capacitação em Tecnologia
eduardo.edusantos@gmail.com
eduardosan.com
29 de Maio de 2013
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 1 / 38
Cronograma
Semana 1: 27 de Maio a 4 de Junho Administração de Dados
Semana 2: 5-11 de Junho Administração de Banco de Dados
Semana 3: 13-18 de Junho Alta disponibilidade
Semana 4: 19-24 de Junho Performance Tuning
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 2 / 38
Sumário
1 Consultas
Criando a base de dados
Junções (JOIN)
2 Funções e Operadores
Operadores de data
Tipo inet
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 3 / 38
Consultas
1 Consultas
Criando a base de dados
Junções (JOIN)
2 Funções e Operadores
Operadores de data
Tipo inet
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 4 / 38
Consultas
De�nindo a base de dados
Modelo da base de dados
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 5 / 38
Consultas Criando a base de dados
1 Consultas
Criando a base de dados
Junções (JOIN)
2 Funções e Operadores
Operadores de data
Tipo inet
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 6 / 38
Consultas Criando a base de dados
Relembrando a criação da base
Listing 1: Cria usuário, banco e SCHEMAPostgreSQL> c r e a t e u s e r u s u a r i oS h a l l the new r o l e be a s u p e r u s e r ? ( y/n ) nS h a l l the new r o l e be a l l owed to c r e a t e da t aba s e s ? ( y/n ) nS h a l l the new r o l e be a l l owed to c r e a t e more new r o l e s ? ( y/n ) n
PostgreSQL> c r ea t edb −O u s u a r i o pr ime i ro_bancoCREATE DATABASE
PostgreSQL> p sq l −U u s u a r i o pr ime i ro_banco
p s q l ( 9 . 1 . 9 )Type " help " f o r he l p .
p r ime i ro_banco=> CREATE SCHEMA us r_es co l a ;CREATE SCHEMA
pr ime i ro_banco=>\qqu i t
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 7 / 38
Consultas Criando a base de dados
Permissões
Listing 2: Ajusta permissões
vim / e t c / p o s t g r e s q l /9 .0/ main/pg_hba . con f
# A s e g u i n t e l i n h a :
l o c a l a l l p o s t g r e s i d e n t
# A l t e r a para f i c a r as s im :
l o c a l a l l p o s t g r e s i d e n tl o c a l pr ime i ro_banco u s u a r i o t r u s t
logout
# Como root , r e i n i c i e o banco
/ e t c / i n i t . d/ p o s t g r e s q l r e s t a r tsu − po s t g r e s
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 8 / 38
Consultas Criando a base de dados
Cria estrutura da base
Primeiro baixe os arquivos SQL:Estrutura da base: https://seacloud.cc/f/20677b5257/
Carga inicial de dados: https://seacloud.cc/f/20677b5257/
Em seguida execute os arquivos no banco de dados:
Listing 3: Cria basePostgreSQL> p sq l −U u s u a r i o −f c r i a−banco . s q l p r ime i ro_bancoBEGINSETp s q l : / tmp/ c r i a−banco . s q l : 1 2 : NOTA: CREATE TABLE / PRIMARY KEY á c r i a r í n d i c e
í i m p l c i t o " pk_aluno " na t a b e l a " aluno "
CREATE TABLEp s q l : / tmp/ c r i a−banco . s q l : 2 0 : NOTA: CREATE TABLE / PRIMARY KEY á c r i a r í n d i c e
í i m p l c i t o " p k _ d i s c i p l i n a " na t a b e l a " disciplina "
CREATE TABLEp s q l : / tmp/ c r i a−banco . s q l : 2 8 : NOTA: CREATE TABLE / PRIMARY KEY á c r i a r í n d i c e
í i m p l c i t o " p k _ a l u n o _ n a _ d i s c i p l i n a " na t a b e l a " a l u n o _ n a _ d i s c i p l i n a "
CREATE TABLEp s q l : / tmp/ c r i a−banco . s q l : 3 3 : NOTA: CREATE TABLE / PRIMARY KEY á c r i a r í n d i c e
í i m p l c i t o " pk_curso " na t a b e l a " curso "
CREATE TABLEp s q l : / tmp/ c r i a−banco . s q l : 4 0 : NOTA: CREATE TABLE / PRIMARY KEY á c r i a r í n d i c e
í i m p l c i t o " pk_conceito " na t a b e l a " g r a d e _ c o n c e i t o "
CREATE TABLEALTER TABLECOMMIT
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 9 / 38
Consultas Criando a base de dados
Carga inicial dos dados
Listing 4: Alimenta baseáííáííáííáííáííPostgreSQL> p sq l −U u s u a r i o −f c r i a−banco . s q l p r ime i ro_bancoBEGINSETINSERT 0 1INSERT 0 1INSERT 0 1INSERT 0 1INSERT 0 1INSERT 0 1INSERT 0 1( . . )INSERT 0 1INSERT 0 1INSERT 0 1COMMIT
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 10 / 38
Consultas Junções (JOIN)
1 Consultas
Criando a base de dados
Junções (JOIN)
2 Funções e Operadores
Operadores de data
Tipo inet
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 11 / 38
Consultas Junções (JOIN)
Junções (JOIN)
Junção de duas tabelas (reais ou derivadas) de acordo com as regras
do tipo particular de JOIN:
INNER JOIN A tabela resultado contém todos os resultados de ambas
as tabelas que satisfazam a condição fornecida;
OUTER JOIN A tabela resultado contém todas os resultados de
ambas as tabelas, ainda que a condição não seja
satisfeita;
CROSS JOIN Produto cartesiano dos campos das duas tabelas.
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 12 / 38
Consultas Junções (JOIN)
INNER JOIN
Listing 5: Primeiro exemplo de INNER JOIN
SELECT d . c o d_d i s c i p l i n a ,
d . d e s c r i c a o ,
c . cod_curso ,
d . c o d_d i s c i p l i n a_ r e q u i s i t o ,
c . d e s c r i c a o
FROM u s r_e s co l a . d i s c i p l i n a d
INNER JOIN u s r_e s co l a . cu r s o c ON d . cod_curso = c .
cod_curso
ORDER BY c . cod_curso ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 13 / 38
Consultas Junções (JOIN)
INNER JOIN
Listing 6: Segundo exemplo de INNER JOIN
SELECT d . d e s c r i c a o ,
c . cod_curso ,
c . d e s c r i c a o ,
a . ma t r i c u l a
FROM u s r_e s co l a . d i s c i p l i n a d
INNER JOIN u s r_e s co l a . cu r s o c ON d . cod_curso = c .
cod_curso
INNER JOIN u s r_e s co l a . a l u no_na_d i s c i p l i n a a ON d .
c o d_d i s c i p l i n a = a . c o d_d i s c i p l i n a
ORDER BY c . cod_curso ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 14 / 38
Consultas Junções (JOIN)
INNER JOIN
Listing 7: Terceiro exemplo de INNER JOIN
SELECT d . d e s c r i c a o ,
c . cod_curso ,
c . d e s c r i c a o ,
a . ma t r i c u l a ,
a l . nome
FROM u s r_e s co l a . d i s c i p l i n a d
INNER JOIN u s r_e s co l a . cu r s o c ON d . cod_curso = c .
cod_curso
INNER JOIN u s r_e s co l a . a l u no_na_d i s c i p l i n a a ON d .
c o d_d i s c i p l i n a = a . c o d_d i s c i p l i n a
INNER JOIN u s r_e s co l a . a l uno a l ON a l . ma t r i c u l a = a .
ma t r i c u l a
ORDER BY c . cod_curso ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 15 / 38
Consultas Junções (JOIN)
INNER JOIN
Listing 8: INNER JOIN com �ltro
SELECT d . d e s c r i c a o ,
c . cod_curso ,
c . d e s c r i c a o ,
a . ma t r i c u l a ,
a l . nome
FROM u s r_e s co l a . d i s c i p l i n a d
INNER JOIN u s r_e s co l a . cu r s o c ON d . cod_curso = c .
cod_curso
INNER JOIN u s r_e s co l a . a l u no_na_d i s c i p l i n a a ON d .
c o d_d i s c i p l i n a = a . c o d_d i s c i p l i n a
INNER JOIN u s r_e s co l a . a l uno a l ON a l . ma t r i c u l a = a .
ma t r i c u l a
WHERE c . cod_curso = 'MAT' ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 16 / 38
Consultas Junções (JOIN)
Considerações sobre performance
Carregue o PGAdmin1 e execute a consulta no banco de dados;
Execute a consulta no modo Analyze;
O que foi �custoso� para a consulta?
Aplique o �ltro utilizando o exemplo 8. O que mudou?
Utilize o comando EXPLAIN ANALYZE;
Copie e cole os resultados no site http://explain.depesz.com/
Quais os procedimentos que mais consomem recursos do banco de
dados?
1Ferramenta de administração para bases de dados PostgreSQL:
http://www.pgadmin.org/Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 17 / 38
Consultas Junções (JOIN)
Considerações sobre performance
Carregue o PGAdmin1 e execute a consulta no banco de dados;
Execute a consulta no modo Analyze;
O que foi �custoso� para a consulta?
Aplique o �ltro utilizando o exemplo 8. O que mudou?
Utilize o comando EXPLAIN ANALYZE;
Copie e cole os resultados no site http://explain.depesz.com/
Quais os procedimentos que mais consomem recursos do banco de
dados?
1Ferramenta de administração para bases de dados PostgreSQL:
http://www.pgadmin.org/Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 17 / 38
Consultas Junções (JOIN)
Considerações sobre performance
Carregue o PGAdmin1 e execute a consulta no banco de dados;
Execute a consulta no modo Analyze;
O que foi �custoso� para a consulta?
Aplique o �ltro utilizando o exemplo 8. O que mudou?
Utilize o comando EXPLAIN ANALYZE;
Copie e cole os resultados no site http://explain.depesz.com/
Quais os procedimentos que mais consomem recursos do banco de
dados?
1Ferramenta de administração para bases de dados PostgreSQL:
http://www.pgadmin.org/Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 17 / 38
Consultas Junções (JOIN)
OUTER JOIN
Listing 9: Exemplo de OUTER JOIN
SELECT d . c o d_d i s c i p l i n a ,
d . d e s c r i c a o ,
c . cod_curso ,
d . c o d_d i s c i p l i n a_ r e q u i s i t o
FROM u s r_e s co l a . d i s c i p l i n a d
FULL OUTER JOIN u s r_e s co l a . cu r s o c ON d . cod_curso =
c . cod_curso ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 18 / 38
Consultas Junções (JOIN)
OUTER JOIN
Listing 10: Exemplo de OUTER JOIN com �ltro
SELECT d . c o d_d i s c i p l i n a ,
d . d e s c r i c a o ,
d . c o d_d i s c i p l i n a_ r e q u i s i t o ,
c . cod_curso
FROM u s r_e s co l a . d i s c i p l i n a d
FULL OUTER JOIN u s r_e s co l a . cu r s o c ON d . cod_curso =
c . cod_curso
WHERE c . cod_curso = 'DAN' ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 19 / 38
Consultas Junções (JOIN)
LEFT OUTER JOIN
Listing 11: Exemplo de LEFT OUTER JOIN
SELECT d . c o d_d i s c i p l i n a ,
d . d e s c r i c a o ,
c . cod_curso ,
d . c o d_d i s c i p l i n a_ r e q u i s i t o
FROM u s r_e s co l a . d i s c i p l i n a d
LEFT OUTER JOIN u s r_e s co l a . cu r s o c ON d . cod_curso =
c . cod_curso ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 20 / 38
Consultas Junções (JOIN)
LEFT OUTER JOIN
Listing 12: Exemplo de LEFT OUTER JOIN com �ltro
SELECT d . c o d_d i s c i p l i n a ,
d . d e s c r i c a o ,
c . cod_curso ,
d . c o d_d i s c i p l i n a_ r e q u i s i t o
FROM u s r_e s co l a . d i s c i p l i n a d
LEFT JOIN u s r_e s co l a . cu r s o c ON d . cod_curso = c .
cod_curso
WHERE c . cod_curso = 'DAN' ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 21 / 38
Consultas Junções (JOIN)
Exercício
Considerando o modelo da �gura 5, construa uma consulta que traga a
lista de alunos e a lista de disciplinas, incluindo os alunos que não estão
matriculados em nenhuma disciplina.
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 22 / 38
Consultas Junções (JOIN)
Solução
Listing 13: Exercício 1
SELECT a . ma t r i c u l a AS m1,
a . nome ,
a l . ma t r i c u l a AS m2
FROM u s r_e s co l a . a l uno a
LEFT OUTER JOIN u s r_e s co l a . a l u no_na_d i s c i p l i n a a l ONa . ma t r i c u l a = a l . ma t r i c u l a ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 23 / 38
Consultas Junções (JOIN)
Exercício
Adicione a informação do nome da disciplina ao exemplo anterior
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 24 / 38
Consultas Junções (JOIN)
Solução
Listing 14: Exercício 2
SELECT a . ma t r i c u l a AS m1,
a . nome ,
a l . ma t r i c u l a AS m2,
d . d e s c r i c a o ,
a l . c o d_d i s c i p l i n a
FROM u s r_e s co l a . a l uno a
LEFT OUTER JOIN u s r_e s co l a . a l u no_na_d i s c i p l i n a a l ONa . ma t r i c u l a = a l . ma t r i c u l a
LEFT OUTER JOIN u s r_e s co l a . d i s c i p l i n a d ON a l .
c o d_d i s c i p l i n a = d . c o d_d i s c i p l i n a
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 25 / 38
Consultas Junções (JOIN)
Exercício
Troque o segundo LEFT OUTER JOIN por INNER JOIN e veja o que
acontece.
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 26 / 38
Consultas Junções (JOIN)
Solução
Listing 15: Exercício 3
SELECT a . ma t r i c u l a AS m1,
a . nome ,
a l . ma t r i c u l a AS m2,
d . d e s c r i c a o ,
a l . c o d_d i s c i p l i n a
FROM u s r_e s co l a . a l uno a
LEFT OUTER JOIN u s r_e s co l a . a l u no_na_d i s c i p l i n a a l ONa . ma t r i c u l a = a l . ma t r i c u l a
INNER JOIN u s r_e s co l a . d i s c i p l i n a d ON a l .
c o d_d i s c i p l i n a = d . c o d_d i s c i p l i n a
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 27 / 38
Funções e Operadores
1 Consultas
Criando a base de dados
Junções (JOIN)
2 Funções e Operadores
Operadores de data
Tipo inet
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 28 / 38
Funções e Operadores
Introdução
Objetivos:
Realizar operações com tipos de dados diferentes;Comparar valores em diferentes formatos;Conversão de dados;Operadores complexos e dados abstratos.
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 29 / 38
Funções e Operadores Operadores de data
1 Consultas
Criando a base de dados
Junções (JOIN)
2 Funções e Operadores
Operadores de data
Tipo inet
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 30 / 38
Funções e Operadores Operadores de data
Operadores de data
Listing 16: Conversão de dados
SELECT c o d_d i s c i p l i n a , to_char ( pe r i odo , 'MM/YYYY' )
as mes
FROM u s r_e s co l a . a l u no_na_d i s c i p l i n a ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 31 / 38
Funções e Operadores Operadores de data
Operadores de data
Listing 17: Operadores de data
SELECT c o d_d i s c i p l i n a , age ( p e r i o do ) as mes
FROM u s r_e s co l a . a l u no_na_d i s c i p l i n a ;
SELECT c o d_d i s c i p l i n a , age (now ( ) , p e r i o do ) as mes
FROM u s r_e s co l a . a l u no_na_d i s c i p l i n a ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 32 / 38
Funções e Operadores Operadores de data
Operadores de data
Listing 18: Funções de data
SELECT c lock_t imestamp ( ) ,
current_date ,
current_timestamp ,
l o c a l t im e ,
l o ca l t ime s t amp ,
now ( ) ,
statement_timestamp ( ) ,
t imeo fday ( ) ,
t r an sac t i on_t imes tamp ( ) ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 33 / 38
Funções e Operadores Tipo inet
1 Consultas
Criando a base de dados
Junções (JOIN)
2 Funções e Operadores
Operadores de data
Tipo inet
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 34 / 38
Funções e Operadores Tipo inet
Adiciona tipo
Listing 19: Insere tipo inetBEGIN ;
ALTER TABLE u s r_e s co l a . a lunoADD COLUMN endereco_ip i n e t ;
UPDATE u s r_e s co l a . a lunoSET endereco_ip = ' 192.168.1.1 '
WHERE ma t r i c u l a = '1 ' ;
UPDATE u s r_e s co l a . a lunoSET endereco_ip = ' 192.168.1.2 '
WHERE ma t r i c u l a = '2 ' ;
UPDATE u s r_e s co l a . a lunoSET endereco_ip = ' 192.168.1.3 '
WHERE ma t r i c u l a = '3 ' ;
UPDATE u s r_e s co l a . a lunoSET endereco_ip = ' 1 9 2 . 1 6 8 . 1 . 1 0 0 '
WHERE ma t r i c u l a = '4 ' ;
UPDATE u s r_e s co l a . a lunoSET endereco_ip = ' 192.168.2.1 '
WHERE ma t r i c u l a = '5 ' ;
END ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 35 / 38
Funções e Operadores Tipo inet
Funções
Listing 20: Funções básicas
SELECT abbrev ( endereco_ip ) ,
b r o adca s t ( endereco_ip ) ,
f am i l y ( endereco_ip ) ,
ho s t ( endereco_ip ) ,
netmask ( endereco_ip )
FROM u s r_e s co l a . a l uno ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 36 / 38
Funções e Operadores Tipo inet
Operadores
Listing 21: Operadores para endereço IP
SELECT mat r i c u l a ,
nome
FROM u s r_e s co l a . a l uno
WHERE endereco_ip = '192.168.1.1' : : i n e t ;
SELECT mat r i c u l a ,
nome
FROM u s r_e s co l a . a l uno
WHERE endereco_ip >= '192.168.2.1' : : i n e t ;
SELECT mat r i c u l a ,
nome
FROM u s r_e s co l a . a l uno
WHERE endereco_ip < '192.168.2.1' : : i n e t ;
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 37 / 38
Funções e Operadores Tipo inet
Contato
Eduardo Ferreira dos Santos
Sparkgroup
Lightbase Consultoria em Software Público
eduardo.santos@lightbase.com.br
eduardo.edusantos@gmail.com
www.postgresql.org.br
www.eduardosan.com
+55 61 3347-1949
Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com)Treinamento PostgreSQL - Aula 03 29 de Maio de 2013 38 / 38