Funções de Acessos ao PostgreSQL - Uma visão prática

Tamanho: px
Começar a partir da página:

Download "Funções de Acessos ao PostgreSQL - Uma visão prática"

Transcrição

1 PostgreSQL

2 Funções de Acessos ao PostgreSQL - Uma visão prática Introdução Por Ernani Medeiros A redução do TCO é, hoje, uma lei nas organizações.não só organizações mas governos estão partindo para o software livre a fim de reduzir o TCO. Observações de que esse ou aquele software não tem suporte porque é livre, não estão mais satisfazendo os Administradores. Empresas estão substituindo softwares, colocando Linux em lugar do Windows, PostgreSQL no lugar do SQL Server ou Oracle, Netscape 7.0 no lugar do IE, Gimp no lugar de Photoshop, Apache no lugar de IIS, e para modelagem UML, Poseidon no lugar do Rational Rose e OpenOffice no lugar do MSOffice. Há muitas outras substituições acontecendo e percebe-se que isso não tem volta. Até as estações mais simples, estão sendo migradas para Linux. Aqui estamos tendo a visão necessária de facilitadores nesta migração. DBAs, pessoal de Infra- Estrutura, pessoal de desenvolvimento, enfim todos ajudando a realizar a mudança de plataforma, de Banco de Dados e de Linguagens. Temos a necessidade da redução de TCO mas a falta de conhecimento é um empecilho para a adoção de novas tecnologias. Os envolvidos tendem a pensar em total falta de orientação para problemas corriqueiros quando necessitam adotar uma linguagem, banco de dados ou mesmo ambiente operacional novo. Assistimos vários diálogos entre Desenvolvedores e Database Administrators parecidos com este: Desenvolvedor. Não sei, como obter este conjunto de registros, através deste select. DBA. Ah, faça uma chamada. Desenvolvedor. Mas como da minha linguagem faço esta chamada? DBA. Bem aí já passou a ser um problema seu. Creio que o grande erro deste diálogo esta na última frase, ela deveria ser: - Bem, vamos pesquisar, você de um lado e eu de outro. Depois sentamos para concluir. Temos a necessidade de dominar uma tecnologia logo de início para erramos menos. Então, temos aqui duas necessidades. Uma decorrente da outra. Precisamos reduzir o TCO e para isso, precisamos aprender mais sobre softwares distribuídos sob licença BSD. A nossa intenção, neste artigo, é colaborar no atendimento destas necessidades. Apresentamos o PostgreSQL, que é distribuído sob licença BSD e portanto, fator a ser considerado na redução do TCO corporativo. Para facilitar sua adoção, mostramos exemplos de Criação de Banco, Criação de Linguagens, Criação de Usuários, Criação de Tabelas e Criação de funções de: Inclusão; Alteração; Exclusão; Retorno de um único registro;

