Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação...

30

Transcript of Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação...

Page 1: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Treinamento PostgreSQL - Aula 02

Eduardo Ferreira dos Santos

SparkGroup

Treinamento e Capacitação em Tecnologia

[email protected]

eduardosan.com

28 de Maio de 2013

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 1 / 25

Page 2: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sumário

1 Sintaxe

2 De�nição de dados

3 Manipulação de dados

4 Consultas

5 Referências

6 Tipos de dado

7 Funções e operadores

8 Conversões de tipos

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 2 / 25

Page 3: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

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 [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 3 / 25

Page 4: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Linguagem SQL

Sintaxe;

De�nição de dados;

Manipulação de dados;

Consultas;

Tipos de dado;

Funções e operadores;

Conversões de tipos.

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 4 / 25

Page 5: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

1 Sintaxe

2 De�nição de dados

3 Manipulação de dados

4 Consultas

5 Referências

6 Tipos de dado

7 Funções e operadores

8 Conversões de tipos

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 5 / 25

Page 6: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Histórico

Contexto: criação de bancos de dados relacionais e formas de acessaros dados;

IBM desenvolve a SEQUEL - Structured English Query Language;

Divisão em outras versões da linguagem (especialmente Oracle);

Padronização pelo ANSI (American National Standards Institute) em1986:

SQLConjunto de facilidades, de�nições, recursos de acesso e manutenção de

dados [Gonzaga, 2007]

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 6 / 25

Page 7: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Estrutura Léxica

SQL é uma sequência de comandos, terminados com ;

Comentários podem ser inseridos com o símbolo - -

Identi�cadores e palavras-chave:

UPDATE MY_TABLE SET A = 5 ;

A linguagem SQL não é case sensitive

uPDaTE my_TabLE SeT a = 5 ;

Utiliza-se caixa alta para palavras-chave e caixa baixa paraidenti�cadores

UPDATE my_table SET a = 5 ;

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 7 / 25

Page 8: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Estrutura Léxica

SQL é uma sequência de comandos, terminados com ;

Comentários podem ser inseridos com o símbolo - -

Identi�cadores e palavras-chave:

UPDATE MY_TABLE SET A = 5 ;

A linguagem SQL não é case sensitive

uPDaTE my_TabLE SeT a = 5 ;

Utiliza-se caixa alta para palavras-chave e caixa baixa paraidenti�cadores

UPDATE my_table SET a = 5 ;

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 7 / 25

Page 9: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Estrutura Léxica

SQL é uma sequência de comandos, terminados com ;

Comentários podem ser inseridos com o símbolo - -

Identi�cadores e palavras-chave:

UPDATE MY_TABLE SET A = 5 ;

A linguagem SQL não é case sensitive

uPDaTE my_TabLE SeT a = 5 ;

Utiliza-se caixa alta para palavras-chave e caixa baixa paraidenti�cadores

UPDATE my_table SET a = 5 ;

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 7 / 25

Page 10: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Estrutura Léxica

SQL é uma sequência de comandos, terminados com ;

Comentários podem ser inseridos com o símbolo - -

Identi�cadores e palavras-chave:

UPDATE MY_TABLE SET A = 5 ;

A linguagem SQL não é case sensitive

uPDaTE my_TabLE SeT a = 5 ;

Utiliza-se caixa alta para palavras-chave e caixa baixa paraidenti�cadores

UPDATE my_table SET a = 5 ;

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 7 / 25

Page 11: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Estrutura Léxica

Utilização de aspas duplas (") força utilização como identi�cador

UPDATE "my_table" SET "a" = 5 ;

Utilize aspas simples (') para identi�car strings;

UPDATE "my_table" SET "a" = 'teste' ;

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 8 / 25

Page 12: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Estrutura Léxica

Utilização de aspas duplas (") força utilização como identi�cador

UPDATE "my_table" SET "a" = 5 ;

Utilize aspas simples (') para identi�car strings;

UPDATE "my_table" SET "a" = 'teste' ;

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 8 / 25

Page 13: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Operadores

Operadores

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 9 / 25

Page 14: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Caracteres Especiais

Dólar ($): início da declaração de uma função;

Parênteses (()): agrupar expressões;

Colchetes ([]): identi�cação de arrays;

Vírgulas (,): separar os elementos de uma lista;

Ponto e vírgula (;): �nalizar um comando SQL;

Asterisco (*): todos os campos de uma coluna ou valores compostos;

Ponto (.): utilizado em constantes numéricas e para separar nome deschema, tabelas e colunas.

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 10 / 25

Page 15: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Sintaxe

Expressões de valor [PostgreSQL, 2013]

Um valor constante ou literal;

Uma referência a coluna;

Uma referência a parâmetro posicional, no corpo da de�nição defunção ou de comando preparado;

Uma expressão de índice;

Uma expressão de seleção de campo;

Uma chamada de operador;

Uma chamada de função;

Uma expressão de agregação;

Uma conversão de tipo;

Uma subconsulta escalar;

Um construtor de matriz;

Um construtor de linha;

Outra expressão de valor entre parênteses, útil para agruparsubexpressões e mudar precedências.

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 11 / 25

Page 16: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

De�nição de dados

1 Sintaxe

2 De�nição de dados

3 Manipulação de dados

4 Consultas

5 Referências

6 Tipos de dado

7 Funções e operadores

8 Conversões de tipos

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 12 / 25

Page 17: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

De�nição de dados

A interface psql

Comandos e ajuda;

Conceitos;

Operações na linha de comando;

Acesso ao banco.

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 13 / 25

Page 18: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

De�nição de dados

Criando usuário e banco

PostgreSQL> c r e a t edb pr ime i ro_bancoCREATE DATABASE

PostgreSQL> dropdb pr ime i ro_bancoDROP DATABASE

PostgreSQL> 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 e a t edb −O u s u a r i o pr ime i ro_bancoCREATE DATABASE

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 14 / 25

Page 19: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

De�nição de dados

Acessando o banco de dados

PostgreSQL> p s q l −U u s u a r i o pr ime i ro_banco

p s q l ( 9 . 1 . 9 )Type "help" fo r he l p .

p r ime i ro_banco=>

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 15 / 25

Page 20: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

De�nição de dados

Schemas

Organização lógica de objetos;

Permitem objetos de mesmo nome no mesmo banco de dados.

CREATE SCHEMA rh ;

CREATE USER g i l s o n ;

CREATE SCHEMA t e c n o l o g i a AUTHORIZATION g i l s o n ;

CREATE USER b e a t r i z ;

CREATE SCHEMA AUTHORIZATION b e a t r i z ;

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 16 / 25

Page 21: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

De�nição de dados

Administração de Schemas

−− E l im inando dados de t e s t e

DROP SCHEMA rh ;DROP SCHEMA t e c n o l o g i a ;DROP USER g i l s o n ;DROP SCHEMA b e a t r i z ;DROP USER b e a t r i z ;

−− Cr i a nosso schema

CREATE schema us r_e s co l a AUTHORIZATION u s u a r i o ;

−− Busca de schemas

SHOW search_path ;

SET search_path TO us r_e s co l a ;

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 17 / 25

Page 22: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

De�nição de dados

Tabelas

−− Cr i a t a b e l a s do exemplo

CREATE TABLE u s r_e s co l a . a l uno (ma t r i c u l a char (5 ) const ra int pk_aluno primary

key ,nome varchar (40) not nu l l ,ende r eco varchar (60) ,b a i r r o varchar (30) ,dt_nasc imento date ,s exo char (1 )

) ;

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 18 / 25

Page 23: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Manipulação de dados

1 Sintaxe

2 De�nição de dados

3 Manipulação de dados

4 Consultas

5 Referências

6 Tipos de dado

7 Funções e operadores

8 Conversões de tipos

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 19 / 25

Page 24: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Consultas

1 Sintaxe

2 De�nição de dados

3 Manipulação de dados

4 Consultas

5 Referências

6 Tipos de dado

7 Funções e operadores

8 Conversões de tipos

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 20 / 25

Page 25: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Referências

1 Sintaxe

2 De�nição de dados

3 Manipulação de dados

4 Consultas

5 Referências

6 Tipos de dado

7 Funções e operadores

8 Conversões de tipos

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 21 / 25

Page 26: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Tipos de dado

1 Sintaxe

2 De�nição de dados

3 Manipulação de dados

4 Consultas

5 Referências

6 Tipos de dado

7 Funções e operadores

8 Conversões de tipos

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 22 / 25

Page 27: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Funções e operadores

1 Sintaxe

2 De�nição de dados

3 Manipulação de dados

4 Consultas

5 Referências

6 Tipos de dado

7 Funções e operadores

8 Conversões de tipos

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 23 / 25

Page 28: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Conversões de tipos

1 Sintaxe

2 De�nição de dados

3 Manipulação de dados

4 Consultas

5 Referências

6 Tipos de dado

7 Funções e operadores

8 Conversões de tipos

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 24 / 25

Page 29: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Conversões de tipos

Gonzaga, J. L. (2007).Dominando o PostgreSQL.Ciência Moderna.

PostgreSQL, C. (2013).Expressões de valor.http://www.postgresql.org/docs/9.2/static/sql-expressions.htmlAcessado em 27/05/2013.

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 25 / 25

Page 30: Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação de dados 4 Consultas 5 Referências 6 Tipos de dado 7 Funções e operadores 8 Conversões

Conversões de tipos

Contato

Eduardo Ferreira dos SantosSparkgroup

Lightbase Consultoria em Software Público

[email protected]@gmail.com

www.postgresql.org.brwww.eduardosan.com

+55 61 3347-1949

Eduardo Ferreira dos Santos (SparkGroup Treinamento e Capacitação em Tecnologia [email protected] eduardosan.com)Treinamento PostgreSQL - Aula 02 28 de Maio de 2013 25 / 25