45
© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 1 Introdução ao Introdução ao Banco de Dados Banco de Dados MySQL MySQL Fernando Lozano Fernando Lozano www.lozano.eti.br [email protected] Consultor Independente Prof. Faculdades UniABEU Prof. Universidade Estácio de Sá

Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

Embed Size (px)

Citation preview

Page 1: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 1

Introdução aoIntrodução aoBanco de DadosBanco de Dados

MySQLMySQL

Fernando LozanoFernando [email protected]

Consultor IndependenteProf. Faculdades UniABEU

Prof. Universidade Estácio de Sá

Page 2: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 2

Sobre o AutorSobre o Autor

● Red Hat Certified EngineerLPI Certified Professional Level ISair GNU/Linux Certified Professional

● IBM Certified Network EngineerIBM Certified DB2 Administrator & Developer

● Microsoft Certified Systems EngineerMicrosoft Certified Solutions Developer

● Conselheiro do LPI Brasil

● Webmaster da Free Software Foundation

● Autor do Livro "Java em GNU/Linux"ed. Alta Books, 2002,

Page 3: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 3

Objetivos e Pré-requisitosObjetivos e Pré-requisitos

● Demonstrar o básico necessário para utilizar o MySQL no desenvolvimento de um aplicativo

● Espera-se do aluno:● Conhecimento de alguma linguagem de programação● Conhecimentos de SQL● Conceitos de bancos de dados cliente/servidor

Page 4: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 4

AgendaAgenda

● Por que Bancos de Dados Livres

● Por que MySQL

● Histórico e Características do MySQL

● Quando não usar o MySQL

● Instalação do MySQL em Linux

● Administração do MySQL

● Desenvolvendo para o MySQL em Linux

● Instalação do MySQL em Windows

● Desenvolvendo para o MySQL em Windows

Page 5: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 5

Por que Bancos de Dados Por que Bancos de Dados Livres?Livres?

"Bancos de dados se tornaram parte integrante da infra-estrutura tecnológica de qualquer empresa, por isso devem ser abertos"

SAP AG, http://www.sapdb.org

Page 6: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 6

Software Livre e a Infra-Software Livre e a Infra-Estrutura de TIEstrutura de TI

● Softwares livres já são dominantes em diversos nichos e participantes importantes na maioria dos serviços de rede, tais como:

● Web servers, portais● Firewall, Proxy caches, VPN● Arquivos e Impressão● E-mail, fax● O IDC estima que em 2004 o Linux será o NOS mais

utilizado nas empresas

Page 7: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 7

Bancos de Dados LivresBancos de Dados Livres

● Será que os bancos de dados são o próximo nicho a ser ocupado pelos bancos livres?

● São tão confiáveis quanto os bancos proprietários?● São tão rápidos quanto?● Há serviços de suporte e consultoria?● Funcionam com as ferramenas de desenvolvimento

legadas (Visual Basic, Delphi, PowerBuilder) ou apenas com as ferramentas da era Web (Java, PHP, Perl) ?

● Sim, Sim, Sim e Sim!

Page 8: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 8

Bancos Proprietários e o Bancos Proprietários e o Software LivreSoftware Livre

● Oracle em Linux é 40% mais rápido do que em Windows, segundo a própria Oracle

● DB2 vem com interface DBI para Perl

● Oracle AAS 9i é baseado no Apache e no Jserv

● IBM Websphere é baseado no Apache e no Tomcat

● Sybase, OpenIngres, Informix... todos os bancos importantes tem versões “tier1” para Linux,com uma única exceção (advinhem qual!)

Page 9: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 9

Bancos Livres x ProprietáriosBancos Livres x Proprietários

● Os bancos livres em geral suportam:● Otimização de consultas● Histogramas sobre colunas● Comandos SQL sofisticados● Grants● Campos binários longos● Grandes volume de dados, usuários e transações

(com ajuda de recursos de SMP, RAID e Journaling)● Replicação

Page 10: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 10

Bancos Livres x ProprietáriosBancos Livres x Proprietários

● Os bancos livres ainda não suportam:● Organização física em Tablespaces● Clustering (não com discos compartilhados para HA e

failover, mas sim com heartbeat e replicação)● Transações distribuídas● Consultas paralelas● Particionamento● Views Materializadas● Bancos Multidimensionais / Aplicações OLAP

Page 11: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 11

Por que MySQLPor que MySQL

● É o banco de dados livres mais popular

● É um projeto antigo e maduro