3 Retorno de um conjunto de registros; Uso destas funções diretamente no prompt de comando; Uso destas funções com PHP. Cremos que estes exemplos são básicos para a iniciação de qualquer DBA e ou desenvolvedor com uma nova tecnologia de banco de dados. Formas de Acesso ao PostgreSQL Vamos partir da premissa que você já tem o banco de dados PostgreSQL instalado e configurado no Windows, linux ou Unix. Seu servidor Apache, aceita conexões em PHP e você não tem dificuldades em SQL. Não se irrite, o espaço que tenho aqui é restrito. Só para você ter uma idéia do poder do PostgreSQL, ele pode ser instalado em MS-Windows 9x (95 ou 98), Me, NT 4.0 com SP 6ª ou superior (Workstation ou Server), 2000 com SP 2 ou superior (Professional, Server ou Advanced Server), Linux (Red Hat 6.2, 7.0, 7.2, 7.3. Mandraque 7.2, 8.0, 8.1, 8.2, SuSE 7.0, 7.2 e TurboLinux 6.0), BeOS 5.04 ou acima, BSD/OS e FreeBSD versão 4.2 ou superior, IBM AIX Risc6000, HP-UX versões e ou superior, MacOS X versões 10.1.x, SUN Solaris (versões 2.6, 7, 8 para Sparc e 2.8 para x86) e todas as ditribuições Linux e UNIX não citadas e mais novas. Caso, você queira uma boa dica de instalação do PostgreSQL no Windows, vá até o endereço ou leia o livro de Álvaro Pereira Neto, PostgreSQL Técnicas Avançadas Soluções para Desenvolvedores e Administradores de Banco de Dados, editora Érica. As primeiras 70 páginas são dedicadas à instalação do PostgreSQL no Windows, Linux e Solaris. A diferença entre os dois approaches é que o pessoal da Visual Objects instala o Banco no Windows, com inicialização a partir de um script o pg, com os comandos pg start e pg stop, desenvolvido por Jonathas Pereira da Logness Software. Álvaro Pereira Neto, no seu livro, instala o ipc-deamon como um serviço. Adotei o formato da Visual Objects, porque no meu caso não é necessário ter um servidor disponível, caso este seja o seu caso, use a solução do Álvaro Pereira Neto. Outra opção é a adoção da solução da DBExperts (www.dbexperts.com.br), que implementa o PostgreSQL para Windows a partir da instalação de um CD. Ferramentas Você pode usar PGAdmin II (http://www.pgadmin.org/), PGAcces (http://www.flex.ro/pgaccess/), DBTools (http://www.dbtools.com.br/en/). O último citado funciona tanto para PostgreeSQL como para MySQL. Todos têm interface gráfica para Windows. Porém, recomendo que você utilize psql, porque na hora do vamos ver, poderá ser o único recurso de que você disporá para as suas tarefas. Prefira utilizar scripts. Eles evitam os erros em linhas de comando e podem ser executados no futuro. Crie um diretório para scripts, exemplo: E:\PostgreSql\scripts ou /cgydriver/e/postgresql/scripts olhando pelo ponto de vista do Bash.

4 Criando um usuário Dependendo da instalação que você levou a cabo, o PostgreSQL, pode ter criado o usuário postgres. Este é o superusuário do banco de dados. Não esqueça de mudar sua senha. É recomendável que você crie um usuário para o seu banco, além do usuário postgres. Os passos para esta execução são: Conecte-se ao banco template1, usando uma das sintaxes: psql U postgres template1 <enter> ou psql template1 <enter> psql U postgres template1 W <enter> ou A primeira sintaxe explicita o usuário, a segunda é possível desde que o seu usuário tenha feito a instalação do PostgreSQL. A terceira sintaxe, informa ao PostgreSQL que a senha é requerida, através do argumento W, logo após você teclar <enter>, o PostgreSQL vai-lhe pedir a senha através do prompt: $password:, apenas digite a senha teclando <enter> em seguida. O PostgreSQL vai-lhe responder com a resposta apresentada na lista 1: Welcome to psql 7.3.2, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit template1=# Lista 1 - Retorno da conexão com o banco template1 do PostgreSQL Agora que estamos logados no banco template1, precisamos criar um usuário para manipular nosso banco de testes. Antes, apenas uma palavra sobre o Banco de Dados template1. Este banco de dados existe porque todos os outros bancos de dados criados no PostgreSQL o utilizarão como modelo. Qualquer coisa que você ache necessário ter em todos os seus bancos de dados deve ser inserida neste banco. A partir dele o PostgreSQL fará os clones necessários. Veja que isto não é herança, conceito que o PostgreSQL já suporta, mas que vamos abordar em outra matéria. Já podemos criar nosso usuário, queremos que ele possa criar um banco de dados e possa, também, criar grupos e usuários. Isso é recomendável, já que não devemos utilizar o usuário postgres, visto que este é um superusuário. Sempre aconselho que este usuário, postgres, deve ter sua senha alterada e guardada pelo Administrador do Banco e o Gerente da Área. Esta é uma ação que lhe vai poupar alguns grandes problemas de administração. No prompt do bash digite a sintaxe que segue abaixo, o exemplo da criação e conseqüente retorno do PostgreSQL estão na lista 2:

5 CREATE USER seuusuario WITH PASSWORD 'suasenha' CREATEDB CREATEUSER ;< enter> template1=# CREATE USER usuteste WITH PASSWORD 'abc1def2' CREATEDB CREATEUSER; CREATE USER template1=# Lista 2 - Criação do usuário usuteste e a senha "abc1def2". O PostgreSQL responde, para maioria dos comandos, o nome do comando digitado. Veja que aqui, ele respondeu CREATE USER, significando que está tudo bem com todos os aspectos deste comando. Pronto, este usuário poderá se conectar ao banco template1 e criar outro banco. Esta é nossa próxima ação. Criando linguagens Neste passo, criaremos a linguagem plpgsql, que é poderosa e vai-nos ajudar a criar as funções de acesso, que possibilitaram nossos programadores criarem funções de acesso ao banco de dados. Você pode criar variadas linguagens para utilizar no PostgreSQL, isso faz parte do seu poder. Como exemplo você pode criar PL/Tcl, PL/Perl, PL/Python e PL/pgSQL. Também é possível você utilizar C. O PostgreSQL, não cria estas linguagens inicialmente, porque não sabe qual você utilizará. Para exemplo vamos criar suporte a linguagem PL/pgSQL. Primeiramente, vamos criar o controlador da linguagem PL/pgSQL, seu handler. Use a sintaxe mostrada a seguir em um arquivo de script e o execute, conforme mostrado anteriormente, com o comando \i: --Cria a função que controla o plpgsql CREATE FUNCTION plpgsql_call_handler () RETURNS LANGUAGE_HANDLER AS '$libdir/plpgsql' LANGUAGE C; --Linguagem: plpgsql CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler; Bem, isto é tudo de que precisamos, todos os nossos bancos de dados poderão, doravante, se utilizar desta linguagem para criar funções de acesso. Criando o banco Vamos criar um banco para nosso exemplo. Para nossos fins, vou criar um banco, dando-lhe o nome de BancoTeste. Ele servirá para nossas experiências com o PostgreSQL. O usuário que estiver logado no momento da criação do banco, se torna o proprietário deste. É quem poderá destruir este banco, posteriormente, caso necessário. Ao destruir um banco, todos os seus objetos e dados são, também, destruídos. Apenas o primeiro banco de dados, template1, não precisou de um procedimento especial para ser criado, pois quem o criou foi o comando initdb, que tratou, também, de inicializar as áreas de dados.

6 Se você usar os procedimentos de instalação sugeridos pelo pessoal da Visual Objects (http://www.visualobjects.hpg.ig.com.br/postgresql.htm) e ler o script deles, entenderá bem o que o comando initdb faz. A sintaxe para a criação do banco de dados é: CREATE DATABASE nome do banco <enter>. O PostgreSQL fornece um programa alternativo para a criação de banco, assim como para a maioria dos comandos de administração de bancos. No caso da criação de banco existe a sintaxe alternativa de createdb nome do banco <enter>, que não realiza mágica alguma, conecta-se ao banco template1 e executa o comando CREATE DATABASE como você o faria. Pode haver uma situação que você quer que o banco tenha outro proprietário, isto acontece em aplicações Internet onde você tem vários tipos de banco de dados, por motivos de segurança. Isto pode ser feito tanto no comando CREATE DATABASE como no programa createdb, basta utilizar a sintaxe CREATE DATABASE nome do banco OWNER nome do proprietário. No nosso exemplo, podemos nos desconectar do template1 e nos conectarmos como usuteste, para criarmos este novo banco ou utilizarmos a sintaxe com OWNER, é o que faremos. Digite, no prompt do bash: CREATE DATABASE bancoteste OWNER usuteste< enter>; Observe, na lista 3, a digitação deste comando e o conseqüente retorno do PostgreSQL. template1=# CREATE DATABASE bancoteste OWNER usuteste; CREATE DATABASE template1=# Lista 3 - Criação do Banco BancoTeste com o proprietário UsuTeste. Vamos criar nossas tabelas. Criando Tabelas Bem, reconheçamos que não é muito inteligente você fazer todo o trabalho de digitação para criação de todos os procedimentos no prompt do bash. Assim, vou sugerir que você crie scripts. Como, já seção ferramentas, você deve ter um diretório criado para os seus scripts. No nosso exemplo é o E:\PostgreSql\scripts. Vamos usá-lo. Criaremos um arquivo.sql e o salvaremos como criatb.sql e o executaremos no prompt do bash. Primeiro digite as seguintes linhas no arquivo criatb.sql: -- Seqüência: sql_tb_cliente_seq CREATE SEQUENCE sql_tb_cliente_seq INCREMENT 1 MINVALUE 1 MAXVALUE CACHE 1; SELECT setval('sql_tb_cliente_seq', 1); -- Cria Tabela: tb_cliente

7 CREATE TABLE tb_cliente ( iid_cliente int4 DEFAULT nextval('sql_tb_cliente_seq'::text) NOT NULL, s_nome varchar(100), s_ varchar(50), b_opt boolean, CONSTRAINT sql_cliente_pkey PRIMARY KEY (iid_cliente) ) WITHOUT OIDS; Aqui são necessárias algumas considerações. A seqüência é algo que uso, para todas as tabelas, quando trabalho com um banco relacional. Visto que trabalho com aplicações orientadas a objetos e bancos relacionais, crio a seqüência para emular o object identifier, requerido pela Orientação a Objetos. É apenas uma questão de proselitismo, já que prosélito pode ser considerado aquele que se aproxima assim com o grego informa: gr. prosélytos, 'aquele que se aproxima', pelo lat. tard. Proselytu. ))!. Bem, está seria a função da palavra chave OIDS que segue a sintaxe da criação de tabelas pelo PostgreSQL. Caso eu queira usar o que o PostgreSQL me sugere, basta substituir WITHOUT OIDS por WITH OIDS. Somente utilizo esta sintaxe para tabelas que irão se beneficiar da herança, do contrário é conhecido problemas de performance com este comando para tabelas muito grandes. Assim, se você usar herança e tabelas pequenas, use WITH OIDS sem medo. CREATE SEQUENCE cria uma seqüência que pode ser usada por qualquer tabela, chamada de sql_tb_cliente_seq. Dei-lhe este nome, porque quero que apenas a tabela tb_cliente a utilize. A seqüência será incrementada sempre em 1 e se iniciará em 1. Seu teto máximo é o número absurdo depois da clausula MAXVALUE, setval já informa o valor do número inicial, que é 1. O PostgreSQL, fornece nextval, que lhe retornará o próximo de uma seqüência e, também, curval que retorna a seqüência corrente. Pesquise a utilização. Na criação da tabela, informo que o número que utilizará seqüência é um número de 4 bytes (int4), poderia ser de 8 bytes (bigint). O campo iid_cliente irá guardar o nosso número seqüencial de cliente, é um inteiro de 4 bytes. O campo s_nome irá guardar o nome do nosso cliente, é do tipo varchar com no máximo 100 bytes. Tem o tipo de dado varchar porque pode ter qualquer quantidade de 1 a 100 bytes. O campo s_ irá guardar o do nosso cliente, é do tipo varchar com no máximo 50 bytes. O campo b_opt é um flag, utilizado apenas para mostrarmos o uso de tipos de dados boolean. Crie, sempre, em primeiro lugar as seqüências para depois partir para a criação das tabelas que a utilizam.

