1086
Manual de Referência do MySQL 4.1

Apostilas Hacker

Embed Size (px)

Citation preview

  • Manual de Referncia do MySQL4.1

  • Manual de Referncia do MySQL 4.1This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com[http://dev.mysql.com/doc/mysql/en]. The original Reference Manual is in English, and this transla-tion is not necessarily as up to date as the English version.

    Resumo

    Document generated on: 2006-01-10 (reviso: 45)

  • ndicePreface ............................................................................................................. xvii1. Informaes Gerais ............................................................................................ 1

    1.1. Sobre Este Manual .................................................................................. 21.1.1. Convenes Usadas Neste Manual ................................................... 2

    1.2. Viso Geral do Sistema de Gerenciamento de Banco de Dados MySQL ............. 41.2.1. Histria do MySQL ....................................................................... 51.2.2. As Principais Caractersticas do MySQL ........................................... 51.2.3. Estabilidade do MySQL ................................................................. 81.2.4. Qual o Tamanho Que as Tabelas do MySQL Podem Ter? ..................... 91.2.5. Compatibilidade Com o Ano 2000 (Y2K) .........................................10

    1.3. Viso Geral da MySQL AB ......................................................................111.3.1. O Modelo de Negcio e Servios da MySQL AB ...............................121.3.2. Informaes para Contato ..............................................................14

    1.4. Suporte e Licenciamento do MySQL ..........................................................151.4.1. Suporte Oferecido pela MySQL AB ................................................151.4.2. Copyrights e Licenas Usadas pelo MySQL ......................................161.4.3. Licenas do MySQL .....................................................................161.4.4. Logomarcas e Marcas Registradas da MySQL AB .............................18

    1.5. Mapa de Desenvolvimento do MySQL .......................................................191.5.1. MySQL 4.0 in a Nutshell ...............................................................201.5.2. MySQL 4.1 in a Nutshell ...............................................................211.5.3. MySQL 5.0, A Prxima Distribuio de Desenvolvimento ...................23

    1.6. MySQL e o Futuro (o TODO) ...................................................................241.6.1. Novos Recursos Planejados Para a Verso 4.1 ...................................241.6.2. Novos Recursos Planejados Para a Verso 5.0 ...................................241.6.3. Novos Recursos Planejados Para a Verso 5.1 ...................................251.6.4. Novos Recursos Planejados Para a Verso em um Futuro Prximo ........261.6.5. Novos Recursos Planejados Para a Verso em um Futuro a Mdio Prazo 281.6.6. Novos Recursos que No Planejamos Fazer ......................................30

    1.7. Fontes de Informaes do MySQL .............................................................301.7.1. Listas de Discusso MySQL ..........................................................301.7.2. Suporte a Comunidade MySQL Atrvs do IRC (Internet Relay Chat) .....37

    1.8. Qual compatibilidade aos padres o MySQL oferece ? ..................................381.8.1. Qual Padro o MySQL Segue? .......................................................381.8.2. Executando o MySQL no modo ANSI .............................................381.8.3. Extenses do MySQL para o Padro SQL-92 ....................................391.8.4. Diferenas do MySQL em Comparao com o SQL-92 .......................421.8.5. Como o MySQL Lida com Restries ..............................................471.8.6. Erros Conhecidos e Deficincias de Projetos no MySQL .....................49

    2. Instalao do MySQL ........................................................................................542.1. Instalao rpida padro do MySQL ..........................................................54

    2.1.1. Instalando o MySQL no Windows ..................................................542.1.2. Instalando o MySQL no Linux .......................................................622.1.3. Instalando o MySQL no Mac OS X .................................................642.1.4. Instalando o MySQL no NetWare ...................................................67

    2.2. Detalhes Gerais de Instalao ...................................................................682.2.1. Como obter o MySQL ..................................................................682.2.2. Verificando a Integridade do Pacote Usando MD5 Checksums ou GnuPG..........................................................................................................682.2.3. Sistemas Operacionais suportados pelo MySQL ................................702.2.4. Qual verso do MySQL deve ser usada ............................................722.2.5. Layouts de Instalao ...................................................................752.2.6. Como e quando as atualizaes so lanadas? ...................................762.2.7. Filosofia das Distribuies - Nenhum Bug Conhecidos nas Distribuies 772.2.8. Binrios MySQL compilados pela MySQL AB .................................782.2.9. Instalando uma Distribuio Binria do MySQL ................................82

    2.3. Instalando uma distribuio com fontes do MySQL ......................................85

    iv

  • 2.3.1. Viso geral da instalao rpida ......................................................862.3.2. Aplicando patches ........................................................................882.3.3. Opes tpicas do configure ......................................................892.3.4. Instalando pela rvore de fontes do desenvolvimento ..........................922.3.5. Lidando com Problemas de Compilao ...........................................942.3.6. Notas MIT-pthreads .....................................................................972.3.7. Instalando o MySQL a partir do Fonte no Windows ...........................99

    2.4. Configuraes e Testes Ps-instalao ...................................................... 1022.4.1. Problemas Executando o mysql_install_db ............................ 1062.4.2. Problemas Inicializando o Servidor MySQL ................................... 1072.4.3. Inicializando e parando o MySQL automaticamente. ........................ 109

    2.5. Atualizando/Desatualizando o MySQL ..................................................... 1102.5.1. Atualizando da Verso 4.0 para 4.1 ............................................... 1112.5.2. Atualizando da Verso 3.23 para 4.0 .............................................. 1132.5.3. Atualizando da verso 3.22 para 3.23 ............................................. 1172.5.4. Atualizando da verso 3.21 para 3.22 ............................................. 1182.5.5. Atualizando da verso 3.20 para 3.21 ............................................. 1192.5.6. Atualizando a Tabela de Permisses .............................................. 1202.5.7. Atualizando para outra arquitetura ................................................. 1202.5.8. Atualizando o MySQL no Windows .............................................. 122

    2.6. Notas especficas para os Sistemas Operacionais ........................................ 1222.6.1. Notas Windows ......................................................................... 1222.6.2. Notas Linux (Todas as verses) .................................................... 1262.6.3. Notas Solaris ............................................................................ 1332.6.4. Notas BSD ............................................................................... 1372.6.5. Notas Mac OS X ....................................................................... 1402.6.6. Notas de Outros Unix ................................................................. 1402.6.7. Notas OS/2 ............................................................................... 1512.6.8. Notas Novell NetWare ................................................................ 1512.6.9. Notas BeOS .............................................................................. 151

    2.7. Comentrios de Instalao do Perl ........................................................... 1522.7.1. Instalando Perl no Unix ............................................................... 1522.7.2. Instalaando ActiveState Perl no Windows ....................................... 1522.7.3. Problemas Usando a Interface Perl DBI/DBD .................................. 153

    3. Tutorial de Introduo Do MySQL ..................................................................... 1563.1. Conectando e Desconectando do Servidor ................................................. 1563.2. Fazendo Consultas ................................................................................ 1573.3. Criao e Utilizao de um Banco de Dados .............................................. 160

    3.3.1. Criando e Selecionando um Banco de Dados ................................... 1613.3.2. Criando uma Tabela ................................................................... 1613.3.3. Carregando dados em uma tabela .................................................. 1633.3.4. Recuperando Informaes de uma Tabela ....................................... 164

    3.4. Obtendo Informaes Sobre Bancos de Dados e Tabelas .............................. 1773.5. Utilizando mysql em Modo Batch .......................................................... 1783.6. Exemplos de Consultas Comuns .............................................................. 179

    3.6.1. O Valor Mximo para uma Coluna ................................................ 1803.6.2. O Registro que Armazena o Valor Mximo para uma Coluna Determinada........................................................................................................ 1803.6.3. Mximo da Coluna por Grupo ...................................................... 1813.6.4. As Linhas Armazenando o Group-wise Mximo de um Certo Campo .. 1813.6.5. Utilizando Variveis de Usurio ................................................... 1823.6.6. Utilizando Chaves Estrangeiras .................................................... 1823.6.7. Pesquisando em Duas Chaves ...................................................... 1843.6.8. Calculando Visitas Dirias ........................................................... 1843.6.9. Usando AUTO_INCREMENT ....................................................... 185

    3.7. Consultas de Projetos Gmeos ................................................................ 1863.7.1. Encontrando Todos Gmeos No-distribudos ................................. 1863.7.2. Mostrando uma Tabela sobre a Situao dos Pares Gmeos ............... 188

    3.8. Utilizando MySQL com Apache ............................................................. 1894. Administrao do Bancos de Dados MySQL ........................................................ 190

    4.1. Configurando o MySQL ........................................................................ 1904.1.1. Opes de Linha de Comando do mysqld ..................................... 1904.1.2. Arquivo de Opes my.cnf ........................................................ 198

    Manual de Referncia do MySQL 4.1

    v

  • 4.2. Executando Mltiplos MySQL Servers na Mesma Mquina ......................... 2014.2.1. Executando Mltiplos Servidores no Windows ................................ 2034.2.2. Executando Mltiplos Servidores no Unix ...................................... 2064.2.3. Usando Programas Clientes em um Ambiente Multi-Servidor ............ 207

    4.3. Detalhes Gerais de Segurana e o Sistema de Privilgio de Acesso do MySQL 2084.3.1. Segurana Geral ........................................................................ 2084.3.2. Como Tornar o MySQL Seguro contra Crackers .............................. 2104.3.3. Opes de Inicializao para o mysqld em Relao a Segurana. ...... 2124.3.4. Detalhes de Segurana com LOAD DATA LOCAL ........................... 2134.3.5. O Que o Sistema de Privilgios Faz ............................................... 2134.3.6. Como o Sistema de Privilgios Funciona ........................................ 2134.3.7. Privilgios Fornecidos pelo MySQL .............................................. 2174.3.8. Conectando ao Servidor MySQL .................................................. 2194.3.9. Controle de Acesso, Estgio 1: Verificao da Conexo .................... 2204.3.10. Controle de Acesso, Estgio 2: Verificao da Requisio ............... 2234.3.11. Hashing de Senhas no MySQL 4.1 .............................................. 2254.3.12. Causas dos Erros de Accesso Negado ..................................... 229

    4.4. Gerenciamento das Contas dos Usurios no MySQL ................................... 2334.4.1. A Sintaxe de GRANT e REVOKE ................................................... 2334.4.2. Nomes de Usurios e Senhas do MySQL ........................................ 2384.4.3. Quando as Alteraes nos Privilgios tem Efeito .............................. 2394.4.4. Configurando os Privilgios Iniciais do MySQL .............................. 2394.4.5. Adicionando Novos Usurios ao MySQL ....................................... 2404.4.6. Deletando Usurios do MySQL .................................................... 2434.4.7. Limitando os Recursos dos Usurios ............................................. 2434.4.8. Configurando Senhas .................................................................. 2444.4.9. Mantendo Sua Senha Segura ........................................................ 2454.4.10. Usando Conexes Seguras ......................................................... 246

    4.5. Preveno de Disastres e Recuperao ...................................................... 2524.5.1. Backups dos Bancos de Dados ..................................................... 2524.5.2. Sintaxe de BACKUP TABLE ........................................................ 2534.5.3. Sintaxe de RESTORE TABLE ...................................................... 2544.5.4. Sintaxe de CHECK TABLE .......................................................... 2544.5.5. Sintaxe do REPAIR TABLE ....................................................... 2564.5.6. Utilizando myisamchk para Manuteno de Tabelas e Recuperao emCaso de Falhas .................................................................................. 2574.5.7. Configurando um Regime de Manuteno das Tabelas ...................... 2674.5.8. Obtendo Informaes sobre as Tabelas .......................................... 268

    4.6. Adiministrao do Banco de Dados e Referncia de Linguagem .................... 2734.6.1. Sintaxe de OPTIMIZE TABLE .................................................... 2734.6.2. Sintaxe de ANALYZE TABLE ...................................................... 2734.6.3. Sintaxe de CHECKSUM TABLE .................................................... 2744.6.4. Sintaxe de FLUSH ...................................................................... 2744.6.5. Sintaxe de RESET ...................................................................... 2754.6.6. Sintaxe de PURGE MASTER LOGS .............................................. 2754.6.7. Sintaxe de KILL ........................................................................ 2764.6.8. Sintaxe de SHOW ........................................................................ 276

    4.7. Localizao do MySQL e Utilizao Internacional ...................................... 2964.7.1. O Conjunto de Caracteres Utilizado para Dados e Ordenao ............. 2964.7.2. Mensagens de Erros em Outras Lnguas ......................................... 2984.7.3. Adicionando um Novo Conjunto de Caracteres ................................ 2984.7.4. Os Vetores de Definies de Caracteres ......................................... 3004.7.5. Suporte Ordenao de Strings .................................................... 3004.7.6. Suporte Caracteres Multi-byte .................................................... 3004.7.7. Problemas com Conjuntos de Caracteres ........................................ 301

    4.8. Utilitrios e Scripts do Lado do Servidor MySQL ....................................... 3014.8.1. Viso Geral dos Scripts e Utilitrios do Lado Servidor ...................... 3014.8.2. mysqld-safe, o wrapper do mysqld ........................................ 3024.8.3. mysqld_multi, programa para gerenciar mltiplos servidores MySQL........................................................................................................ 3044.8.4. myisampack, O Gerador de Tabelas Compactadas de Somente Leitura doMySQL ............................................................................................ 3074.8.5. mysqld-max, om servidor mysqld extendido .............................. 312

    Manual de Referncia do MySQL 4.1

    vi

  • 4.9. Utilitrios e Scripts do Lado do Cliente MySQL ......................................... 3144.9.1. Viso Geral dos Utilitrios e Scripts do Lado do Cliente .................... 3144.9.2. mysql, A Ferramenta de Linha de Comando .................................. 3164.9.3. mysqlcc, The MySQL Control Center ......................................... 3244.9.4. mysqladmin, Administrando um Servidor MySQL ........................ 3264.9.5. mysqlbinlog, Executando as Consultas a Partir de um Log Binrio . 3284.9.6. Usando mysqlcheck para Manuteno de Tabelas e Recuperao em Ca-so de Falhas ...................................................................................... 3294.9.7. mysqldump, Descarregando a Estrutura de Tabelas e Dados ............ 3324.9.8. mysqlhotcopy, Copiando Bancos de Dados e Tabelas do MySQL .. 3364.9.9. mysqlimport, Importando Dados de Arquivos Texto .................... 3384.9.10. mysqlshow, Exibindo Bancos de Dados, Tabelas e Colunas ........... 3404.9.11. mysql_config, Opes para compilao do cliente MySQL ......... 3414.9.12. perror, Explicando Cdigos de Erros ........................................ 3424.9.13. Como Executar Comandos SQL a Partir de um Arquivo Texto ......... 342

    4.10. Os Arquivos de Log do MySQL ............................................................ 3434.10.1. O Log de Erros ........................................................................ 3434.10.2. O Log de Consultas .................................................................. 3444.10.3. O Log de Atualizaes .............................................................. 3444.10.4. O Log Binrio ......................................................................... 3454.10.5. O Log para Consultas Lentas ...................................................... 3474.10.6. Manuteno do Log de Arquivo .................................................. 348

    4.11. Replicao no MySQL ........................................................................ 3484.11.1. Introduo .............................................................................. 3484.11.2. Viso Geral da Implementao da Replicao ................................ 3494.11.3. Detalhes de Implementao da Replicao .................................... 3504.11.4. Como Configurar a Replicao ................................................... 3554.11.5. Recursos de Replicao e Problemas Conhecidos ........................... 3594.11.6. Opes de Inicializao da Replicao ......................................... 3614.11.7. Instrues SQL para Controle do Servidor Master .......................... 3694.11.8. Instrues SQL para Controle do Servidor Slave ............................ 3704.11.9. FAQ da Replicao .................................................................. 3784.11.10. Problemas com Replicao ....................................................... 3834.11.11. Relatando Problemas de Replicao ........................................... 384

    5. Otimizao do MySQL .................................................................................... 3855.1. Viso Geral da Otimizao ..................................................................... 385

    5.1.1. Limitaes do Projeto MySQL/Trocas ........................................... 3855.1.2. Portabilidade ............................................................................. 3865.1.3. Para que Utilizamos o MySQL? .................................................... 3875.1.4. O Pacote de Benchmark do MySQL .............................................. 3875.1.5. Utilizando seus Prprios Benchmarks ............................................ 389

    5.2. Otimizando SELECTs e Outras Consultas ................................................. 3895.2.1. Sintaxe de EXPLAIN (Obter informaes sobre uma SELECT) .......... 3905.2.2. Estimando o Desempenho de uma Consulta .................................... 3975.2.3. Velocidade das Consultas que Utilizam SELECT ............................. 3975.2.4. Como o MySQL Otimiza Clusulas WHERE .................................... 3985.2.5. Como o MySQL Otimiza IS NULL .............................................. 4005.2.6. Como o MySQL Otimiza Clusulas DISTINCT .............................. 4005.2.7. Como o MySQL Otimiza LEFT JOIN e RIGHT JOIN .................. 4015.2.8. Como o MySQL Otimiza Clusulas ORDER BY .............................. 4025.2.9. Como o MySQL Otimiza Clusulas LIMIT .................................... 4035.2.10. Performance das Consultas que Utilizam INSERT ......................... 4045.2.11. Performance das Consultas que Utilizam UPDATE ......................... 4065.2.12. Performance das Consultas que Utilizam DELETE ......................... 4065.2.13. Mais Dicas sobre Otimizaes .................................................... 406

    5.3. Detalhes sobre Locks ............................................................................ 4095.3.1. Como o MySQL Trava as Tabelas ................................................. 4095.3.2. Detalhes sobre Lock de Tabelas .................................................... 409

    5.4. Otimizando a Estrutura de Banco de Dados ............................................... 4115.4.1. Opes do Projeto ...................................................................... 4115.4.2. Deixando os Dados com o Menor Tamanho Possvel ........................ 4115.4.3. Como o MySQL Utiliza ndices .................................................... 4125.4.4. ndices de Colunas ..................................................................... 414

    Manual de Referncia do MySQL 4.1

    vii

  • 5.4.5. ndices de Mltiplas Colunas ....................................................... 4155.4.6. Como o MySQL Conta as Tabelas Abertas ..................................... 4165.4.7. Como o MySQL Abre e Fecha as Tabelas ....................................... 4165.4.8. Desvantagem em Criar um Nmero Grande de Tabelas no Mesmo Banco deDados .............................................................................................. 417

    5.5. Otimizando o Servidor MySQL ............................................................... 4175.5.1. Sintonia dos Parmetros em Tempo de Sistema/Compilao e na Inicializa-o .................................................................................................. 4175.5.2. Parmetros de Sintonia do Servidor ............................................... 4185.5.3. Como a Compilao e a Ligao Afetam a Velocidade do MySQL ...... 4205.5.4. Como o MySQL Utiliza a Memria ............................................... 4225.5.5. Como o MySQL Utiliza o DNS .................................................... 4235.5.6. Sintaxe de SET .......................................................................... 423

    5.6. Detalhes de Disco ................................................................................. 4275.6.1. Utilizando Links Simblicos ........................................................ 429

    6. Referncia de Linguagem do MySQL ................................................................. 4326.1. Estrutura da Linguagem ......................................................................... 432

    6.1.1. Literais: Como Gravar Strings e Numerais ...................................... 4326.1.2. Nomes de Banco de dados, Tabela, ndice, Coluna e Alias ................. 4356.1.3. Caso Sensitivo nos Nomes ........................................................... 4376.1.4. Variveis de Usurio .................................................................. 4376.1.5. Variveis de Sistema .................................................................. 4386.1.6. Sintaxe de Comentrios .............................................................. 4416.1.7. Tratamento de Palavras Reservadas no MySQL ............................... 442

    6.2. Tipos de Campos .................................................................................. 4446.2.1. Tipos Numricos ....................................................................... 4496.2.2. Tipos de Data e Hora .................................................................. 4516.2.3. Tipos String .............................................................................. 4576.2.4. Escolhendo o Tipo Correto para uma Coluna ................................... 4626.2.5. Usando Tipos de Colunas de Outros Mecanismos de Banco de Dados .. 4626.2.6. Exigncias de Armazenamento dos Tipos de Coluna ......................... 462

    6.3. Funes para Uso em Clusulas SELECT e WHERE .................................... 4646.3.1. Operadores e Funes de Tipos no Especificados ........................... 4646.3.2. Funes String .......................................................................... 4726.3.3. Funes Numricas .................................................................... 4836.3.4. Funes de Data e Hora .............................................................. 4916.3.5. Funes de Converso ................................................................ 5076.3.6. Outras Funes .......................................................................... 5096.3.7. Funes e Modificadores para Usar com Clusulas GROUP BY .......... 519

    6.4. Manipulao de Dados: SELECT, INSERT, UPDATE e DELETE .................. 5256.4.1. Sintaxe SELECT ........................................................................ 5256.4.2. Sintaxe de Subquery ................................................................... 5326.4.3. Sintaxe INSERT ........................................................................ 5426.4.4. Sintaxe UPDATE ........................................................................ 5466.4.5. Sintaxe DELETE ........................................................................ 5486.4.6. Sintaxe TRUNCATE .................................................................... 5496.4.7. Sintaxe REPLACE ...................................................................... 5506.4.8. Sintaxe LOAD DATA INFILE .................................................... 5506.4.9. Sintaxe HANDLER ...................................................................... 5576.4.10. Sintaxe DO .............................................................................. 558

    6.5. Definio de Dados: CREATE, DROP e ALTER .......................................... 5586.5.1. Sintaxe CREATE DATABASE ...................................................... 5596.5.2. Sintaxe DROP DATABASE .......................................................... 5596.5.3. Sintaxe CREATE TABLE ............................................................ 5596.5.4. Sintaxe ALTER TABLE .............................................................. 5686.5.5. Sintaxe RENAME TABLE ............................................................ 5726.5.6. Sintaxe DROP TABLE ................................................................ 5726.5.7. Sintaxe CREATE INDEX ............................................................ 5736.5.8. Sintaxe DROP INDEX ................................................................ 573

    6.6. Comandos Utilitrios Bsicos do Usurio MySQL ...................................... 5746.6.1. Sintaxe USE .............................................................................. 5746.6.2. Sintaxe DESCRIBE (Obtem Informaes Sobre Colunas) .................. 574

    6.7. Comandos Transacionais e de Lock do MySQL ......................................... 574

    Manual de Referncia do MySQL 4.1

    viii

  • 6.7.1. Sintaxe de START TRANSACTION, COMMIT e ROLLBACK ............. 5746.7.2. Instrues que No Podem Ser Desfeitas ........................................ 5756.7.3. Instrues que Fazem um Commit Implicito ................................... 5756.7.4. Sintaxe de SAVEPOINT e ROLLBACK TO SAVEPOINT ................ 5766.7.5. Sintaxe LOCK TABLES e UNLOCK TABLES ................................ 5766.7.6. Sintaxe SET TRANSACTION ...................................................... 578

    6.8. Pesquisa Full-text no MySQL ................................................................. 5786.8.1. Restries Full-text .................................................................... 5826.8.2. Ajuste Fino de Pesquisas Full-text no MySQL ................................. 5826.8.3. TODO de Pesquisas Full-text ....................................................... 583

    6.9. Cache de Consultas do MySQL ............................................................... 5846.9.1. Como a Cache de Consultas Opera ................................................ 5846.9.2. Configurao da Cache de Consultas ............................................. 5866.9.3. Opes da Cache de Consultas na SELECT .................................... 5876.9.4. Estado e Manuteno da Cache de Consultas ................................... 587

    7. Tipos de Tabela do MySQL .............................................................................. 5897.1. Tabelas MyISAM .................................................................................. 590

    7.1.1. Espao Necessrio para Chaves .................................................... 5927.1.2. Formatos de Tabelas MyISAM ...................................................... 5927.1.3. Problemas com Tabelas MyISAM .................................................. 595

    7.2. Tabelas MERGE .................................................................................... 5967.2.1. Problemas com Tabelas MERGE .................................................... 598

    7.3. Tabelas ISAM ...................................................................................... 5997.4. Tabelas HEAP ...................................................................................... 6007.5. Tabelas InnoDB .................................................................................. 601

    7.5.1. Viso Geral de Tabelas InnoDB .................................................... 6017.5.2. InnoDB no MySQL Verso 3.23 ................................................... 6017.5.3. Opes de Inicializao do InnoDB ............................................... 6027.5.4. Criando Tablespaces no InnoDB ................................................... 6077.5.5. Criando Tabelas InnoDB ............................................................. 6097.5.6. Adicionando e Removendo Arquivos de Dados e Log do InnoDB ....... 6137.5.7. Fazendo Backup e Recuperando um Banco de Dados InnoDB ............ 6137.5.8. Movendo um Banco de Dados InnoDB para Outra Mquina ............... 6167.5.9. Modelo Transacional do InnoDB .................................................. 6167.5.10. Dicas de Ajuste de Desempenho ................................................. 6227.5.11. Implementao de Multi-versioning ............................................. 6267.5.12. Estrutura de Tabelas e ndices .................................................... 6267.5.13. Gerenciamento do Espao de Arquivos e E/S de Disco .................... 6287.5.14. Tratando Erros ......................................................................... 6307.5.15. Restries em Tabelas InnoDB ................................................... 6307.5.16. Histrico de Alteraes do InnoDB ............................................. 6317.5.17. Informaes de Contato do InnoDB ............................................ 648

    7.6. Tabelas BDB ou BerkeleyDB ............................................................... 6487.6.1. Viso Geral de Tabelas BDB ........................................................ 6487.6.2. Instalando BDB .......................................................................... 6497.6.3. Opes de Inicializao do BDB ................................................... 6497.6.4. Caractersticas de Tabelas BDB: .................................................... 6507.6.5. Itens a serem corrigidos no BDB num futuro prximo: ....................... 6517.6.6. Sistemas operacionais suportados pelo BDB .................................... 6517.6.7. Restries em Tabelas BDB .......................................................... 6527.6.8. Erros Que Podem Ocorrer Usando Tabelas BDB .............................. 652

    8. Introduo ao MaxDB ..................................................................................... 6538.1. Historia do MaxDB .............................................................................. 6538.2. Licenciamento e Suporte ........................................................................ 6538.3. Conceitos Bsicos do MaxDB ................................................................. 6538.4. Diferenas de Recursos entre o MaxDB e o MySQL ................................... 6538.5. Interoperability Features between MaxDB and MySQL ............................... 6548.6. Links Relacionados ao MaxDB ............................................................... 6548.7. Palavras Reservadas no MaxDB .............................................................. 654

    9. Conjunto de Caracteres Nacionais e Unicode ....................................................... 6589.1. Conjuntos de Caracteres e Collations em Geral .......................................... 6589.2. Conjunto de Caracteres e Collations no MySQL ......................................... 6599.3. Determinando o Conjunto de Caracteres e Collation Padres ........................ 659

    Manual de Referncia do MySQL 4.1

    ix

  • 9.3.1. Conjunto de Caracteres e Collations do Servidor .............................. 6599.3.2. Conjunto de Caracteres e Collation de Banco de Dados ..................... 6609.3.3. O Conjunto de Caracteres e Collations de Tabela ............................. 6619.3.4. Conjunto de Caracteres e Collation de Colunas ................................ 6619.3.5. Exemplos de Atribuies de Conjuntos de Caracteres e Collation ........ 6629.3.6. Conjunto de Caracteres e Collation de Conexo ............................... 6639.3.7. Conjunto de Caracteres e Collation de Caracter de String Literal ......... 6639.3.8. Clusula COLLATE em Vrias Partes de uma Consulta SQL .............. 6649.3.9. Precedncia da Clusula COLLATE ............................................... 6659.3.10. Operador BINARY ................................................................... 6669.3.11. Alguns Casos Especiais Onde a Determinao da Collation e Trabalhosa........................................................................................................ 6669.3.12. Collations Devem Ser para o Conjunto de Caracteres Certo .............. 6679.3.13. Um exemplo do Efeito da Collation ............................................. 667

    9.4. Operaes Afetadas pelo Suporte a Conjunto de Caracteres .......................... 6679.4.1. Strings de Resultados ................................................................. 6689.4.2. CONVERT() ............................................................................ 6689.4.3. CAST() .................................................................................. 6689.4.4. SHOW CHARACTER SET .......................................................... 6699.4.5. SHOW COLLATION .................................................................. 6699.4.6. SHOW CREATE DATABASE ...................................................... 6709.4.7. SHOW FULL COLUMNS ............................................................ 670

    9.5. Suporte Unicode .................................................................................. 6709.6. UTF8 para Metdados ............................................................................ 6719.7. Compatibilidade com Outros SGBDs ....................................................... 6729.8. Novo Formato do Arquivo de Configurao do Conjunto de Caracteres .......... 6729.9. Conjunto de Caracteres Nacional ............................................................. 6729.10. Atualizando para o MySQL 4.0 ............................................................. 672

    9.10.1. Conjunto de Caracteres do MySQL e o Par/Conjunto de Caracter/CollationCorrespondente do MySQL 4.1 ............................................................. 673

    9.11. Os conjuntos de Caracteres e Collations que o MySQL Suporta ................... 6749.11.1. O Conjunto de Caracteres Unicode .............................................. 6759.11.2. Conjunto de Caracteres para Plataformas Especficas ...................... 6759.11.3. Conjunto de Caracteres do Sul da Europa e Oriente Mdio ............... 6759.11.4. Os Conjuntos de Caracteres Asiticos .......................................... 6759.11.5. Os Conjuntos de Caracteres Blticos ............................................ 6769.11.6. Os Conjuntos de Caracteres Cirlicos ........................................... 6769.11.7. O Conjunto de Caracteres da Europa Central ................................. 6779.11.8. Os Conjuntos de Caracteres da Europa Ocidental ........................... 678

    10. Extenses Espacias em MySQL ....................................................................... 68010.1. Introduo ......................................................................................... 68010.2. O Modelo Geomtrico OpenGIS ............................................................ 681

    10.2.1. A Hierarquia da Classe Geometry ............................................. 68110.2.2. Classe Geometry ................................................................... 68210.2.3. Classe Point ......................................................................... 68310.2.4. Classe Curve ......................................................................... 68310.2.5. Classe LineString ............................................................... 68410.2.6. Classe Surface ..................................................................... 68410.2.7. Classe Polygon ..................................................................... 68410.2.8. Classe GeometryCollection ............................................... 68510.2.9. Classe MultiPoint ............................................................... 68510.2.10. Classe MultiCurve ............................................................. 68510.2.11. Classe MultiLineString (Multi Linhas) ............................... 68610.2.12. Classe MultiSurface (Multi Superfcies) ............................... 68610.2.13. Classe MultiPolygon (Multi Polgonos) ................................. 686

    10.3. Formatos de Dados Espaciais Suportados ................................................ 68710.3.1. Formato Well-Known Text (WKT) .............................................. 68710.3.2. Formato Well-Known Binary (WKB) .......................................... 688

    10.4. Criando um Banco de Dados MySQL Habilitado Espacialmente .................. 68910.4.1. Tipos de Dados Espaciais do MySQL .......................................... 68910.4.2. Criando Valores Espaciais ......................................................... 68910.4.3. Criando Colunas Espaciais ......................................................... 69310.4.4. Entrando com Dados em Colunas Espaciais .................................. 693

    Manual de Referncia do MySQL 4.1

    x

  • 10.4.5. Buscando Dados Espaciais ......................................................... 69410.5. Analisando Informao Espacial ............................................................ 695

    10.5.1. Funes Para Converter Geometrias Entre Formatos Diferentes ........ 69510.5.2. Funes de Anlise das Propriedades de Geometry ...................... 69610.5.3. Funes Que Criam Novas Geometrias de Outras Existentes ............ 70210.5.4. Funes Para Testar Relaes Espaciais Entre Objetos Geomtricos .. 70410.5.5. Relaes de Retngulo de Limite Mnimo (Minimal Bounding Rectangles- MBR) em Geometrias ....................................................................... 70410.5.6. Funes que Testam Relacionamentos Espaciais Entre Geometrias .... 705

    10.6. Otimizando Anlises Espaciais .............................................................. 70610.6.1. Criando ndices Espaciais .......................................................... 70610.6.2. Usando ndice Espacial ............................................................. 707

    10.7. Compatibilidade e Conformidade com o MySQL ...................................... 70910.7.1. Recursos GIS Que Ainda No Esto Implementados ....................... 709

    11. Stored Procedures e Funes ........................................................................... 71011.1. Sintaxe de Stored Procedure ................................................................. 710

    11.1.1. Manuteno de Stored Procedures ............................................... 71111.1.2. SHOW PROCEDURE STATUS e SHOW FUNCTION STATUS ........ 71311.1.3. CALL ..................................................................................... 71311.1.4. BEGIN ... END Compound Statement ..................................... 71311.1.5. Instruo DECLARE ................................................................. 71411.1.6. Variables in Stored Procedures ................................................... 71411.1.7. Condies e Handlers ............................................................... 71411.1.8. Cursors .................................................................................. 71611.1.9. Flow Control Constructs ............................................................ 717

    12. Ferramentas de Clientes e APIs do MySQL ........................................................ 72012.1. API C do MySQL ............................................................................... 720

    12.1.1. Tipos de Dados da API C ........................................................... 72012.1.2. Viso Geral das Funo da API C ............................................... 72312.1.3. Descrio das Funes da API C ................................................. 72612.1.4. Instrues Preparadas da API C .................................................. 76312.1.5. Tipos de Dados de Instrues Preparadas da API C ......................... 76412.1.6. Viso Geral das Funes de Instrues Preparadas da API C ............ 76612.1.7. Descrio das Funes de Instruo Preparada da API C .................. 76912.1.8. Tratando a Execuo de Mltiplas Consultas na API C .................... 78612.1.9. Manipulando Valores de Data e Hora na API C .............................. 78612.1.10. Descrio das Funes de Threads da API C ................................ 78712.1.11. Descrio das Funes do Servidor Embutido da API C ................. 78912.1.12. Dvidas e problemas comuns ao utilzar a API C ........................... 79012.1.13. Construindo Programas Clientes ................................................ 79112.1.14. Como Fazer um Cliente em Threads ........................................... 79212.1.15. libmysqld, a Biblioteca do Servidor Embutido MySQL .................. 793

    12.2. Suporte ODBC ao MySQL ................................................................... 79812.2.1. Como Instalar o MyODBC ........................................................ 79812.2.2. Como Preencher os Vrios Campos no Programa de Administrao doODBC ............................................................................................. 79912.2.3. Parmetros de Conexo do MyODBC .......................................... 80012.2.4. Como Relatar Problemas com o MyODBC ................................... 80112.2.5. Programas que Funcionam com MyODBC .................................... 80112.2.6. Como Obter o Valor de uma Coluna AUTO_INCREMENT no ODBC . 80612.2.7. Relatando Problemas com MyODBC ........................................... 806

    12.3. Conectividade Java (JDBC) ao MySQL .................................................. 80712.4. API PHP do MySQL ........................................................................... 807

    12.4.1. Problemas Comuns com MySQL e PHP ....................................... 80712.5. API Perl do MySQL ............................................................................ 808

    12.5.1. DBI com DBD::mysql ........................................................... 80812.5.2. A interface DBI ....................................................................... 80812.5.3. Mais Informaes DBI/DBD ....................................................... 815

    12.6. API C++ do MySQL ........................................................................... 81512.6.1. Borland C++ ........................................................................... 815

    12.7. API Python do MySQL ........................................................................ 81612.8. API Tcl do MySQL ............................................................................. 81612.9. Eiffel Wrapper do MySQL ................................................................... 816

    Manual de Referncia do MySQL 4.1

    xi

  • 13. Tratamento de Erros no MySQL ...................................................................... 81713.1. Erros Retornados ................................................................................ 817

    14. Estendendo o MySQL .................................................................................... 84114.1. MySQL Internals ................................................................................ 841

    14.1.1. Threads MySQL ...................................................................... 84114.1.2. Pacotes de Teste do MySQL ....................................................... 841

    14.2. Adicionando Novas Funes ao MySQL ................................................. 84414.2.1. Sintaxe CREATE FUNCTION/DROP FUNCTION ........................ 84414.2.2. Adicionando Novas Funes Definidas Por Usurio ........................ 84514.2.3. Adicionando uma Nova Funo Nativa ........................................ 852

    14.3. Adicionado Novos Procedimentos ao MySQL .......................................... 85314.3.1. Anlise de Procedimento ........................................................... 85414.3.2. Escrevendo um Procedimento ..................................................... 854

    A. Problemas e Erros Comuns .............................................................................. 855A.1. Como Determinar o Que Est Causando Problemas .................................... 855A.2. Erros Comuns Usando o MySQL ............................................................ 856

    A.2.1. Erro: Access Denied ............................................................ 856A.2.2. Erro: MySQL server has gone away .................................. 856A.2.3. Erro: Can't connect to [local] MySQL server ............ 857A.2.4. Erro: Client does not support authentication proto-col ................................................................................................. 859A.2.5. Erro: Host '...' is blocked ............................................ 859A.2.6. Erro: Too many connections .............................................. 860A.2.7. Erro: Some non-transactional changed tables couldn'tbe rolled back ........................................................................... 860A.2.8. Erro: Out of memory ............................................................ 860A.2.9. Erro: Packet too large ...................................................... 861A.2.10. Erros de Comunicao / Comunicao Abortada ........................... 861A.2.11. Erro: The table is full .................................................. 862A.2.12. Erro: Can't create/write to file ................................ 863A.2.13. Erro no Cliente: Commands out of sync .............................. 863A.2.14. Erro: Ignoring user .......................................................... 864A.2.15. Erro: Table 'xxx' doesn't exist .................................. 864A.2.16. Erro: Can't initialize character set xxx ................ 864A.2.17. Arquivo No Encontrado .......................................................... 865

    A.3. Assuntos Relacionados a Instalao ........................................................ 866A.3.1. Problemas de Ligao com a Biblioteca do Cliente MySQL .............. 866A.3.2. Como Executar o MySQL Como Um Usurio Normal ..................... 866A.3.3. Problemas com Permisses de Arquivos ........................................ 867

    A.4. Assuntos Relacionados a Administrao .................................................. 868A.4.1. O Que Fazer Se o MySQL Continua Falhando ................................ 868A.4.2. Como Recuperar uma Senha de Root Esquecida .............................. 870A.4.3. Como o MySQL Trata de Discos Sem Espao ................................ 871A.4.4. Onde o MySQL Armazena Arquivos Temporrios .......................... 872A.4.5. Como Proteger ou AlterarHow to Protect or Change the MySQL Socket Fi-le /tmp/mysql.sock ..................................................................... 872A.4.6. Problemas Com Fuso Horrio ...................................................... 873

    A.5. Assuntos Relacionados a Consultas ......................................................... 873A.5.1. Caso-Sensitivito em Pesquisas ..................................................... 873A.5.2. Problemas Usando Colunas DATE ................................................ 873A.5.3. Problemas com Valores NULL ..................................................... 874A.5.4. Problemas com alias .............................................................. 876A.5.5. Deletando Linhas de Tabelas Relacionadas .................................... 876A.5.6. Resolvendo Problemas Com Registros No Encontrados .................. 876A.5.7. Problemas com Comparao de Ponto Flutuante ............................. 877

    A.6. Assuntos Relacionados ao Otimizador ..................................................... 879A.6.1. Camo evitar o varredura da tabela,,, .............................................. 879

    A.7. Assuntos Relacionados a Definies de Tabelas ........................................ 880A.7.1. Problemas com ALTER TABLE. ................................................. 880A.7.2. Como Alterar a Ordem das Colunas em Uma Tabela ........................ 880A.7.3. Problemas com TEMPORARY TABLE ........................................ 881

    B. Contribuio de Programas .............................................................................. 882B.1. APIs .................................................................................................. 882

    Manual de Referncia do MySQL 4.1

    xii

  • B.2. Conversores ........................................................................................ 884B.3. Utilitrios ........................................................................................... 885

    C. Colaboradores do MySQL ............................................................................... 887C.1. Desenvolvedores do MySQL ................................................................. 887C.2. Coolaboradores do MySQL ................................................................... 891C.3. Responsveis pela Documentao e Traduo ........................................... 895C.4. Bibliotecas usadas e incluidas com o MySQL ............................................ 896C.5. Pacotes que suportam o MySQL ............................................................. 897C.6. Ferramentas que so usadas para criar o MySQL ....................................... 898C.7. Responsveis pelo Suporte do MySQL .................................................... 898

    D. Histrico de Alteraes do MySQL ................................................................... 900D.1. Alteraes na distribuio 5.0.0 (Development) ......................................... 900D.2. Alteraes na distribuio 4.1.x (Alpha) ................................................... 900

    D.2.1. Alteraes na distribuio 4.1.2 (not released yet) ........................... 901D.2.2. Alteraes na distribuio 4.1.1 (01 de Dez de 2003) ....................... 902D.2.3. Alteraes na distribuio 4.1.0 (03 Apr 2003: Alpha) ..................... 906

    D.3. Alteraes na distribuio 4.0.x (Production) ............................................ 909D.3.1. Alteraes na distribuio 4.0.17 (not released yet) .......................... 909D.3.2. Alteraes na distribuio 4.0.16 (17 Out 2003) .............................. 911D.3.3. Alteraes na distribuio 4.0.15 (03 Sep 2003) .............................. 913D.3.4. Alteraes na distribuio 4.0.14 (18 Jul 2003) ............................... 917D.3.5. Alteraes na distribuio 4.0.13 (16 May 2003) ............................. 921D.3.6. Alteraes na distribuio 4.0.12 (15 Mar 2003: Production) ............. 925D.3.7. Alteraes na distribuio 4.0.11 (20 Feb 2003) .............................. 926D.3.8. Alteraes na distribuio 4.0.10 (29 Jan 2003) .............................. 927D.3.9. Alteraes na distribuio 4.0.9 (09 Jan 2003) ................................ 928D.3.10. Alteraes na distribuio 4.0.8 (07 Jan 2003) .............................. 929D.3.11. Alteraes na distribuio 4.0.7 (20 Dec 2002) .............................. 930D.3.12. Alteraes na distribuio 4.0.6 (14 Dec 2002: Gamma) ................. 930D.3.13. Alteraes na distribuio 4.0.5 (13 Nov 2002) ............................. 931D.3.14. Alteraes na distribuio 4.0.4 (29 Sep 2002) .............................. 934D.3.15. Alteraes na distribuio 4.0.3 (26 Aug 2002: Beta) ..................... 935D.3.16. Alteraes na distribuio 4.0.2 (01 Jul 2002) ............................... 937D.3.17. Alteraes na distribuio 4.0.1 (23 Dec 2001) .............................. 941D.3.18. Alteraes na distribuio 4.0.0 (Oct 2001: Alpha) ........................ 942

    D.4. Alteraes na distribuio 3.23.x (Recent; still supported) ........................... 944D.4.1. Alteraes na distribuio 3.23.59 (not released yet) ........................ 944D.4.2. Alteraes na distribuio 3.23.58 (11 Sep 2003) ............................ 945D.4.3. Alteraes na distribuio 3.23.57 (06 Jun 2003) ............................. 945D.4.4. Alteraes na distribuio 3.23.56 (13 Mar 2003) ............................ 946D.4.5. Alteraes na distribuio 3.23.55 (23 Jan 2003) ............................. 947D.4.6. Alteraes na distribuio 3.23.54 (05 Dec 2002) ............................ 948D.4.7. Alteraes na distribuio 3.23.53 (09 Oct 2002) ............................ 949D.4.8. Alteraes na distribuio 3.23.52 (14 Aug 2002) ........................... 950D.4.9. Alteraes na distribuio 3.23.51 (31 May 2002) ........................... 950D.4.10. Alteraes na distribuio 3.23.50 (21 Apr 2002) .......................... 951D.4.11. Alteraes na distribuio 3.23.49 .............................................. 952D.4.12. Alteraes na distribuio 3.23.48 (07 Feb 2002) ........................... 952D.4.13. Alteraes na distribuio 3.23.47 (27 Dec 2001) .......................... 953D.4.14. Alteraes na distribuio 3.23.46 (29 Nov 2001) .......................... 954D.4.15. Alteraes na distribuio 3.23.45 (22 Nov 2001) .......................... 954D.4.16. Alteraes na distribuio 3.23.44 (31 Oct 2001) ........................... 955D.4.17. Alteraes na distribuio 3.23.43 (04 Oct 2001) ........................... 956D.4.18. Alteraes na distribuio 3.23.42 (08 Sep 2001) ........................... 956D.4.19. Alteraes na distribuio 3.23.41 (11 Aug 2001) .......................... 957D.4.20. Alteraes na distribuio 3.23.40 .............................................. 958D.4.21. Alteraes na distribuio 3.23.39 (12 Jun 2001) ........................... 959D.4.22. Alteraes na distribuio 3.23.38 (09 May 2001) ......................... 959D.4.23. Alteraes na distribuio 3.23.37 (17 Apr 2001) .......................... 960D.4.24. Alteraes na distribuio 3.23.36 (27 Mar 2001) .......................... 961D.4.25. Alteraes na distribuio 3.23.35 (15 Mar 2001) .......................... 961D.4.26. Alteraes na distribuio 3.23.34a ............................................. 962D.4.27. Alteraes na distribuio 3.23.34 (10 Mar 2001) .......................... 962

    Manual de Referncia do MySQL 4.1

    xiii

  • D.4.28. Alteraes na distribuio 3.23.33 (09 Feb 2001) ........................... 963D.4.29. Alteraes na distribuio 3.23.32 (22 Jan 2001: Production) ........... 964D.4.30. Alteraes na distribuio 3.23.31 (17 Jan 2001) ........................... 965D.4.31. Alteraes na distribuio 3.23.30 (04 Jan 2001) ........................... 965D.4.32. Alteraes na distribuio 3.23.29 (16 Dec 2000) .......................... 966D.4.33. Alteraes na distribuio 3.23.28 (22 Nov 2000: Gamma) .............. 968D.4.34. Alteraes na distribuio 3.23.27 (24 Oct 2000) ........................... 970D.4.35. Alteraes na distribuio 3.23.26 (18 Oct 2000) ........................... 970D.4.36. Alteraes na distribuio 3.23.25 (29 Sep 2000) ........................... 971D.4.37. Alteraes na distribuio 3.23.24 (08 Sep 2000) ........................... 972D.4.38. Alteraes na distribuio 3.23.23 (01 Sep 2000) ........................... 973D.4.39. Alteraes na distribuio 3.23.22 (31 Jul 2000) ............................ 974D.4.40. Alteraes na distribuio 3.23.21 .............................................. 975D.4.41. Alteraes na distribuio 3.23.20 .............................................. 975D.4.42. Alteraes na distribuio 3.23.19 .............................................. 976D.4.43. Alteraes na distribuio 3.23.18 .............................................. 976D.4.44. Alteraes na distribuio 3.23.17 .............................................. 976D.4.45. Alteraes na distribuio 3.23.16 .............................................. 977D.4.46. Alteraes na distribuio 3.23.15 (May 2000: Beta) ...................... 978D.4.47. Alteraes na distribuio 3.23.14 .............................................. 979D.4.48. Alteraes na distribuio 3.23.13 .............................................. 979D.4.49. Alteraes na distribuio 3.23.12 (07 Mar 2000) .......................... 980D.4.50. Alteraes na distribuio 3.23.11 .............................................. 980D.4.51. Alteraes na distribuio 3.23.10 .............................................. 981D.4.52. Alteraes na distribuio 3.23.9 ................................................ 981D.4.53. Alteraes na distribuio 3.23.8 (02 Jan 2000) ............................. 982D.4.54. Alteraes na distribuio 3.23.7 (10 Dec 1999) ............................ 983D.4.55. Alteraes na distribuio 3.23.6 ................................................ 983D.4.56. Alteraes na distribuio 3.23.5 (20 Oct 1999) ............................ 984D.4.57. Alteraes na distribuio 3.23.4 (28 Sep 1999) ............................ 985D.4.58. Alteraes na distribuio 3.23.3 ................................................ 986D.4.59. Alteraes na distribuio 3.23.2 (09 Aug 1999) ........................... 986D.4.60. Alteraes na distribuio 3.23.1 ................................................ 987D.4.61. Alteraes na distribuio 3.23.0 (05 Aug 1999: Alpha) .................. 987

    D.5. Alteraes na distribuio 3.22.x (Old; discontinued) ................................. 989D.5.1. Alteraes na distribuio 3.22.35 ................................................ 989D.5.2. Alteraes na distribuio 3.22.34 ................................................ 990D.5.3. Alteraes na distribuio 3.22.33 ................................................ 990D.5.4. Alteraes na distribuio 3.22.32 (14 Feb 2000) ............................ 990D.5.5. Alteraes na distribuio 3.22.31 ................................................ 990D.5.6. Alteraes na distribuio 3.22.30 ................................................ 990D.5.7. Alteraes na distribuio 3.22.29 (02 Jan 2000) ............................. 991D.5.8. Alteraes na distribuio 3.22.28 (20 Oct 1999) ............................ 991D.5.9. Alteraes na distribuio 3.22.27 ................................................ 991D.5.10. Alteraes na distribuio 3.22.26 (16 Sep 1999) ........................... 991D.5.11. Alteraes na distribuio 3.22.25 .............................................. 992D.5.12. Alteraes na distribuio 3.22.24 (05 Jul 1999) ............................ 992D.5.13. Alteraes na distribuio 3.22.23 (08 Jun 1999) ........................... 992D.5.14. Alteraes na distribuio 3.22.22 (30 Apr 1999) .......................... 993D.5.15. Alteraes na distribuio 3.22.21 .............................................. 993D.5.16. Alteraes na distribuio 3.22.20 (18 Mar 1999) .......................... 993D.5.17. Alteraes na distribuio 3.22.19 (Mar 1999: Production) .............. 993D.5.18. Alteraes na distribuio 3.22.18 .............................................. 994D.5.19. Alteraes na distribuio 3.22.17 .............................................. 994D.5.20. Alteraes na distribuio 3.22.16 (Feb 1999: Gamma) .................. 994D.5.21. Alteraes na distribuio 3.22.15 .............................................. 994D.5.22. Alteraes na distribuio 3.22.14 .............................................. 995D.5.23. Alteraes na distribuio 3.22.13 .............................................. 995D.5.24. Alteraes na distribuio 3.22.12 .............................................. 995D.5.25. Alteraes na distribuio 3.22.11 .............................................. 996D.5.26. Alteraes na distribuio 3.22.10 .............................................. 996D.5.27. Alteraes na distribuio 3.22.9 ................................................ 997D.5.28. Alteraes na distribuio 3.22.8 ................................................ 998

    Manual de Referncia do MySQL 4.1

    xiv

  • D.5.29. Alteraes na distribuio 3.22.7 (Sep 1998: Beta) ......................... 998D.5.30. Alteraes na distribuio 3.22.6 ................................................ 999D.5.31. Alteraes na distribuio 3.22.5 ................................................ 999D.5.32. Alteraes na distribuio 3.22.4 .............................................. 1001D.5.33. Alteraes na distribuio 3.22.3 .............................................. 1001D.5.34. Alteraes na distribuio 3.22.2 .............................................. 1001D.5.35. Alteraes na distribuio 3.22.1 (Jun 1998: Alpha) ..................... 1002D.5.36. Alteraes na distribuio 3.22.0 .............................................. 1003

    D.6. Alteraes na distribuio 3.21.x .......................................................... 1004D.6.1. Alteraes na distribuio 3.21.33 .............................................. 1004D.6.2. Alteraes na distribuio 3.21.32 .............................................. 1004D.6.3. Alteraes na distribuio 3.21.31 .............................................. 1005D.6.4. Alteraes na distribuio 3.21.30 .............................................. 1005D.6.5. Alteraes na distribuio 3.21.29 .............................................. 1006D.6.6. Alteraes na distribuio 3.21.28 .............................................. 1006D.6.7. Alteraes na distribuio 3.21.27 .............................................. 1006D.6.8. Alteraes na distribuio 3.21.26 .............................................. 1006D.6.9. Alteraes na distribuio 3.21.25 .............................................. 1007D.6.10. Alteraes na distribuio 3.21.24 ............................................ 1007D.6.11. Alteraes na distribuio 3.21.23 ............................................ 1007D.6.12. Alteraes na distribuio 3.21.22 ............................................ 1008D.6.13. Alteraes na distribuio 3.21.21a ........................................... 1009D.6.14. Alteraes na distribuio 3.21.21 ............................................ 1009D.6.15. Alteraes na distribuio 3.21.20 ............................................ 1009D.6.16. Alteraes na distribuio 3.21.19 ............................................ 1009D.6.17. Alteraes na distribuio 3.21.18 ............................................ 1009D.6.18. Alteraes na distribuio 3.21.17 ............................................ 1010D.6.19. Alteraes na distribuio 3.21.16 ............................................ 1010D.6.20. Alteraes na distribuio 3.21.15 ............................................ 1011D.6.21. Alteraes na distribuio 3.21.14b ........................................... 1011D.6.22. Alteraes na distribuio 3.21.14a ........................................... 1011D.6.23. Alteraes na distribuio 3.21.13 ............................................ 1012D.6.24. Alteraes na distribuio 3.21.12 ............................................ 1012D.6.25. Alteraes na distribuio 3.21.11 ............................................ 1013D.6.26. Alteraes na distribuio 3.21.10 ............................................ 1014D.6.27. Alteraes na distribuio 3.21.9 .............................................. 1014D.6.28. Alteraes na distribuio 3.21.8 .............................................. 1014D.6.29. Alteraes na distribuio 3.21.7 .............................................. 1015D.6.30. Alteraes na distribuio 3.21.6 .............................................. 1015D.6.31. Alteraes na distribuio 3.21.5 .............................................. 1015D.6.32. Alteraes na distribuio 3.21.4 .............................................. 1016D.6.33. Alteraes na distribuio 3.21.3 .............................................. 1016D.6.34. Alteraes na distribuio 3.21.2 .............................................. 1017D.6.35. Alteraes na distribuio 3.21.0 .............................................. 1018

    D.7. Alteraes na distribuio 3.20.x .......................................................... 1019D.7.1. Alteraes na distribuio 3.20.18 .............................................. 1019D.7.2. Alteraes na distribuio 3.20.17 .............................................. 1019D.7.3. Alteraes na distribuio 3.20.16 .............................................. 1020D.7.4. Alteraes na distribuio 3.20.15 .............................................. 1021D.7.5. Alteraes na distribuio 3.20.14 .............................................. 1021D.7.6. Alteraes na distribuio 3.20.13 .............................................. 1021D.7.7. Alteraes na distribuio 3.20.11 .............................................. 1022D.7.8. Alteraes na distribuio 3.20.10 .............................................. 1022D.7.9. Alteraes na distribuio 3.20.9 ................................................ 1023D.7.10. Alteraes na distribuio 3.20.8 .............................................. 1023D.7.11. Alteraes na distribuio 3.20.7 .............................................. 1023D.7.12. Alteraes na distribuio 3.20.6 .............................................. 1023D.7.13. Alteraes na distribuio 3.20.3 .............................................. 1025D.7.14. Alteraes na distribuio 3.20.0 .............................................. 1025

    D.8. Alteraes na distribuio 3.19.x .......................................................... 1026D.8.1. Alteraes na distribuio 3.19.5 ................................................ 1026D.8.2. Alteraes na distribuio 3.19.4 ................................................ 1026D.8.3. Alteraes na distribuio 3.19.3 ................................................ 1027

    Manual de Referncia do MySQL 4.1

    xv

  • E. Portando para Outros Sistemas ........................................................................ 1028E.1. Depurando um Servidor MySQL .......................................................... 1029

    E.1.1. Compilando o MYSQL para Depurao ....................................... 1029E.1.2. Criando Arquivos Trace (Rastreamento) ...................................... 1030E.1.3. Depurando o mysqld no gdb ...................................................... 1030E.1.4. Usando Stack Trace ................................................................. 1031E.1.5. Usando Arquivos de Log para Encontrar a Causa dos Erros no mysqld 1032E.1.6. Fazendo um Caso de Teste Se Ocorre um Corrompimento de Tabela . 1033

    E.2. Depurando um cliente MySQL. ............................................................ 1034E.3. O Pacote DBUG ................................................................................ 1034E.4. Mtodos de Lock ............................................................................... 1036E.5. Comentrios Sobre Threads RTS .......................................................... 1037E.6. Diferena en Entre Alguns Pacotes de Threads ........................................ 1038

    F. Variveis de Ambientes do MySQL ................................................................. 1040G. Sintaxe de Expresses Regulares do MySQL ..................................................... 1041H. GPL - Licena Pblica Geral do GNU .............................................................. 1044ndice Remissivo ............................................................................................. 1049

    Manual de Referncia do MySQL 4.1

    xvi

  • PrefaceEste o Manual de Referncia para o Sistema de Banco de Dados MySQL. Este verso serefere a verso 5.0.6-beta do MySQL Server mas tambm se aplica a verses mais antigas (taiscomo 3.23 e 4.0-produo) j que as alteraes so sempre indicadas. Tambm h referncia a ver-so 5.0 (desenvolvimento).

    xvii

  • Captulo 1. Informaes GeraisO programa MySQL (R) um servidor robusto de bancos de dados SQL (Structured QueryLanguage - Linguagem Estruturada para Pesquisas) muito rpido, multi-tarefa emulti-usurio. O Servidor MySQL pode ser usado em sistemas de produo com alta carga emisso crtica bem como pode ser embutido em programa de uso em massa. MySQL uma marcaregistrada da MySQL AB.

    O programa MySQL de Licena Dupla. Os usurios podem escolher entre usar o programaMySQL como um produto Open Source/Free Software sob os termos da GNU GeneralPublic License (http://www.fsf.org/licenses/) ou podem comprar uma licena comercial pa-dro da MySQL AB. See Seco 1.4, Suporte e Licenciamento do MySQL.O site web do MySQL (http://www.mysql.com/) dispe das ltimas informaes sobre o programaMySQL.

    A seguinte lista descreve algumas sees de particular interesse neste manual:

    Para informaes sobre a empresa por trs do Servidor do Banco de Dados MySQL,veja Seco 1.3, Viso Geral da MySQL AB.

    Para discusses das capacidades do Servidor do Banco de Dados MySQL, veja Sec-o 1.2.2, As Principais Caractersticas do MySQL.

    Para instrues de instalao, veja Captulo 2, Instalao do MySQL. Para dicas sobre a portabilidade do Servidor do Banco de Dados MySQL para novas

    arquiteturas ou sistemas operacionais, veja Apndice E, Portando para Outros Sistemas. Para informaes sobre a atualizao da verso 4.0, veja Seco 2.5.1, Atualizando da Verso

    4.0 para 4.1.

    Para informaes sobre a atualizao da verso 3.23, veja Seco 2.5.2, Atualizando da Verso3.23 para 4.0.

    Para informaes sobre a atualizao da verso 3.22, veja Seco 2.5.3, Atualizando da verso3.22 para 3.23.

    Para um tutorial de introduo ao Servidor do Banco de Dados MySQL, veja Captu-lo 3, Tutorial de Introduo Do MySQL.

    Para exemplos de SQL e informaes sobre benchmarks, veja o diretrio de benchmarks (sql-bench na distribuio).

    Para o histrico de novos recursos e correes de erros, veja Apndice D, Histrico de Altera-es do MySQL.

    Para uma lista de erros atualmente conhecidos e mal-funcionamento, veja Seco 1.8.6, ErrosConhecidos e Deficincias de Projetos no MySQL.

    Para projetos futuros, veja Seco 1.6, MySQL e o Futuro (o TODO). Para ver a lista de todos os colaboradores deste projeto, veja Apndice C, Colaboradores do

    MySQL.

    Importante:

    Relatrios de erros (tambm chamados bugs), bem como dvidas e comentrios, devem ser envia-dos para a lista de email geral do MySQL. See Seco 1.7.1.1, As Listas de Discusso doMySQL. See Seco 1.7.1.3, Como relatar erros ou problemas.

    1

  • O script mysqlbug deve ser usado para gerar comunicados de erros no Unix. (A distribuio doWindows contm um arquivo mysqlbug.txt no diretrio base que pode ser usado como um tem-plate para um relatrio de erro.

    Em distribuies fonte, o script mysqlbug pode ser encontrado no diretrio scripts. Para distri-buies binrias, o mysqlbug pode ser encontrado no diretrio bin (/usr/bin para o pacoteRMP do servidor MySQL.

    Se voc encontrou um erro de segurana no Servidor MySQL, voc deve enviar um email para.

    1.1. Sobre Este ManualEste o manual de referncia MySQL; ele documenta o MySQL at a verso 5.0.6-beta. Mudanasfuncionais so sempre indicadas com referncia a verso, assim este manual tambm pode ser utili-zado caso voc esteja utilizando uma verso mais antiga do MySQL (como 3.23 ou 4.0-produo).Tambm a referncias a verso 5.0 (desenvolvimento).Sendo um manual de referncia, ele no fornece instrues gerais sobre SQL ou conceitos de bancode dados relacionais.

    Como o Programa da Banco de Dados MySQL est sob constante desenvolvimento, o ma-nual tambm atualizado freqentemente. A verso mais recente deste manual est disponvel emhttp://www.mysql.com/documentation/ em diferentes formatos, incluindo HTML, PDF, e versesHLP do Windows.

    O documento original uma arquivo Texinfo. A verso HTML produzida automaticamente usan-do uma verso modificada do texi2html. A verso texto e Info so produzidas com makeinfo.A verso PostScript produzida usando texi2dvi e dvips. A verso PDF produzida compdftex.

    Se voc tiver dificuldades de encontrar informaes no manual, voc pode tentar nossa verso combusca em http://www.mysql.com/doc/.

    Se voc tiver qualquer sugesto a respeito de adies e correes neste manual, por favor envie-ospara a equipe de documentao em .

    Este manual foi inicialmente escrito por David Axmark e Michael (Monty) Widenius. Atualmente mantido pela Equipe de Documentao da MySQL, que conta com Arjen Lentz, Paul DuBois e Ste-fan Hinz. Para outros colaboradores, veja Apndice C, Colaboradores do MySQL.A traduao deste manual foi feita por Daniel Coelho Teobaldo e Carlos Henrique Paulino sob a su-perviso da EAC Software.

    Os direitos autorais (2003) deste manual pertence a compania Sueca MySQL AB. See Seco 1.4.2,Copyrights e Licenas Usadas pelo MySQL.

    1.1.1. Convenes Usadas Neste ManualEste manual utiliza algumas convenes tipogrficas:

    constant

    Fonte de largura fixa usada para nomes de comandos e opes; instrues SQL; nomes de ban-cos de dados, tabelas e colunas; cdigo C e Perl; e variveis de ambiente. Exemplo: ``Para vercomo o mysqladmin funciona, execute-o com a opo --help.''

    filename

    Fonte de largura fixa com aspas usada para nomes e caminhos de arquivos. Exemplo: ``A dis-tribuio instalada sobre o diretrio /usr/local.''

    Informaes Gerais

    2

  • c

    Fonte de largura constante com aspas tambm usada para indicar sequncias de caracteres.Exemplo: ``Para especificar um meta caracter, use o caractere %.''

    italic

    Fonte Itlica usada para dar nfase, como aqui.

    boldface

    Fonte em negrito usada em cabealhos de tabela e indicar nfase especial.

    Quando um comando deve ser executado por um programa, ele indicado por um prompt antes docomando. Por exemplo, shell> indica um comando que executado do seu shell atual e mysql>indica um comando que executado no programa cliente mysql;

    shell> digite um comando shell aquimysql> digite um comando mysql aqui

    A ``shell'' seu interpretador de comando. No Unix, ele normalmente um programa como sh oucsh. No Windows, o equivalente o command.com ou cmd.exe, normalmente executado comoum console do Windows.

    Comandos Shell so mostrados usando a sintaxe do Shell Bourne. Se voc usa um shell do estilocsh, pode ser necessrio alterar algum de seus comandos. Por exemplo, a sequncia para configuraruma varivel de ambiente e executar um comando se parece com o listado abaixo na sintaxe BourneShell:

    shell> NOMEVAR=valor algum_comando

    Para csh ou tcsh, execute a sequncia desta forma:

    shell> setenv NOMEVAR valorshell> algum_comando

    Frequentemente, nomes de bancos de dados, tabelas e colunas devem ser substitudos nos coman-dos. Para indicar que as substituies so necessrias, este manual usa nome_db, nome_tbl enome_col. Por exemplo, voc pode encontrar uma expresso assim:

    mysql> SELECT nome_col FROM nome_bd.nome_tbl;

    Isso significa que se voc estiver trabalhando numa expresso similar, forneceria seu prprio nomede banco de dados, tabela e colunas, talvez assim:

    mysql> SELECT nome_autor FROM biblio_bd.lista_autor;

    SQL keywords no caso sensitivas e podem ser escritas em maiscula ou minscula. Este manualutiliza letras maisculas.

    Em descries de sintaxe, colchetes ([ e ]) so usados para indicar palavras ou clusulas opcio-nais. Por exemplo, na seguinte instruo, IF EXISTS opcional:

    DROP TABLE [IF EXISTS] nome_tbl

    Quando elementos da sintaxe possuem mais de uma alternativa, elas so separados por barras verti-cais (|). Quando um menbro de um conjunto de opes pode ser escolhido, as alternativas so lis-tadas em colchetes ([ e ]):

    Informaes Gerais

    3

  • TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)

    Quando um membro de um conjunto de opes deve ser selecionado, as alternativas so listadasdentro de chaves ({ e }):{DESCRIBE | DESC} nome_tbl {nome_col | metacar}

    1.2. Viso Geral do Sistema de Gerenciamen-to de Banco de Dados MySQL

    MySQL, o mais popular sistema de gerenciamento de banco de dados SQL Open Source, de-senvolvido, distribudo e tem suporte da MySQL AB. A MySQL AB uma empresa comercial, fun-dada pelos desenvolvedores do MySQL, cujos negcios fornecer servios relacionados ao sistemade gerenciamento de banco de dados MySQL. See Seco 1.3, Viso Geral da MySQL AB.O web site do MySQL (http://www.mysql.com/) fornece informaes mais recentes sobre e progra-ma MySQL e a MySQL AB.

    O MySQL um sistema de gerenciamento de bancos de dados.Um banco de dados uma coleo de dados estruturados. Ele pode ser qualquer coisa desde umasimples lista de compras a uma galeria de imagens ou a grande quantidade de informao da suarede coorporativa. Para adicionar, acessar, e processar dados armazenados em um banco de da-dos de um computador, voc necessita de um sistema de gerenciamento de bancos de dados co-mo o Servidor MySQL. Como os computadores so muito bons em lidar com grandes quantida-des de dados, o gerenciamento de bancos de dados funciona como a engrenagem central na com-putao, seja como utilitrios independentes ou como partes de outras aplicaes.

    O MySQL um sistema de gerenciamento de bancos de dados relacional.Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar todos osdados um s local. Isso proporciona velocidade e flexibilidade. A parte SQL do ``MySQL'' aten-da pela ``Structured Query Language - Linguagem Estrutural de Con-sultas''. SQL linguagem padro mais comum usada para acessar banco de dados e defini-da pelo Padro ANSI/ISO SQL. (O padro SQL est vem evoluindo desde 1986 e existem diver-sas verses. Neste manual, ''SQL-92'' se refere ao padro liberado em 1992, ''SQL-99'' se refereao padro liberado em 1999, e ''SQL:2003'' se refere a verso do que esperamos que seja libe-rado no meio de 2003. Ns usamos o termo ''o padro SQL'' indicando a verso atual do Pa-dro SQL em qualquer momento).

    O MySQL um software Open Source.Open Source significa que possvel para qualquer um usar e modificar o programa. Qual-quer pessoa pode fazer download do MySQL pela Internet e us-lo sem pagar nada. Se voc qui-ser, voc pode estudar o cdigo fonte e alter-lo para adequ-lo s suas necessidades. O MySQLusa a GPL (GNU General Public License - Licena Pblica Geral GNU)http://www.fsf.org/licenses, para definir o que voc pode e no pode fazer com o software emdiferentes situaes. Se voc sentir desconforto com a GPL ou precisar embutir o MySQL emuma aplicao comercial voc pode adquirir a verso comercial licenciada conosco. See Sec-o 1.4.3, Licenas do MySQL.

    Por que usar o Banco de Dados MySQL?O servidor de banco de dados MySQL extremamente rpido, confivel, e fcil deusar. Se isto o que voc est procurando, voc deveria experiment-lo. O Servidor MySQLtambm tem um conjunto de recursos muito prticos desenvolvidos com a cooperao de nossos

    Informaes Gerais

    4

  • usurios. Voc pode encontrar comparativos de performance do Servidor MySQL com ou-tros gerenciadores de bancos de dados na nossa pgina de benchmark See Seco 5.1.4, O Pa-cote de Benchmark do MySQL.O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muitograndes de maneira muito mais rpida que as solues existentes e tem sido usado em ambientesde produo de alta demanda por diversos anos de maneira bem sucedida. Apesar de estar emconstante desenvolvimento, o Servidor MySQL oferece hoje um rico e proveitoso conjuntode funes. A conectividade, velocidade, e segurana fazem com que o MySQL seja altamenteadaptvel para acessar bancos de dados na Internet.

    As caractersticas tcnicas do MySQLPara informaes tcnicas avanadas, veja Captulo 6, Referncia de Linguagem do MySQL. OPrograma de Banco de Dados MySQL um sistema cliente/servidor que consiste deum servidor SQL multi-tarefa que suporta acessos diferentes, diversos programas clientes e bi-bliotecas, ferramentas administrativas e diversas interfaces de programao (API's).Tambm concedemos o Servidor MySQL como uma biblioteca multi-tarefa que voc podeligar sua aplicao para chegar a um produto mais rpido, menor e mais fcilmente gerenci-vel.

    MySQL tem muitos softwares de colaboradores disponvel. bem provvel que sua aplicao ou linguagem favorita j suporte o Servidor de Bancode Dados MySQL.

    A pronncia oficial do MySQL ``Mai Ess Que Ell'' (e no MAI-SEQUEL). Mas ns no ligamos sevoc pronunciar MAI-SEQUEL ou de outra forma qualquer.

    1.2.1. Histria do MySQLQuando comeamos, tnhamos a inteno de usar o mSQL para conectar s nossas tabelas utilizandonossas rpidas rotinas de baixo nvel (ISAM). Entretanto, depois de alguns testes, chegamos a con-cluso que o mSQL no era rpido e nem flexvel o suficiente para nossas necessidades. Isto resultouem uma nova interface SQL para nosso banco de dados, mas com praticamente a mesma InterfaceAPI do mSQL. Esta API foi escolhida para facilitar a portabilidade para cdigos de terceiros que eraescrito para uso com mSQL para ser portado facilmente para uso com o MySQL.

    A derivao do nome MySQL no bem definida. Nosso diretrio base e um grande nmero denossas bibliotecas e ferramentas sempre tiveram o prefixo ``my'' por pelo menos 10 anos. A filha deMonty tambm ganhou o nome My. Qual das duas originou o nome do MySQL continua sendo ummistrio, mesmo para ns.

    O nome do golfinho do MySQL (nosso logo) Sakila. Sakila foi escolhido pelos fundadoresda MySQL AB de uma enorme lista de nomes sugeridos pelos usurios em nosso concurso "Namethe Dolphin". O nome vencedor foi enviado por Ambrose Twebaze, um desenvolvedor de progra-mas open source de Swaziland, Africa. De acordo com Ambrose, o nome Sakila tem as suas razesem SiSwati, a lngua local de Swaziland. Sakila tambm o nome de uma cidade em Arusha, Tan-zania, prxima ao pas de orgem de Ambrose, Uganda.

    1.2.2. As Principais Caractersticas do MySQLA seguinte lista descreve algumas das caractersticas mais importantes do Progrma de Bancode Dados MySQL. See Seco 1.5.1, MySQL 4.0 in a Nutshell.

    Portabilidade e

    Escrito em C e C++.

    Informaes Gerais

    5

  • Testado com um amplo faixa de compiladores diferentes.

    Funciona em diversas plataformas. See Seco 2.2.3, Sistemas Operacionais suportados pe-lo MySQL.

    Utiliza o GNU Automake, Autoconf, e Libtool para portabilidade.

    APIs para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby e Tcl esto disponveis. See Captu-lo 12, Ferramentas de Clientes e APIs do MySQL.

    Suporte total a multi-threads usando threads diretamente no kernel. Isto significa que se podefacilmente usar mltiplas CPUs, se disponvel.

    Fornece mecanismos de armazenamento transacional e no transacional.

    Tabelas em disco (MyISAM) baseadas em rvores-B extremamente rpidas com compressode ndices.

    relativamente fcil se adicionar outro mecanismo de armazenamento. Isto til se vocquiser adicionar uma interface SQL a um banco de dados caseiro.

    Um sistema de alocao de memria muito rpido e baseado em processo(thread). Joins muito rpidas usando uma multi-join de leitura nica otimizada. Tabelas hash em memria que so usadas como tabelas temporrias.

    Funes SQL so implementadas por meio de uma biblioteca de classes altamente otimizadae com o mximo de performance. Geralmente no h nenhuma alocao de memria depoisda inicializao da pesquisa.

    O cdigo do MySQL foi testado com Purify (um detector comercial de falhas de memria) etambm com o Valgrind, uma ferramenta GPL (http://developer.kde.org/~sewardj/).

    Disponvel como verso cliente/servidor ou embutida(ligada). Tipos de Coluna

    Aceita diversos tipos de campos: tipos inteiros de 1, 2, 3, 4 e 8 bytes com e sem sinal, FLO-AT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP,YEAR, SET e ENUM. See Seco 6.2, Tipos de Campos.

    Registros de tamanhos fixos ou variveis.

    Comandos e Funes

    Completo suporte a operadores e funes nas partes SELECT e WHERE das consultas. Porexemplo:

    mysql> SELECT CONCAT(first_name, " ", last_name)-> FROM nome_tbl-> WHERE income/dependents > 10000 AND age > 30;

    Suporte pleno s clusulas SQL GROUP BY e ORDER BY. Suporte para funes de agrupa-mento (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX() eMIN()).

    Suporte para LEFT OUTER JOIN e RIGHT OUTER JOIN com as sintaxes SQL eODBC.

    Alias em tabelas e colunas so disponveis como definidos no padro SQL92. DELETE, INSERT, REPLACE, e UPDATE retornam o nmero de linhas que foram alteradas

    Informaes Gerais

    6

  • (afetadas). possvel retornar o nmero de linhas com padro coincidentes configurando umparmetro quando estiver conectando ao servidor.

    O comando especfico do MySQL SHOW pode ser usado para devolver informaes sobrebancos de dados, tabelas e ndices. O comando EXPLAIN pode ser usado para determinarcomo o otimizador resolve a consulta.

    Nomes de funes no conflitam com nomes de tabelas ou colunas. Por exemplo, ABS umnome de campo vlido. A nica restrio que para uma chamada de funo, espaos noso permitidos entre o nome da funo e o ( que o segue. See Seco 6.1.7, Tratamentode Palavras Reservadas no MySQL.

    Voc pode misturar tabelas de bancos de dados diferentes na mesma pesquisa (como na ver-so 3.22).

    Segurana

    Um sistema de privilgios e senhas que muito flexvel, seguro e que permite verificaobaseada em estaes/mquinas. Senhas so seguras porque todo o trfico de senhas cripto-grafado quando voc se conecta ao servidor.

    Escalabilidade e limites

    Lida com bancos de dados enormes. Usamos o Servidor MySQL com bancos de dadosque contm 50.000.000 registros e sabemos de usurios que usam o Servidor MySQLcom 60.000 tabelas e aproximadamente 5.000.000.000 de linhas.

    So permitidos at 32 ndices por tabela. Cada ndice pode ser composto de 1 a 16 colunasou partes de colunas. O tamanho mximo do ndice de 500 bytes (isto pode ser alterado nacompilao do MySQL). Um ndice pode usar o prefixo de campo com um tipo CHAR ouVARCHAR.

    Conectividade

    Os clientes podem se conectar ao servidor MySQL usando sockets TCP/IP, em qualquer pla-taforma. No sistema Windows na famlia NT (NT, 2000 ou XP), os clientes podem se conec-tar usando named pipes. No sistema Unix, os clientes podem se conectar usando arquivossockets.

    A interface Connector/ODBC fornece ao MySQL suporte a progras clientes que usam cone-xo ODBC (Open-DataBase-Connectivity). Por exemplo, voc pode usar o MS Access paraconectar ao seu servidor MySQL. Os clientes podem ser executados no Windows ou Unix.