● Download relativamente pequeno, viável para quem utiliza modem de 28.8Kbps

● Não tem uma curva de aprendizado muito íngreme

● Amplo suporte de ferramentas livres:PHP, Perl, Python, Glade / Gnome-DB, ...

● Amplo suporte de ferramentas proprietáriasKylix, Java, Delphi, Visual Basic, ColdFusion, ER-Win, ...

Page 12: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 12

Sobre o MySQLSobre o MySQL

● Surgiu à partir de um formato de arquivos ISAM desenvolvido pela Datakonsult AB

● Implementava o mesmo protocolo de rede e APIs do mSQL (miniSQL), um banco de dados freeware

● A versão Windows era shareware

● Há dois anos foi re-licenciado sob a GNU GPL

● A empresa mudou de nome para MySQL AB

Page 13: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 13

Características do MySQLCaracterísticas do MySQL

● Foco em facilidade de administração e baixo consumo de recursos do hardware

● Se tornou popular graças à Internet, pois os bancos tradicionais tinham tempos de conexão extremamente elevados, inadequados para aplicações CGI

● Para atingir seus objetivos, não implementava funções de overhead elevado, como integridade referencial, commit, rollback e níveis de isolamento de transação

Page 14: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 14

Características do MySQLCaracterísticas do MySQL

● Servidor multithreaded:um único processo mysqld atende a todos os clientes

● Tabelas e índices correspondem à arquivos físicos e bancos de dados correspondem à diretórios

● Distribuição de dados em múltiplos discos deve ser feita manualmente, por meio de links simbólicos

● Segurança via SSL (4.x)

Page 15: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 15

O MySQL Hoje e AmanhãO MySQL Hoje e Amanhã

● Hoje (versões 3.23.x e 4.0.x):● Mecanismos de armazenamento (tipos de tabela) com

suporte à transações● Recursos SQL mais sofisticados, como agregados● Ainda não implementa alguns recursos básicos como

views e foreign keys● Full text search (4.x)

● Próximas versões (4.1, 4,2, ... 5.x, ...):● Maior compatibilidade com o padrão ANSI● Views e procedimentos armazenados

Page 16: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 16

Plataformas Suportadas pelo Plataformas Suportadas pelo MySQLMySQL

● Servidor● Sistemas Unix-Like:

GNU/Linux, FreeBSD, Solaris, AIX, HP-UX, ...● Win32:

Windows 95/98/ME, Windows NT/2000/XP/NET● OS/2 (Em desenvolvimento para BeOS e LynxOS)● MacOS X e Netware

● Cliente:● Drivers ODBC (3.0) e dbExpress para Unix e Windows● Várias ofertas de drivers JDBC 2.0 100% Java

Page 17: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 17

Quando Usar o MySQLQuando Usar o MySQL

● Back-end para geração de conteúdo de web sites

● Aplicações envolvendo basicamente consultas e inserção de dados

● Sistemas altamente replicados, onde o custo de licenças de banco se torna proibitivo

● Sistemas com ampla variação de demanda, pois o MySQL (ao contrário de outros bancos "light") foi validado para grandes volumes de dados ou de usuários

Page 18: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 18

Quando Não Usar o MySQLQuando Não Usar o MySQL

● Aplicações com fortes demandas transacionais, especialmente se houverem muitas atualizações concorrentes!

● Aplicações que necessitem de recursos sofisticados do SQL, como agrupamentos e agregados para geração de relatórios

● Aplicações OLAP

● Empresas como o Yahoo Finance combinam o MySQL (aplicações web) com um outro banco de dados (retaguarda financeira)

Page 19: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 19

Instalação do MySQL em Instalação do MySQL em LinuxLinux

● Três formas de instalar o MySQL● À partir dos fontes (não recomendado)● À partir dos binários fornecidos em mysql.com● À partir dos pacotes RPM fornecidos em mysql.com

● Os binários e pacotes RPM estão prontos para execução, sem necessidade de configuração prévia

● Recomenda-se criar um usuário "mysql" para o banco em vez de rodar como root

Page 20: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 20

Pacotes RPM do MySQLPacotes RPM do MySQL

● MySQLServidor básico, sem transações

● MySQL-clientUtilitários de cliente

● MySQL-develHeaders e bibliotecas estáticas para linguagem C

● MySQL-sharedbibliotecas dinâmicas para aplicações cliente

● MySQL-maxServidor completo, com transações

Page 21: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 21

Iniciando o MySQLIniciando o MySQL