8 Bem, veja a seqüência de comandos que me utilizei para realizar a criação das tabelas. A lista 4, mostra esta seqüência de forma completa. template1=# \q ~ $ cd /cygdrive/e/postgresql/scripts/bancoteste /cygdrive/e/postgresql/scripts/bancoteste $ ls criatb.sql /cygdrive/e/postgresql/scripts/bancoteste $ psql -U usuteste bancoteste Welcome to psql 7.3.2, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit bancoteste=# \i criatb.sql CREATE SEQUENCE setval (1 row) psql:criatb.sql:12: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit ind ex 'sql_cliente_pkey' for table 'tb_cliente' CREATE TABLE bancoteste=# Lista 4 - A seqüência de criação de tabela, com um arquivo de script. Algumas poucas explicações. O comando \q, permitiu que eu saísse do banco template1, equivale a quit. O comando cd permitiu a mudança para o diretório onde estão meus scripts. O comando ls listou os arquivos do meu diretório de script, no meu caso tinha apenas um script chamado de criatb.sql. O comando psql U usuteste bancoteste, permitiu que eu me conectasse ao banco bancoteste criado utilizando o usuário criado anteriormente. O comando \i permitiu que eu definisse um arquivo de script para ser executado, no nosso caso criatb.sql. Já que estamos no diretório do script não precisamos dar maiores informações. O PostgreSQL, informou a criação da seqüência com o retorno CREATE SEQUENCE e o retorno CREATE TABLE, informou a perfeita criação da tabela. Veja, também, que o PostgreSQL informou uma nota, que nos posiciona sobre a criação de uma PK, ou primary key, no nosso caso sql_cliente_pkey que se refere ao campo iid_cliente, conforme mostramos na criação da tabela. De maneira alguma crie uma tabela sem a devida chave primária. Caso eu tivesse mais de um campo, na chave primaria, informaria isso os separando por virgula. Suponha que eu quisesse criar uma FK (foreign key), utilizaria a sintaxe abaixo, logo após a constraint de criação de chave primaria. CONSTRAINT FK_nome_da_tabela_fkey FOREIGN KEY (nome_do_campo) REFERENCES nome_da_tabela_que_contem_o_campo_origem. Suponha, também que eu quisesse criar um índice adicional nesta tabela, bastava utilizar a sintaxe a seguir: CREATE INDEX nome_do_indice ON nome_da_tabela (nome_do_campo_que_sera_indice);

9 Funções de Acesso Bem, criamos o banco e suas tabelas, assim como suas seqüências, chaves primárias, estrangeiras e índices adicionais. Para concluirmos, precisamos, fornecer a nossos programadores, exemplos de acesso. Como estamos na era da Internet, vamos municiar nossos programadores com exemplos de acesso, usando PHP. A partir do PHP, os programadores podem expandir nosso exemplo para qualquer outra linguagem, apesar de que no futuro, vou-lhes fornecer exemplos em JAVA, pois acho altamente pertinente. Como bons administradores de dados, vamos deixar na Intranet da empresa, nosso modelo relacional, nosso dicionário de dados à disposição de nosso pessoal técnico, como também nossos exemplos de acesso para consulta futura dos nossos programadores. Isso tudo faz parte do desenvolvimento interativo de software que tanto defendo. Excluindo objetos e dados do banco Todos os comandos de criação de funções, serão executados a partir de um arquivo de script, conforme já mostrado, assim não vou repetir estes passos. Gostaria de preveni-lo de que talvez seja necessário um script de destruição. Para isso siga a sintaxe a seguir: DROP FUNCTION nome_da_função(tipos_de_dados_dos_argumentos); DROP SEQUENCE nome_da_seqüência; DROP TABLE nome_da_tabela; DROP DATABASE nome_do_banco_de_dados; Para simplesmente esvaziar uma tabela, use: TRUNCATE TABLE nome_da_tabela; Você pode ter dois scripts, um de criação de funções e outro de deleção. Ao aparecerem erros, destrua todas as funções e crie todas novamente. Função de Inclusão Nossas funções de inserção seguirão um padrão. Isso é muito interessante, já que podemos automatizar estas criações, usando uma aplicação em Java ou mesmo em PHP. Todas as tabelas terão, pelo menos, uma função de incluir, de excluir, de alterar, de retornar todos e de retornar apenas um. Este enfadonho trabalho pode ser automatizado por esta aplicação. Para criar uma função você necessita apenas de uma padronização de nomes e do dicionário de dados para conhecer os nomes e tipos de atributos de uma tabela. Criemos a função de inclusão, conforme segue: CREATE OR REPLACE FUNCTION nome_da_função(tipos_esperados) returns integer as ' DECLARE Seção de declarações BEGIN INSERT INTO tabela (nome_dos_campos_da_tabela) VALUES (valores_de_entrada_na_função); RETURN 1; END;' LANGUAGE 'plpgsql';

