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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 1 / edua 25 Sumário 1 Sintaxe 2 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 2 / edua 25 Cronograma Semana Semana Semana Semana 1: 2: 3: 4: 27 de Maio a 4 de Junho Administração de Dados 5-11 de Junho Administração de Banco de Dados 13-18 de Junho Alta disponibilidade 19-24 de Junho Performance Tuning Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 3 / edua 25 Linguagem SQL Sintaxe; Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 4 / edua 25 Sintaxe 1 Sintaxe 2 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 5 / edua 25 Sintaxe Histórico Contexto: criação de bancos de dados relacionais e formas de acessar os 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) em 1986: SQL Conjunto de facilidades, denições, recursos de acesso e manutenção de dados [Gonzaga, 2007] Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 6 / edua 25 Sintaxe Estrutura Léxica SQL é uma sequência de comandos, terminados com ; Comentários podem ser inseridos com o símbolo - Identicadores e palavras-chave: UPDATE MY_TABLE SET A = 5; Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 7 / edua 25 Sintaxe Estrutura Léxica SQL é uma sequência de comandos, terminados com ; Comentários podem ser inseridos com o símbolo - Identicadores e palavras-chave: UPDATE MY_TABLE SET A = 5; A linguagem SQL não é uPDaTE my_TabLE SeT case sensitive a = 5; Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 7 / edua 25 Sintaxe Estrutura Léxica SQL é uma sequência de comandos, terminados com ; Comentários podem ser inseridos com o símbolo - Identicadores e palavras-chave: UPDATE MY_TABLE SET A = 5; A linguagem SQL não é uPDaTE my_TabLE SeT case sensitive a = 5; Utiliza-se caixa alta para palavras-chave e caixa baixa para identicadores UPDATE my_table SET a = 5; Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 7 / edua 25 Sintaxe Estrutura Léxica SQL é uma sequência de comandos, terminados com ; Comentários podem ser inseridos com o símbolo - Identicadores e palavras-chave: UPDATE MY_TABLE SET A = 5; A linguagem SQL não é uPDaTE my_TabLE SeT case sensitive a = 5; Utiliza-se caixa alta para palavras-chave e caixa baixa para identicadores UPDATE my_table SET a = 5; Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 7 / edua 25 Sintaxe Estrutura Léxica Utilização de aspas duplas (") força utilização como identicador UPDATE " my_table " SET "a" = 5 ; Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 8 / edua 25 Sintaxe Estrutura Léxica Utilização de aspas duplas (") força utilização como identicador UPDATE " my_table " SET "a" = 5 ; Utilize aspas simples (') para identicar strings; UPDATE " my_table " SET "a" = 'teste ' ; Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 8 / edua 25 Sintaxe Operadores Operadores Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 9 / edua 25 Sintaxe Caracteres Especiais Dólar ($): início da declaração de uma função; Parênteses (()): agrupar expressões; Colchetes ([]): identicaçã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 de schema, tabelas e colunas. Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 10 / edua 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 denição de funçã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 agrupar subexpressões e mudar precedências. Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 11 / edua 25 Denição de dados 1 Sintaxe 2 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 12 / edua 25 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 13 / edua 25 Denição de dados Criando usuário e banco PostgreSQL> c r e a t e d b p r i m e i r o _ b a n c o CREATE DATABASE PostgreSQL> dropdb p r i m e i r o _ b a n c o DROP DATABASE PostgreSQL> c r e a t e u s e r u s u a r i o S h a l l t h e new r o l e be a s u p e r u s e r ? ( y /n ) n S h a l l t h e new r o l e be a l l o w e d t o c r e a t e d a t a b a s e s ? ( y /n ) n S h a l l t h e new r o l e be a l l o w e d t o c r e a t e more new r o l e s ? ( y /n ) n PostgreSQL> c r e a t e d b −O u s u a r i o p r i m e i r o _ b a n c o CREATE DATABASE Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 14 / edua 25 Denição de dados Acessando o banco de dados PostgreSQL> p s q l −U u s u a r i o p r i m e i r o _ b a n c o psql (9.1.9) Type "help" for h e l p . p r i m e i r o _ b a n c o=> Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 15 / edua 25 Denição de dados Schemas Organização lógica de objetos; Permitem objetos de mesmo nome no mesmo banco de dados. CREATE SCHEMA r h ; 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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 16 / edua 25 Denição de dados Administração de Schemas −− Eliminando dados de t e s t e −− C r i a nosso schema DROP SCHEMA r h ; 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 ; CREATE −− schema u s r _ e s c o l a AUTHORIZATION u s u a r i o ; Busca de schemas SHOW s e a r c h _ p a t h ; SET s e a r c h _ p a t h TO u s r _ e s c o l a ; Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 17 / edua 25 Denição de dados Tabelas −− C r i a t a b e l a s do exemplo CREATE TABLE ); usr_escola . aluno ( matricula char ( 5 ) constraint pk_aluno key , nome varchar ( 4 0 ) not null , endereco varchar ( 6 0 ) , bairro varchar ( 3 0 ) , dt_nascimento date , sexo char ( 1 ) primary Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 18 / edua 25 Manipulação de dados 1 Sintaxe 2 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 19 / edua 25 Consultas 1 Sintaxe 2 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 20 / edua 25 Referências 1 Sintaxe 2 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 21 / edua 25 Tipos de dado 1 Sintaxe 2 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 22 / edua 25 Funções e operadores 1 Sintaxe 2 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 23 / edua 25 Conversões de tipos 1 Sintaxe 2 Deniçã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 Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 24 / edua 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.html Acessado em 27/05/2013. Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 25 / edua 25 Conversões de tipos Contato Eduardo Ferreira dos Santos Sparkgroup Lightbase Consultoria em Software Público [email protected] [email protected] www.postgresql.org.br www.eduardosan.com +55 61 3347-1949 Eduardo Ferreira dos Santos (SparkGroup Treinamento Treinamento ePostgreSQL Capacitação- Aula em Tecnologia 02 [email protected] 28 de Maio de 2013 25 / edua 25