● Basta invocar o comando mysqld ou então utilizar o script instalado em /etc/rc.d/init.d

● No Red Hat:service mysqld start

● Início automático no boot do sistema:chkconfig on mysqld

● Testando a disponibilidade do servidor:mysqladmin version

Page 22: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 22

Encerrando o MySQLEncerrando o MySQL

● Três opções● mysqladmin shutdown● /etc/rc.d/init.d/mysqld stop● service mysqld stop (Red Hat)

● Ele será desligado corretamente durante o shutdown do sistema se foi configurado para início no boot com o comando chkconfig

● Não utilize o comando kill para encerrar o MySQL, pois pode acarretar perda de dados!

Page 23: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 23

Criação e Destruição de BdsCriação e Destruição de Bds

● mysqladmin create nome-do-banco

● mysqladmin drop nome-do-banco

● mysqlshow lista os bancos existentes

● Também é possível copiar (ou remover) o diretório do banco de um servidor para o outro, com o servidor inativo (/var/lib/mysql/nome-do-banco)

Page 24: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 24

Acessando um Banco no Acessando um Banco no MySQLMySQL

● Utilize o utilitário mysql, que é similar ao isql do Sybase ou ao sqlplus do Oracle

● Encerre os comandos SQL com um ponto-e-vírgula ou \g

● Retorne ao prompt do shell com um [Ctrl+D] ou \q

Page 25: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 25

Exemplo de Uso do MySQLExemplo de Uso do MySQL

● [root@laptop root]# mysql bancoWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 9 to server version: 3.23.49

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create table teste ( i integer primary key, s varchar (20) );Query OK, 0 rows affected (0.00 sec)

mysql> insert into teste values (1, 'primeiro');Query OK, 1 row affected (0.00 sec)

mysql> insert into teste values (2, 'segundo');Query OK, 1 row affected (0.00 sec)

Page 26: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 26

Exemplo de Uso do MySQLExemplo de Uso do MySQL

● mysql> select * from teste;+---+----------+| i | s |+---+----------+| 1 | primeiro || 2 | segundo |+---+----------+2 rows in set (0.00 sec)

mysql>\qBye[root@laptop root]#

Page 27: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 27

Mude a senha do root!Mude a senha do root!

● A instalação padrão do MySQL inclui um usuário "root" sem senha, e um usuário anônimo local (@localhost) também sem senha

● Qualquer usuário local pode especificar o nome de usuário "root" e criar ou remover bancos de dados

● set password for root@localhost =password ('senha');

Page 28: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 28

Opções do Cliente MySQLOpções do Cliente MySQL

● Os utilitários de linha de comando do MySQL aceitam as seguintes opções

● -u loginnome do usuário

● -ppede a digitação da senha

● -h hostespecifica o servidor MySQL em outro computador(desde que o firewall não bloqueie o acesso)

Page 29: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 29

Segurança no MySQLSegurança no MySQL

● Ao contrário de outros bancos, onde são associados usuários (login) a senhas, no MySQL são associados também a um nome de host ou endereço IP

● Ou seja, o mesmo login do banco pode ter senhas diferentes, de acordo com o host de origem

● Também é possível especificar restrições de acesso por banco, tabela e mesmo coluna

Page 30: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 30

Criando um Usuário no Criando um Usuário no MySQLMySQL

● [root@laptop root]# mysql -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 12 to server version: 3.23.49

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A

Database changedmysql> grant all on banco.* to teste@localhost identified by 'senha';Query OK, 0 rows affected (0.05 sec)

Page 31: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 31

Utilizando o Usuário Recém-Utilizando o Usuário Recém-CriadoCriado

● [lozano@laptop lozano]$ mysql -u teste -p bancoEnter password: Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 15 to server version: 3.23.49

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select * from teste;+---+----------+| i | s |+---+----------+| 1 | primeiro || 2 | segundo |+---+----------+2 rows in set (0.00 sec)

Page 32: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 32

Acesso Remoto ao MySQLAcesso Remoto ao MySQL

● Normalmente o MySQL é acessado por aplicações web, sendo que o web server está na mesma máquina. Assim sendo basta criar o usuário @localhost

● Aplicações cliente/servidor tradicionais (ODBC, dbExpress, JDBC, DBI) irão acessar o banco em outra máquina. Pode ser definido um host máscara ou especificar o usuário host a host.

Page 33: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 33

Criando um Usuário Remoto Criando um Usuário Remoto no MySQLno MySQL

● [root@laptop root]# mysql -pEnter password: ... mensagens suprimidas ...