10 Não temos novidades aqui. A sintaxe é auto-explicativa. Vamos diretamente ao que foi retornado pelo bash, quando digitamos esta função no seu prompt. A lista 5 mostra esta evolução. bancoteste=# CREATE OR REPLACE FUNCTION proc_insert_tb_cliente(varchar(100), va rchar(50), bancoteste(# boolean) returns integer as ' bancoteste'# DECLARE bancoteste'# str_nome ALIAS FOR $1; bancoteste'# str_ ALIAS FOR $2; bancoteste'# bol_solic ALIAS FOR $3; bancoteste'# BEGIN bancoteste'# INSERT INTO tb_cliente (s_nome, s_ , b_opt) bancoteste'# VALUES (upper(str_nome), lower(s_ ), bol_solic); bancoteste'# RETURN 1; bancoteste'# END;' LANGUAGE 'plpgsql'; CREATE FUNCTION bancoteste=# Lista 5 - Criando uma função de incluir dados As linhas digitas, no nosso arquivo de script, foram: CREATE OR REPLACE FUNCTION proc_insert_tb_cliente(varchar(100), varchar(50), boolean) returns integer as ' DECLARE str_nome ALIAS FOR $1; str_ ALIAS FOR $2; bol_solic ALIAS FOR $3; BEGIN INSERT INTO tb_cliente (s_nome, s_ , b_opt) VALUES (upper(str_nome), lower(s_ ), bol_solic); RETURN 1; END;' LANGUAGE 'plpgsql'; Veja que são as mesmas que se apresentam no prompt do bash, apenas que não tem o prompt do bash a precedê-las. Algumas observações. A função proc_insert_tb_cliente, espera três tipos de dados: varchar(100), onde guardaremos o nome do cliente, varchar(50), onde guardaremos o do cliente e nosso boolean para uso futuro. No PostgreSQL, não informamos os nomes dos argumentos como acontecem em outros bancos, apenas seus tipos. Existem outras variações porém somente as abordarei no futuro. A seção de DECLARE é que resolve a questão de nomes, ali criamos aliasses para as entradas, informando sua ordem através das diretivas $1,$2,$n. Dentro do bloco BEGIN e END, podemos e devemos utilizar qualquer cláusula SQL que julguemos necessárias. Veja que utilizei as palavras chaves upper e lower, somente como exemplo. Pesquise a documentação do PostgreSQL, no formato HTML e que você encontra em: Diretório de Instalação:\PostgreSql\cygwin\usr\doc\postgresql-7.3.2\html\index.html. O retorno da função é um 1 apenas para indicar um retorno, já que toda função deve retornar algo. Mais à frente dou um exemplo de uma função que retorna um cursor inteiro.

11 Vamos utilizar esta função fazendo um teste diretamente no prompt do basch, você também utilizar um script para isso. Digite as linhas abaixo e veja o retorno do PostgreSQL. BEGIN;<enter> select * from proc_insert_tb_cliente('ernani Medeiros', TRUE);<enter> COMMIT;<enter> No basch, estas linhas ficariam como é mostrado na lista 6. bancoteste=# BEGIN; BEGIN bancoteste=# select * from proc_insert_tb_cliente('ernani Medeiros', 'esales-co TRUE); proc_insert_tb_cliente (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# Lista 6 - Inserindo dados a partir de uma função. O único comentário digno de nota aqui e que é a novidade é a forma de chamarmos uma função no PostgreSQL. Sempre você utilizará a seqüência de BEGIN; SELECT * FROM nome_da_função e seus argumentos, seguidos da cláusula COMMIT;. Isso garantirá que o suporte a transações do banco está sendo usado. Qualquer retorno diferente disso, é um erro. Verifique a sua digitação. O PostgreSQL retorna o número da linha que contém o erro e o possível erro. Corrija os erros e execute novamente a seqüência de CREATE OR REPLACE FUNCTION, pois esta substituirá a que contém erros. Verifique que se você tentar usar este comando com uma função cujo nome foi alterado, o PostgreSQL não permitirá. Primeiro será necessária o drop na função anterior para em seguida à utilização de CREATE OR REPLACE FUNCTION. O retorno de 1 row, indica que o dado está inserido na nossa tabela. Para checarmos isso, basta executarmos, conforme a lista 7. bancoteste=# SELECT * FROM tb_cliente; iid_cliente s_nome s_ b_opt ERNANI MEDEIROS t (1 row) bancoteste=# Lista 7 - Retorno de um select na tabela de cliente.

12 Criando as funções de Update e Delete Seguindo o mesmo padrão, vamos criar as funções de update e delete para a tabela tb_cliente. Em seguida, você vê o que deve ser digitado e a resposta do bash. Função de Update: CREATE OR REPLACE FUNCTION proc_update_tb_cliente(int4, varchar(100), varchar(50), boolean) returns integer as ' DECLARE id_cli ALIAS FOR $1; str_nome ALIAS FOR $2; str_ ALIAS FOR $3; bol_solic ALIAS FOR $4; BEGIN UPDATE tb_cliente SET s_nome=upper(str_nome), s_ =lower(str_ ), b_opt=bol_solic WHERE iid_cliente=id_cli; RETURN 1; END;' LANGUAGE 'plpgsql'; O único comentário aqui, é que precisamos do id do cliente para efetivar o update. Em seguida digite no bash a seqüência: BEGIN;<enter> select * from proc_update_tb_cliente(2,'ernani Medeiros', FALSE);<enter> COMMIT;<enter> Observe, agora, a lista 8 com o resultado. O primeiro select mostra o registro com o campo b_opt com o valor t, já o segundo mostra f, portanto a execução da função foi bem sucedida. bancoteste=# SELECT * FROM tb_cliente; iid_cliente s_nome s_ b_opt ERNANI MEDEIROS t (1 row) bancoteste=# BEGIN; BEGIN bancoteste=# select * from proc_update_tb_cliente(2,'ernani Medeiros', FALSE); proc_update_tb_cliente (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# SELECT * FROM tb_cliente; iid_cliente s_nome s_ b_opt ERNANI MEDEIROS f (1 row) bancoteste=# Lista 8 - Executando a função de update

