Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Curso de PostgreSQL: Um pouco Além dos Comandos

3.138 Aufrufe

Veröffentlicht am

Minicurso de PostgreSQL, ministrado durante o evento Erin2013, explicando a criação de bancos de dados, triggers, procedures, views e comentando um pouco sobre melhoria de desempenho. Tudo com exercícios de Fixação

Veröffentlicht in: Daten & Analysen
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Curso de PostgreSQL: Um pouco Além dos Comandos

  1. 1. Introdução ao PostgreSQL: um pouco além dos comandos MARCOS THOMAZ DA SILVA
  2. 2. Breve Histórico Derivado do pacote POSTGRES escrito na Universidade da Califórnia em Berkeley; Implementação do POSTGRES começou em 1986; Em 1994 foi adicionado um interpretador SQL ao Postgres (Postgres95, antes usava PostQUEL); Deu origem ao Informix da IBM; Em 1996 recebeu o nome de PostgreSQL, ganhando diversos outros recursos.
  3. 3. No Brasil Caixa, BB e Serpro; Comunidade PGBR; Timbira e EnterpriseDB;
  4. 4. Recursos Sub-Consultas; Integridade Referencial; Linguagem Procedural para Functions e Procedures pl/pgsql, pl/python, pl/perl, pl/java, pl/pascal, pl/ruby, pl/C, pl/R Gatilhos (Triggers); Tipos Definidos Por Usuário; Esquemas (schemas); Áreas de Armazenamento (Tablespaces); Savepoints; Dados geoespaciais; Herança de tabelas;
  5. 5. Ambientes de Gerenciamento Modo texto: psql; Modo gráfico: pgAdmin III; EMS PostgreSQL Manager; Acqua Studio; Web: phpPgAdmin;
  6. 6. Criando o banco de dados CREATE DATABASE <Nome_Do_Banco> [ WITH [ OWNER = <Usuario_Criador_Banco> ] [TEMPLATE = <Template> ] [ TABLESPACE = <table_space> [ ENCODING = <Encoding> ] [ LC_COLLATE = <collate> ] [ LC_CTYPE = <collate> ] ]; Exemplo: CREATE DATABASE testeerin WITH OWNER=curso_erin TEMPLATE = template0 TABLESPACE = pg_default ENCODING = 'UTF8' LC_COLLATE = 'Portuguese_Brazil.1252' LC_CTYPE = 'Portuguese_Brazil.1252';
  7. 7. Criação de Usuários (Role’s) Porque criar: Segurança (mesma regra do root); Separação de ambientes; Controle de acesso e execução; O DBA pode realmente gerenciar o banco.
  8. 8. Criação de Usuários (Role’s) Comando: CREATE ROLE <Seu_Usuario> LOGIN PASSWORD <Sua_Senha> [SUPERUSER] [INHERIT] [CREATEDB/NOCREATEDB] [CREATEROLE/NOCREATEROLE] [REPLICATION/NOREPLICATION]; Exemplo: CREATE ROLE cursopgerin LOGIN PASSWORD ‘cursopgerin’ SUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION;
  9. 9. Exercício de Fixação 01 Criar um banco de dados com o template0, encoding UTF8, collate (LC_CTYPE e LC_COLLATE) Portuguese_Brazil.1252, cujo nome seja erin_<seunome>. O usuário (role) criador do banco deve ter o seu nome (apenas o primeiro nome), deve ser superusuário, poder criar outros usuários, criar bancos, mas não deve poder realizar replicação. A senha fica a sua escolha.
  10. 10. Tipos de Dados char / varchar (character / character varying); text; integer, smallint, bigint (2, 4 e 8 bytes respectivamente); decimal, numeric, real e money; serial; date, time, timestamp (with/without timezone); boolean; bytea, lo; array; line, point, polygon; json, macaddr;
  11. 11. Tipo de dados – cada um na sua... Como armazenar... Datas de Nascimento? Nomes de pessoas? Textos variáveis (observações)? Horários? Valores monetários? Número de CPF? Números de Telefone?
  12. 12. Criação de Tabelas O que são? Excel???? Comando básico... CREATE TABLE <tabela> ( <campo01> <tipo> [<requerido>] [DEFAULT <def>], <campo02> <tipo> [<requerido>] [DEFAULT <def>], [CONSTRAINT <nome_constraint> <tipo_constraint> ( <campo_constraint> )] ); Exemplo: CREATE TABLE categorias( id serial NOT NULL, descricao character varying(80), CONSTRAINT categorias_pk PRIMARY KEY (id) ) WITH (OIDS=TRUE);
  13. 13. Exercício de Fixação 02 No banco criado no exercício 01, crie uma tabela chamada contatos com os seguintes campos: CAMPO TIPO NOME CHARACTER VARYING(80) CIDADE CHARACTER VARYING(80) TELEFONE CHARACTER VARYING(20) VL_ULT_COMPRA NUMERIC(10,2) VL_DEBITO MONEY
  14. 14. Inserindo informações nas tabelas A instrução utilizada para inserir informações é INSERT Permite adicionar (quase) qualquer tipo de dado dentro de uma tabela; Comando: INSERT INTO <Tabela> [ (Campo1, Campo2[, Campo3] ) VALUES (<Valor1>,<Valor2>[,<Valor3>]) [ RETURNING <campo> ]; Exemplo INSERT INTO categorias (descricao) VALUES (‘Cerâmicas’); Ou INSERT INTO categorias (descricao) VALUES (‘Cerâmicas’),(‘Roupas’),(‘Frios’),(‘Ferramentas’)
  15. 15. Exercício de Fixação 03 Usando como base o exercício anterior, insira os seguintes registros na tabela criada: NOME CIDADE VL_ULT_COMPRA VL_DEBITO FULANO RIO BRANCO 100 100 CICLANO RBCO 80 80 BELTRANO RIO BRANCO-AC 120.50 20.50 NOCEGO RIO BRANCO-AC 30 60 NOCEGO RIO BRANCO-AC 120 120 Além destes registros, insira mais 5 registros nessa tabela, com o VL_DEBITO igual a 0.
  16. 16. Removendo Registros das Tabelas Comando DELETE é utilizado; Comando: DELETE FROM <Tabela> [ WHERE <Condicao>] Exemplo DELETE FROM categorias; DELETE FROM contatos WHERE VL_DEBITO < 10; DELETE FROM clientes WHERE nome like ‘FULANO*’
  17. 17. Exercício de Fixação 04 Usando como base a tabela utilizada no EXERCÍCIO 03, Resolva a seguinte situação: O dono da loja quer fazer uma limpeza em seu banco de dados e quer remover todos os registros de contatos que não possuam débitos. Que comando deve ser executado??? delete from Contatos where vl_debito=‘0’ delete from Contatos where vl_debito=0::money
  18. 18. Constraints / Restrições PRIMARY KEY – Chave primária; UNIQUE KEY – Chave Única; FOREIGN KEY – Chave Estrangeira; CHECK – Validação; QUAIS AS DIFERENÇAS ENTRE CHAVE PRIMÁRIA E CHAVE ÚNICA?
  19. 19. Alterando Estrutura de Uma Tabela Mudanças Gerais na Tabela: Necessidade de Acréscimo de Campos; Necessidade de Retirada de Campos; Mudança de Tipos de Campos; Acréscimo de Constraints (Primary Key, Foreign Key, Unique Key, Check);
  20. 20. Alterando Estrutura de Uma tabela Exemplos: ALTER TABLE ct DROP COLUMN tipo; ALTER TABLE ct ADD COLUMN testes character(1); ALTER TABLE ct ADD CONSTRAINT ct_chk2 CHECK (testes = 'S' or testes='N'); ALTER TABLE ct ALTER COLUMN valor TYPE money; ALTER TABLE ct RENAME vlr TO valor;
  21. 21. Estrutura de Tabela – Testando... A estrutura apresentada no Exercício 02 atende aos dados que persistem nela?? Selecione todos os registros que correspondam a Rio Branco? Existem usuários duplicados na tabela? Os valores do campo cidade estão corretos? São confiáveis? Na tabela existem 2 contatos chamados NOCEGO, como ficaria para excluir apenas um deles? Execute os seguintes comandos na tabela e veja o que ocorre: insert into contatos (nome, VL_DEBITO) values (‘Teste 01’,’1.250,25’);
  22. 22. Exercício de Fixação 05 Modifique a tabela usada no exercício anterior, realizando as seguintes operações: Adicionando uma coluna para armazenar o estado (UF); Adicionar um campo para armazenar a data de nascimento; Adicionar um campo do tipo SERIAL com o nome ID e torná-lo chave primária; Colocar o campo nome como Chave Única (realizando os ajustes necessários); Modifique o campo VL_ULT_COMPRA para o tipo MONEY;
  23. 23. Alterando Registros de Uma Tabela Comando: UPDATE <Tabela> SET <campo1>=<valor_campo_1> [WHERE <condicao>] Exemplos: UPDATE categorias SET observacao=NULL; UPDATE contatos SET VL_DEBITO=0 WHERE VL_DEBITO < 10; UPDATE clientes SET nome=‘FULANO DE TAL’ WHERE nome like ‘FULANO*’; UPDATE clientes SET VL_DEBITO=VL_DEBITO*1.1 WHERE VL_DEBITO > 100 AND VL_ULT_COMPRA > 80;
  24. 24. Exercício de Fixação 06 Com base na tabela existente, altere os registros existentes, informando as datas de nascimento dos contatos; Adicione um juros de 20% para todos os contatos com VL_DEBITO maior ou igual a 100; Adicione um juros de 10% para todos os contatos com VL_DEBITO entre 60 e 100; Adicione um juros de 5% para todos com valores menores que 60; Crie uma tabela chamada cidades com os campos id (serial), nome (character varying(80) ) e uf (character(2) ), adicione as cidades usadas na tabela contatos. Em seguida, insira na tabela contatos um campo chamado cidade_id. Altere-o para o valor das cidades correspondentes. Remova o campo cidade da tabela contatos e então defina o campo cidade_id como chave estrangeira apontando para a tabela cidades.
  25. 25. Buscando Registros – Parte 01 Comando: SELECT <lista_de_valores> FROM <tabelas> [WHERE <condicoes>] ONDE: <lista_de_valores> - Campos, Expressões ou * <tabelas> - Uma ou mais tabelas (separadas por vírgula) que terão seus valores representados na listagem <condicoes> - Restrições de filtragem dos registros. Se omitido, exibe todos os registros.
  26. 26. Exemplos Simples SELECT * FROM categorias; SELECT ID, NOME FROM CIDADES SELECT * FROM CIDADES WHERE UF = ‘AC’ SELECT nome, vl_debito, (vl_debito*1.10) as vl_deb_com_juros FROM contatos; SELECT upper(a.nome) as contato, b.nome||’-’||b.uf as cidade FROM contatos a, cidades b WHERE a.cidade_id=b.id AND b.uf = ‘AC’;
  27. 27. SELECT.... JOIN... O que são os JOIN’s ??? Tipos: INNER JOIN; LEFT / RIGHT FULL JOIN;
  28. 28. SELECT ... JOIN .... - EXEMPLOS SELECT upper(contatos.nome) as contato, cidades.nome||’-’||cidades.uf as cidade FROM contatos INNER JOIN cidades ON cidade_id=id WHERE b.uf = ‘AC’; SELECT * FROM CLIENTES C LEFT OUTER JOIN COMPRAS C2 ON C2.ID_CLIENTE = C.ID
  29. 29. SELECT...GROUP BY Realiza agrupamento de valores; Utiliza funções de agregação: SUM, MAX, MIN, COUNT, AVERAGE (AVG); As “dimesões” que aparecem na lista do select, devem ser adicionadas ao GROUP BY Agrupamento aceita funções condicionais (CASE);
  30. 30. SELECT ... GROUP BY - EXEMPLOS SELECT COUNT(*) FROM contatos; SELECT a.nome as cidade, COUNT(*) FROM cidades a, contatos b WHERE A.id=b.cidade_id; SELECT a.nome as cidade, COUNT(*) FROM cidades a INNER JOIN contatos b WHERE a.id = b.cidade_id; SELECT a.nome as cidade, COUNT(*) FROM cidades a LEFT JOIN contatos b WHERE a.id = b.cidade_id; SELECT a.nome as cidade, COUNT(*) FROM cidades a RIGHT JOIN contatos b WHERE a.id = b.cidade_id; SELECT a.nome, (select count(*) from contatos b WHERE a.id=b.cidade_id) FROM cidades a
  31. 31. SELECT.... E MAIS ALGUNS EXEMPLOS Listar a quantidade de pessoas de uma determinada cidade, separando por sexo: select a.nome, SUM( case b.sexo WHEN ‘M’ then 1 else 0 end) as M, SUM( case b.sexo WHEN ‘F’ then 1 else 0 end) as F FROM cidades a LEFT JOIN clientes b ON b.cidade_id = a.cidade_id WHERE a.id=1 Listar os clientes e seu débito total, cujo débito total é maior que R$ 1.000,00: Select c.nome, sum(vl_debito) from clientes c group by c.nome having sum(vl_debito) > 1000
  32. 32. Mais do mesmo??? Onde estão Schema’s, Triggers, Procedures, Functions, Índices e TableSpaces??? Pra que serve cada um???
  33. 33. Cenário 01 A Universidade Federal do Acre possui um ERP que dentre seus módulos podemos destacar: acadêmico, financeiro, orçamentário, compras, frotas, RH, licitação, almoxarifado, espaço físico e contratos. O banco de dados possui cerca de 800 tabelas. Como organizar essas tabelas para facilitar a manutenção? Como não se perder, nem inverter o nome de tabelas com um ambiente tão complexo? A tabela “estrutura” se refere a parte organizacional ou física??? SCHEMAS
  34. 34. Schemas Os schemas são estruturas lógicas, usadas para separar o conteúdo de bancos de dados; Podem estar contidos dentro de schemas tables, views, procedures, etc; Se a tabela está em um schema, esse deve estar no path do usuário que acessa o banco de dados. Comando: Create schema Financeiro; Create schema Academico;
  35. 35. Schema’s – select entre schema’s Public – Visível automaticamente para todos ; <User> - Visível apenas ao usuário (de forma explícita); Exemplo, se tivermos os schemas academico e rh, criação de tabelas: Create table academico.pessoas (...); Create table rh.pessoas (...); Exemplo de select: select * from academico.pessoas p1, rh.pessoas p2 where p1.id=p2.id
  36. 36. Schema’s Perguntas: E se eu quiser dar um select sem especificar o schema? set search_path=“$user”, public, rh, academico; Se eu estiver usando um schema, posso ter chaves estrangeiras apontando para uma tabela de outro schema? Posso ter tabelas com o mesmo nome e estrutura? E nesse caso, se eu tenho duas tabelas iguais, adicionei ambos os schema’s no search_path, e digitar select * from tabela, como saber de qual schema são os dados?
  37. 37. Preparando para as regras de negócio... TABELA: categorias CAMPO TIPO PK UK FK REF ID SERIAL X DESCRICAO VARCHAR(80) TABELA: clientes CAMPO TIPO PK UK FK REF ID SERIAL X NOME VARCHAR(80) X DTN DATE ATIVO BOOLEAN SEXO CHAR(1)
  38. 38. Preparando para as regras de negócio... TABELA: produtos CAMPO TIPO PK UK FK REF ID SERIAL X NOME VARCHAR(80) X VL_COMPRA MONEY LUCRO NUMERIC(7,3) VL_VENDA MONEY EST_MINIMO INTEGER CATEGORIA_ID INTEGER X CATEGORIAS
  39. 39. Preparando para as regras de negócio... TABELA: pedidos CAMPO TIPO PK UK FK REF ID SERIAL X CLIENTE_ID INTEGER X CLIENTES VL_COMPRA MONEY FPGTO CHAR(1) DESCONTO MONEY VL_TOTAL MONEY FECHADO BOOLEAN
  40. 40. TABELA: pedidos_itens CAMPO TIPO PK UK FK REF ID SERIAL X PEDIDO_ID INTEGER X PEDIDOS PRODUTO_ID INTEGER X PRODUTOS QTD INTEGER VL_UN MONEY
  41. 41. REGRAS ---- Tabela categorias Não pode ter categorias com descrições iguais; Tabela clientes: Não podem haver clientes com o mesmo nome, nascidos no mesmo dia; A data de nascimento não pode ser nem maior nem igual a data atual; Se um cliente estiver inativo, ele não pode sofrer alterações; Sexo obrigatoriamente deve ser: M, m, F ou f
  42. 42. REGRAS ---- Tabela produtos: Não podem haver produtos com o nome repetido; Valor da compra deve ser menor ou igual ao valor da venda; Lucro deve ser maior ou igual a zero; Estoque mínimo deve ser maior ou igual a zero; Deve ser uma categoria válida; Se o valor de venda não for informado, deve ser pego o valor de compra e calculado o juros.
  43. 43. REGRAS ----- Tabela pedidos: Fpagto só pode ser V (a vista) ou P (a prazo); Se o pedido estiver fechado é porque foi quitado pelo cliente e não pode sofrer alterações; Valor total deve ser calculado pegando o valor da compra, menos o desconto. O desconto deve ser maior ou igual a zero; O valor da compra deve ser pego automaticamente, conforme são adicionados os itens. Tabela pedidos_itens: Quantidade deve ser maior que zero; Valor Unit. Deve ser pego automaticamente da tabela de produtos.
  44. 44. E AGORA??! Regras de negócio no banco? Simples... Triggers e procedures!
  45. 45. TRIGGER São automatizações do banco de dados; São disparados a partir de eventos como insert, update e delete; Permitem a execução de diversas outras operações;
  46. 46. PROCEDURES / FUNCTIONS São funções executadas dentro do banco de dados; Pode ser desenvolvidas em diversas linguagens Por padrão, utilizasse PL/pgsql; Linguagem simples com selects dentro dos comandos; Permite retornos simples ou listas; No postgreSQL todos as triggers executam uma função especial (trigger functions).
  47. 47. Modelo de Triggers no PostgreSQL Tabela Comando INSERT Dispara a Trigger OnInsert Executa a Trigger Function
  48. 48. Functions / Procedures Comando: CREATE OR REPLACE FUNCTION <SuaFuncao>( <parametros> ) RETURNS <retorno> AS $BODY$ <declaração_de_variáveis>; BEGIN <codigo> END; $BODY$ LANGUAGE plpgsql;
  49. 49. Trigger Functions Comando: CREATE OR REPLACE FUNCTION <SuaFuncao>() RETURNS trigger AS $BODY$ <declaração_de_variáveis>; BEGIN <codigo> RETURN <new_ou_old>; END; $BODY$ LANGUAGE plpgsql;
  50. 50. Trigger CREATE TRIGGER <nome_trigger> {AFTER|BEFORE} {INSERT|UPDATE|DELETE} ON <suaTabela> FOR EACH {ROW|STATEMENT} EXECUTE PROCEDURE <nome_da_trigger_function>();
  51. 51. Exemplo Create table fornecedores( id serial not null, nome varchar(80), saldo money, CONSTRAINT pk_forne PRIMARY KEY (id) ); Create table venda( id serial not null, fornecedor_id integer, data date, valor money, CONSTRAINT pk_venda PRIMARY KEY (id), CONSTRAINT fk_venda FOREIGN KEY (fornecedor_id) REFERENCES fornecedores (id) ON UPDATE NO ACTION ON DELETE CASCADE );
  52. 52. Exemplo Continuação Create or replace function ajusta_saldo() returns trigger AS $BODY$ BEGIN update fornecedor set saldo = coalesce(saldo,0)+NEW.valor where id = NEW.fornecedor_id; RETURN NEW; END $BODY$ AS LANGUAGE plpgsql;
  53. 53. Exemplo – Continuação CREATE TRIGGER tr_ajusta_saldo AFTER INSERT ON venda FOR EACH ROW EXECUTE PROCEDURE ajusta_saldo();
  54. 54. PENSANDO EM DESEMPENHO... Criação de tablespaces O que são? Como criá-las? Quais as vantagens? Como usá-las? Índices: Explain; Tipos de índice; Views: Melhorando modelos Rules; Desempenho ainda incomoda: Particionamento de tabelas;

×