Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação...
Transcript of Treinamento PostgreSQL - Aula 02 - Eduardo San¡rio 1 Sintaxe 2 De nição de dados 3 Manipulação...
Treinamento PostgreSQL - Aula 02
Eduardo Ferreira dos Santos
SparkGroup
Treinamento e Capacitação em Tecnologia
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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