13 Para a função de delete digite os seguintes comandos no arquivo de script: CREATE OR REPLACE FUNCTION proc_delete_tb_cliente(int4) returns integer as ' DECLARE id_cli ALIAS FOR $1; BEGIN DELETE FROM tb_cliente WHERE iid_cliente=id_cli; RETURN 1; END;' LANGUAGE 'plpgsql'; Em seguida, digite as seguintes linhas no prompt do basch: BEGIN;<enter> select * from proc_delete_tb_cliente(2);<enter> COMMIT;<enter> Não existe nenhum segredo nesta função, precisamos apenas do id do nosso cliente para podermos excluí-lo. Veja que na maioria das vezes, não executamos um delete físico como mostrado aqui. Normalmente realizamos um update mudando um campo flag, que indicaria que o registro não é mais ativo, dentro da função de delete. A exclusão física e não lógica de um registro é apenas uma questão de segurança. Veja as linhas do basch, mostrando a execução da função de deleção e o select, provando que a deleção ocorreu realmente, logo em seguida na lista 9. bancoteste=# BEGIN; BEGIN bancoteste=# select * from proc_delete_tb_cliente(2); proc_delete_tb_cliente (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# SELECT * FROM tb_cliente; iid_cliente s_nome s_ b_opt (0 rows) bancoteste=# Lista 9 - Executando a função de Deleção Criando as funções de Consulta Talvez não existam funções de maior uso do que as funções que realizam consultas ao banco de dados. Absolutamente, todos os programas que utilizam se de banco de dados realizam consultas. É, alias para isso que um banco existe: persistir dados e recuperá-los. Por isso veja com maus olhos a deleção de registros de um banco de dados. Bem, para retornarmos um registro de um banco de dados, utilizamos a palavra reservada RECORD. Dentro desta estrutura de dados, conterá o registro que desejamos. Digite os seguintes comandos em um arquivo de script:

14 CREATE OR REPLACE FUNCTION proc_obterum_tb_cliente(int) RETURNS SETOF RECORD AS ' SELECT * FROM tb_cliente WHERE iid_cliente = $1; ' LANGUAGE SQL; Veja a forma que peço ao PostgreSQL para retornar um registro (RETURNS SETOF RECORD). Aqui alterei a linguagem para SQL puro, o que não implica em criação de nenhuma linguagem, pois isso já é default do PostgreSQL, fiz isso para exemplificar uma nova forma de retorno de um único registro. Acredite, existem outras formas. Vamos ver o retorno do bach. Porém, peço a sua atenção para a forma como chamo esta função. Passo para a função dois arrays, um contendo a estrutura dos campos que desejo retirar e outra contendo a estrutura em que desejo manter o retorno. Isso é outra demonstração de poder do PostgreSQL, pois posso retornar o que quiser de um registro bastando, para isso, definir na minha cláusula Select os campos que desejo, aqui pedi todos. Isto não deixa de ser um cursor. Existem outras formas além do RECORD, espero ter-lhe encorajado a ir à pesquisa. A lista 10 mostra o resultado da execução desta função. bancoteste=# BEGIN; BEGIN bancoteste=# SELECT * FROM proc_obterum_tb_cliente(3) AS (f1 int, f2 varchar(10 0), f3 varchar(50), f4 boolean); f1 f2 f3 f ERNANI MEDEIROS t (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# Lista 10 - Executando a função que retorna um registro Agora vamos retornar vários registros, a diferença que merece nota aqui é a criação de um cursor. Este possibilita o retorno de um conjunto de registros que respeita a sua cláusula select. Digite as seguintes linhas, para a criação desta função: CREATE OR REPLACE FUNCTION proc_obtertodos_tb_cliente(int4) RETURNS refcursor AS ' DECLARE cur refcursor; reginicial ALIAS FOR $1; BEGIN OPEN cur FOR SELECT * FROM tb_cliente WHERE iid_cliente > reginicial ORDER BY iid_cliente LIMIT 50; RETURN cur; END;' LANGUAGE 'plpgsql'; Algumas observações são necessárias. Veja que define como primeiro registro a ser mostrado o reginicial. Somente me interessam os registros superiores a reginicial. Também, somente me interessam 50 registros de cada vez, daí eu ter usado a cláusula LIMIT. Desta forma, posso criar um sistema de navegação de 50 em 50 registros, basta-me passar para a função o registro inicial, que sempre será o último da última consulta.

15 Isso é muito usado em sistemas de navegação de Internet. O PostgreSQL, fornece uma palavra chave (OFFSET). Esta palavra chave informa ao PostgreSQL quantas linhas devem ser puladas antes do início da seleção. OFFSET igual a zero é o mesmo que não apresentar OFFSET. Se ambos estiverem na cláusula SQL então, primeiro o PostgreSQL pula a quantidade pedida em OFFSET para depois iniciar o retorno pedido em LIMIT. No exemplo desprezei a cláusula OFFSET pois já sei quantos registros quero e sempre sei onde devo começar. Caso usasse a cláusula OFFSET, a sintaxe seria semelhante a: LIMIT 50 OFFSET x; Onde x é o montante de linhas que desejo pular. As linhas que você deve digitar no prompt do bash, são: BEGIN;<enter> SELECT * FROM proc_obtertodos_tb_cliente(1);<enter> FETCH ALL FROM "<unnamed cursor 1>";<enter> COMMIT;<enter> Veja a lista 11, com o resultado do bash. bancoteste=# BEGIN; BEGIN bancoteste=# SELECT * FROM proc_obtertodos_tb_cliente(1); proc_obtertodos_tb_cliente <unnamed cursor 1> (1 row) bancoteste=# FETCH ALL FROM "<unnamed cursor 1>"; iid_cliente s_nome s_ b_opt ERNANI MEDEIROS t (1 row) bancoteste=# COMMIT; COMMIT bancoteste=# Lista 11 - Retornando vários registros em um cursor. As observações são relativas ao nome do cursor. Como não especifiquei o nome do cursor, o PostgreSQL retornou <unnamed cursor 1>. Se outra chamada dentro da mesma seção, fosse feita a esta função, o cursor seria <unnamed cursor 2>, <unnamed cursor n>, etc. Porém, como todas as linguagens tem orientação para chamar, usar e fechar uma conexão logo em seguida, isto não tem muita utilidade, mas não deixa de ser interessante você também passar o nome do cursor para uma função que retorna vários registros. Utilizo o FETCH ALL FROM, porque sei que apenas receberei 50 registros de cada vez. Finalmente, como em todas as execuções realizo o commit. Montando o exemplo para PHP Bem, agora só nos falta realizar estas mesmas chamadas a partir de uma linguagem como o PHP, que alguns chamam de script. O PHP, tem um conjunto de funções para serem utilizadas exclusivamente com o banco PostgreSQL, como se banco nativo do PHP este fosse. Tal a