mysql> use mysqlReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A

Database changedmysql> grant all on banco.* to teste@'%' identified by 'remoto';Query OK, 0 rows affected (0.05 sec)

Page 34: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 34

Utilizando o Usuário RemotoUtilizando o Usuário Remoto

● [lozano@laptop lozano]$ mysql -h servidor -u teste -p bancoEnter password: ... mensagens suprimidas ...

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select * from teste;+---+----------+| i | s |+---+----------+| 1 | primeiro || 2 | segundo |+---+----------+2 rows in set (0.00 sec)

Page 35: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 35

Scripts SQLScripts SQL

● Em geral inserimos vários comandos DDL (create table, create index) em um script SQL que pode ser executado diretamente pelo mysql redirecionando a entrada padrão:

● mysql -u teste -p banco < cria_agenda.sql

Page 36: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 36

Backup do MySQLBackup do MySQL

● Pode ser feito de duas formas:● Cópia do diretório do banco de dados, com o servidor

desativado (apenas entre a mesma versão, na mesma plataforma)

● Utilitário mysqldump, que gera um script SQL para recriação do banco ou das tabelas selecionadas

Page 37: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 37

Desenvolvendo Para o Desenvolvendo Para o MySQL em LinuxMySQL em Linux

● Distribuições binárias do PHP costumam vir pré-configuradas com um cliente MySQL

● Pode-se baixar e compilar o DBI e DBD-MySQL para Perl (ou usar os pacotes da sua distrbuição preferida do Linux)

● Em geral, aplicações em C ou Pascal, além dos drivers Perl e Python, exigem recomplicação para a versão do cliente MySQL instalada

Page 38: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 38

A API de Cliente do MySQLA API de Cliente do MySQL

● mysql_connectConecta a um servidor

● mysql_selectdbSeleciona um banco de dados no servidor

● mysql_queryExecuta um comando SQL qualquer

● mysql_fetchRetorna uma linha de resultado

● mysql_freeresult / mysql_closeliberam os recursos ocupados pelo cliente

Page 39: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 39

Outras APIsOutras APIs

● Quando existe uma API independente de banco, recomenda-se o uso desta API com o driver específico, em vez da API de cliente do MySQL

● API do MySQLPHP, C/C++, Pascal

● API independente de bancoJava (JDBC), PHP (Pear), Perl (DBI), Python (PyDB),Kylix (dbExpress)

Page 40: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 40

ExemplosExemplos

● Agenda de Contatos● Versão em PHP (API do MySQL)● Versão em PHP (PEAR)● Versão em Pascal● Versão em Java

Page 41: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 41

Instalando o MySQL em Instalando o MySQL em WindowsWindows

● Um único arquivo auto-instalador (estilo InstallShield) fornece o servidor, cliente e bibliotecas para desenvolvimento

● É fornecido um utilitário gráfico para início e término do servidor

● Ou então podemos utilizar a linha de comando do mesmo modo que no Linux(mysqld, mysqladmin, mysqlm, mysqldump)

Page 42: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 42

Desenvolvendo para o Desenvolvendo para o MySQL em WindowsMySQL em Windows

● Linguagens como PHP, Perl, Java, C e Pascal funcionam da mesma forma nos dois ambientes

● Java não necessitam do cliente MySQL instalado; as demais exigem recompilação

● O Delphi fornece um driver dbExpress para o MySQL

● Pode ser baixado e instalado separadamente um driver ODBC para Visual Basic, Excel, etc

Page 43: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 43

ExemplosExemplos

● Agenda de Contatos● PHP, Java e Pascal

(iguais aos exemplos no Linux)● Access (tabelas vinculadas via ODBC)● Open Office (via ODBC)

● O uso do driver ODBC exige a definição de chaves primárias nas tabelas, caso contrário os Datasets não serão atualizáveis

Page 44: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 44

ReferênciasReferências

● MySQLwww.mysql.com

● Freshmeatwww.freshmeat.net

● Sourceforgewww.sourceforge.net

● Porque software livre?www.dwheeler.com/oss_fs_why.html

Page 45: Introdução ao Banco de Dados MySQL · MySQL no desenvolvimento de um aplicativo ... Quando não usar o MySQL

© 2003 Fernando Lozano, http://www.lozano.eti.br Introdução ao Banco de Dados MySQL, Pag. 45

PerguntasPerguntas

● Dúvidas:[email protected]

● Palestra e atualizações:www.lozano.eti.br