16 importância que este banco recebe do povo que desenvolve PHP. Sei, sei, sei, o MySql também, mas falamos aqui do PostgreSQL não é? Vamos lá, na tabela 1, você pode ver uma lista das funções que são utilizadas pelo PHP para acesso ao PostgreSQL. Temos o nome da função e seu uso. Para habilitar o uso destas funções, localize a entrada [PostgreSQL] no arquivo PHP.ini e habilite as linhas desta seção. Por motivos de espaço, não vamos reproduzi-las aqui. Vamos apenas reportar as funções que nos interessam, veja a rica documentação do PHP para maiores detalhes pg_connect() pg_query() pg_num_rows() pg_fetch_row() pg_close() Resumo de Funções de Acesso do PHP ao PostgreSQL Abre uma conexão PostgreSQL. Executa uma consulta (query). Retorna o número de registros afetados. Retorna uma linha como um array enumerado. Fecha uma conexão com o Banco PostgreSQL. Estas funções do PHP, nos serão suficientes para o exemplo. Veja os resultados, em html, retornados pelo browser.

17 Não temos necessidade de comentarmos estes resultados, eles são visualmente auto-explicativos. Também não vamos comentar as linhas de código em PHP feitas e que nas listas a seguir. As linhas estão comentadas, diretamente no código. É evidente que este é um ponto de partida e, mais do que isto, é apenas um exemplo para nossos programadores passarem a utilizar o banco na sua melhor forma: funções. São muito mais rápidas, com seu plano de acesso já preparado pelo PostgreSQL e como pré-compiladas, o PostgreSQL não necessita checar a sintaxe SQL a cada acesso. Com o auxílio de uma ferramenta que crie estas funções por tabela, não teremos muitos problemas para implementar este tipo de solução. <?php /*Aqui temos o pedido de que tipo de função desejamos: 1 - Queremos o usuo da função de inclusão; 2 - Queremos o uso da função de alteração; 3 - Queremos o uso da função de exclusão; 4 - Queremos o uso da função de retorna um registro; 5 - Queremos o uso da função que retorna 50 registros.*/ $tipofuncaosolicitada = 1; Lista 12 - Inicio do código em PHP function Incluir(){ //Aqui nos conectamos com o banco $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_insert_tb_cliente('curso de UML com Interatividade de Software', TRUE);"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); $num = pg_cmdtuples($result); if($numlinhas=0){ echo "<b>não Foi possível a inclusão do Registro</b>"; exit;else{ /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); Retorna50(); return; Lista 13 - A função de incluir em PHP

18 function Alterar(){ $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_update_tb_cliente(3,'ernani Medeiros', TRUE);"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); $num = pg_cmdtuples($result); if($numlinhas=0){ echo "<b>não Foi possível a atualização do Registro</b>"; exit;else{ /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); Retorna1(3); return; Lista 14 - A função de Alterar em PHP. function Excluir($reg){ $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_delete_tb_cliente($reg);"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); $num = pg_cmdtuples($result); if($numlinhas=0){ echo "<b>não Foi possível a deleção do Registro</b>"; exit;else{ /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); Retorna50(); return; Lista 15 - A função de excluir em PHP.

19 function Retorna1($reg){ $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_obterum_tb_cliente($reg) AS "; $cur.="(f1 int, f2 varchar(100), f3 varchar(50), f4 boolean);"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); /*Aqui descobrimos quantas linhas retornaram.*/ $num = pg_num_rows($result); /*Aqui montamos nossos registros.*/ if ($num>0){ $r = pg_fetch_row($result, $i); $iid_cliente = $r[0]; $s_nome=$r[1]; $s_ =strtolower($r[2]); $b_opt=$r[3]; /*Aqui colocamos o resultado em uma tabela HTML.*/ echo "<font color='#000099' face='verdana, Arial, Helvetica, sans-serif'"; echo "style='font-size= x-small;background-color=#ffcc66;font-style=bold;' size='- 1'>"; echo "<table width='90%' height='*' cols=4 border='1'><tr>"; echo "<td colspan='4' align='center'>registros retornados do banco de dados</td></tr>"; echo "<tr><td>";echo $r[0];echo "</td>"; echo "<td>";echo $r[1];echo "</td>"; echo "<td>";echo $r[2];echo "</td>"; if($r[3]=="t") { echo "<td>"; echo "<input type='checkbox' checked name='sim"; echo $r[0]; echo "'></td>"; else { echo "<td>"; echo "<input type='checkbox' name='sim"; echo $r[0]; echo "'></td>"; echo "</tr>"; echo "</table></font>"; else{ echo "<b>nenhum registro retornado</b>"; /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); return; Lista 16 - A função que retorna um registro em PHP.

20 function Retorna50(){ $str_conn = "host=localhost dbname=bancoteste port=5432 "; $str_conn.="user=usuteste password=abc1def2"; if(!($conn=pg_connect($str_conn))) { echo "<b>não foi possível estabelecer uma conexão com o banco de dados, desculpe o transtorno.</b>\n"; exit; /*Aqui montamos o SQL*/ $cur = "BEGIN; SELECT * FROM proc_obtertodos_tb_cliente(1);"; $cur.="fetch ALL FROM \"<unnamed cursor 1>\";"; /*Aqui executamos a consulta contra o banco*/ $result = pg_query($conn, $cur); /*Aqui descobrimos quantas linhas retornaram.*/ $num = pg_num_rows($result); /*Aqui montamos nossos registros.*/ echo "<font color='#000099' face='verdana, Arial, Helvetica, sans-serif'"; echo "style='font-size= x-small;background-color=#ffcc66;font-style=bold;' size='-1'>"; echo "<table width='90%' height='*' cols=4 border='1'><tr>"; echo "<td colspan='4' align='center'>registros retornados do banco de dados</td></tr>"; for ($i=0; $i < $num; $i++) { $r = pg_fetch_row($result, $i); $iid_cliente = $r[0]; $s_nome=$r[1]; $s_ =strtolower($r[2]); $b_opt=$r[3]; /*Aqui colocamos o resultado em uma tabela HTML.*/ echo "<tr><td>";echo $r[0];echo "</td>"; echo "<td>";echo $r[1];echo "</td>"; echo "<td>";echo $r[2];echo "</td>"; if($r[3]=="t") { echo "<td>"; echo "<input type='checkbox' checked name='sim"; echo $r[0]; echo "'></td>"; else { echo "<td>"; echo "<input type='checkbox' name='sim"; echo $r[0]; echo "'></td>"; echo "</tr>"; echo "</table></font>"; /*Aqui enceramos a transação e tratamos de fechar o banco.*/ $result = pg_query($conn, "COMMIT;"); pg_close($conn); return; Lista 17 - Função que retorna 50 registros em PHP.

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

Leia mais

PostgreSQL 8.0. Diogo Biazus

PostgreSQL 8.0. Diogo Biazus PostgreSQL 8.0 Diogo Biazus PostgreSQL 7.X Totalmente ACID MVCC Tipos e operadores customizáveis Diversas linguagens procedurais Hot backup Código aberto (BSD) Facilidade de extensão PL/pgSQL, PL/Python,

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS.

DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS. DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS. PROFESSOR: DOUGLAS DUARTE DISCIPLINA: LPBD 5º SEMESTRE AULA 02 MYSQL O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza

Leia mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server

Leia mais

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você por Cristóferson Guimarães Magalhães Bueno e Odilon Corrêa da Silva 1 O objetivo deste artigo é demonstrar como criar um sistema

Leia mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

Leia mais

Treinamento em PHP. Aula 7. Ari Stopassola Junior stopassola@acimainteractive.com

Treinamento em PHP. Aula 7. Ari Stopassola Junior stopassola@acimainteractive.com Treinamento em PHP Aula 7 Ari Stopassola Junior stopassola@acimainteractive.com Banco de Dados Robustes no armazenamento Segurança, velocidade e facilidade na manipulação dos dados Controle e escalabilidade

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

Transações Seguras em Bancos de Dados (MySQL)

Transações Seguras em Bancos de Dados (MySQL) Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Abordagem geral Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br Em primeiro plano, deve-se escolher com qual banco de dados iremos trabalhar. Cada banco possui suas vantagens,

Leia mais

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com Um dos grandes diferenciais do PostgreSQL em relação à maioria dos outros sistemas de bancos de dados é a presença de diversas linguagens

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Banco de Dados. PostgreSQL

Banco de Dados. PostgreSQL Banco de Dados PostgreSQL 2010 Banco de Dados PostgreSQL Banco de Dados II Equipe: Equipe Postgre Líder: Alexandre Strauss... 01 Aline Cássia Lima dos Santos... 02 Erik Machado... 09 Fernando Gomes Brandão...

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM. Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS ARMAZENAMENTO EM BD NO DM Prof. Angelo Augusto Frozza, M.Sc. http://about.me/tilfrozza ROTEIRO Introdução App de exemplo Implementação do exemplo Testes realizados

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

Trabalhando com MySQL: Uma Introdução

Trabalhando com MySQL: Uma Introdução Trabalhando com MySQL: Uma Introdução 1. A linguagem PHP A linguagem PHP é uma linguagem de programação criada especialmente para o uso em páginas Web. Mas nem por isso ela não pode deixar de ser usada

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

ETEC Dr. Emílio Hernandez Aguilar

ETEC Dr. Emílio Hernandez Aguilar ETEC Dr. Emílio Hernandez Aguilar Grupo: Leonardo; Ronaldo; Lucas; Gustavo; Fabio. 2º Informática Tarde 2º Semestre de 2009 Introdução O PostgreSQL é um SGBD (Sistema Gerenciador de Banco de Dados) objeto-relacional

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Introdução à linguagem SQL

Introdução à linguagem SQL Introdução à linguagem SQL 1 Histórico A linguagem de consulta estruturada (SQL - Structured Query Language) foi desenvolvida pela empresa IBM, no final dos anos 70. O primeiro banco de dados comercial

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html

Leia mais

Logado no OracleXE vamos acessar a opção:

Logado no OracleXE vamos acessar a opção: Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos

Leia mais

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes Banco de dados 1 Linguagem SQL DDL e DML Professor: Victor Hugo L. Lopes Agenda: Introdução à linguagem de dados; DDL; DML; CRUD; Introdução à linguagem SQL. 2 Por que precisamos da linguagem SQL? A algebra

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo Departamento de Engenharia Informática 2012/2013 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Busca bonita e veloz

Busca bonita e veloz Indexação de Textos com o Tsearch 2 Busca bonita e veloz CAPA Vamos realizar buscas em um portal jornalístico fictício para verificar a necessidade da indexação de textos e de outros recursos oferecidos

Leia mais

Ferramentas de Administração. PostgreSQL

Ferramentas de Administração. PostgreSQL Ferramentas de Administração ao SGBD PostgreSQL Diego Rivera Tavares de Araújo diegoriverata@gmail.com Introdução Mas o que é PostgreSQL? Introdução as ferramentas O PostgreSQL pode ser acessado a partir

Leia mais

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010 BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

Triggers e mais... Instituto Militar de Engenharia IME 1o. Semestre/2005 Triggers Propósito mais amplo que restrições Restrições onde se explicita o evento Regras event-condition-action (ECA) Eventos:

Leia mais

Python Acessando o Banco de Dados MySQL

Python Acessando o Banco de Dados MySQL Python Acessando o Banco de Dados MySQL ANTONIO SÉRGIO NOGUEIRA PRESIDENTE PRUDENTE SP 2009 1 Sumário 1. Introdução...3 2. Interface MySQL...3 3.Instalando o MySQLdb...3 4.Verificando se o MySQL está instalado...4

Leia mais

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

Leia mais

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs? BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Um Banco

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de BD Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de informação para nosso êxito no curso. A intenção de elaborar

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 6.1 ARQUIVOS E REGISTROS De um modo geral os dados estão organizados em arquivos. Define-se arquivo como um conjunto de informações referentes aos elementos

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br INTRODUÇÃO AO SQL Ferramentas brmodelo Ferramenta Case PostgreSQL versão 8 ou superior SGBD Em 1986 o American

Leia mais

APOSTILA BÁSICA DE MYSQL

APOSTILA BÁSICA DE MYSQL APOSTILA BÁSICA DE MYSQL História O MySQL foi criado na Suécia por dois suecos e um finlandês: David Axmark, Allan Larsson e Michael "Monty" Widenius, que têm trabalhado juntos desde a década de 1980.

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

AULA 1 PHP O QUE É APACHE FRIENDS

AULA 1 PHP O QUE É APACHE FRIENDS O QUE É PHP Se você já programa PHP, aconselho que pule para o capítulo 7 desse livro. Pois até esse capitulo iremos abordar algoritmos em PHP até a construção de uma classe com seus métodos e atributos

Leia mais

Histórico de revisões

Histórico de revisões Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

André Milani. Novatec

André Milani. Novatec André Milani Novatec Sumário Agradecimentos...19 Sobre o autor...21 Prefácio...23 Capítulo 1 Bem-vindo ao PostgreSQL...25 1.1 O que é o PostgreSQL?...25 1.1.1 História do PostgreSQL...26 1.1.2 Licença

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. Triggers um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. o evento pode ser INSERT, UPDATE, ou DELETE. o trigger pode ser accionado imediatamente

Leia mais

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS Esclarecimento Licenciamento de Uso Este documento é propriedade intelectual 2012 da NRSYSTEM COMÉRCIO E SERVIÇOS DE INFORMÁTICA LTDA-ME, consiste de uma compilação de diversos materiais entre livros,

Leia mais

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 1 Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: Banco de Dados

Leia mais

Guia de conceitos básicos API Version 2010-01-01

Guia de conceitos básicos API Version 2010-01-01 : Guia de conceitos básicos Copyright 2011 Amazon Web Services LLC ou suas afiliadas. Todos os direitos reservados. Conceitos básicos do Amazon RDS... 1 Cadastre-se no Amazon RDS... 2 Inicie uma instância

Leia mais

Oracle 10g: SQL e PL/SQL

Oracle 10g: SQL e PL/SQL Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação

Leia mais

www.coldfusionbrasil.com.br

www.coldfusionbrasil.com.br www.coldfusionbrasil.com.br 2000 1 O que é Cold Fusion? 3 Arquitetura Cold Fusion 3 Cold Fusion Markup Language (CFML) 4 O que devo saber para programar em CFML? 4 HTML 4 Desenho de Banco de Dados Relacionais

Leia mais

MySQL - Operações com SQL básico

MySQL - Operações com SQL básico MySQL - Operações com SQL básico Para testar se o MySQL esta instalado corretamente, execute a seguinte linha no prompt do DOS: c:\mysql\bin\mysql Se tudo estiver nos seus devidos lugares você vai receber

Leia mais

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22 Sumário Agradecimentos... 19 Sobre o autor... 20 Prefácio... 21 Capítulo 1 Bem-vindo ao MySQL... 22 1.1 O que é o MySQL?...22 1.1.1 História do MySQL...23 1.1.2 Licença de uso...23 1.2 Utilizações recomendadas...24

Leia mais

1 R$ 50,00 R$ 50,00 reusable object-oriented software 2 Utilizando UML e padrões: uma

1 R$ 50,00 R$ 50,00 reusable object-oriented software 2 Utilizando UML e padrões: uma AUTOR: CESAR AUGUSTO TACLA CRIAÇÃO: 20/5/200 8:24 ÚLTIMA ALTERAÇÃO: 2/5/20 5: TRABALHO DE PADRÕES DE PROJETO ESPECIALIZAÇÃO JAVA 20 INSTRUÇÕES. O trabalho será feito aula a aula de acordo com a matéria

Leia mais

GBD. Introdução PROF. ANDREZA S. AREÃO

GBD. Introdução PROF. ANDREZA S. AREÃO GBD Introdução PROF. ANDREZA S. AREÃO Sistema de arquivos X Sistemas de Banco de Dados Sistema de arquivos Sistema de Banco de Dados Aplicativos Dados (arquivos) Aplicativos SGBD Dados (arquivos) O acesso/gerenciamento

Leia mais

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados Capitulo 2 1. MODELO LÓGICO DE BANCO DE DADOS... 2 1.1 Definição... 2 1.2 Mapeando o modelo conceitual para o modelo lógico... 2 1.2 Dicionário de dados... 3 2. MODELO FÍSICO DO BANCO DE DADOS... 4 2.1

Leia mais

Apache + PHP + MySQL

Apache + PHP + MySQL Apache + PHP + MySQL Fernando Lozano Consultor Independente Prof. Faculdade Metodista Bennett Webmaster da Free Software Foundation fernando@lozano.eti.br SEPAI 2001 O Que São Estes Softwares Apache: Servidor

Leia mais

Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com. Preparando o ambiente do Banco de dados Mysql

Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com. Preparando o ambiente do Banco de dados Mysql Criar database: Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com Preparando o ambiente do Banco de dados Mysql CREATE DATABASE `tempuino` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language para suas

Leia mais

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert...

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert... Apostila FIREBIRD 1 Firebird Equipe: BARBARA CAROLINE SOUZA DE OLIVEIRA Nº 04 GUILHERME ROBERTO PINTO DE SOUZA Nº 16 JOSÉ ROSA MARTINS NETO Nº 22 RAFAEL ALVES DE SOUSA Nº 36 WELLINGTON COSTA SANTOS OLIVEIRA

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

MySQL. Prof. César Melo. com a ajuda de vários

MySQL. Prof. César Melo. com a ajuda de vários MySQL Prof. César Melo com a ajuda de vários Banco de dados e Sistema de gerenciamento; Um banco de dados é uma coleção de dados. Em um banco de dados relacional, os dados são organizados em tabelas. matricula

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Adriano J. Holanda http://holanda.xyz 28/8/2015 Índices Para os testes com os índices criaremos uma tabela chamada tteste com o comando teste=> CREATE TABLE tteste (id int4);

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

Leia mais

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX.

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX. 1/20 PgAdmin O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX. Site para download. Caso queira a última versão - http://www.pgadmin.org/download/ É uma

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

Programação WEB. Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Programação WEB. Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP Programação WEB Prof. André Gustavo Duarte de Almeida andre.almeida@ifrn.edu.br docente.ifrn.edu.br/andrealmeida Aula III Introdução PHP Introdução PHP PHP=Hypertext Pre-Processor Linguagem de script open

Leia mais

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela

Leia mais

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade

Leia mais

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL,

Leia mais

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Página 2 Prgrama Teórico/Prático - SQL Linguagem

Leia mais

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005 Nome Número: Série Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005 Proposta do projeto: Competências: Compreender a orientação a objetos e arquitetura cliente-servidor, aplicando-as

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais