O melhor editor PHP

Cada programador tem o seu “melhor editor”. É comum ter uma lista de favoritos – e é mais comum, ainda, que cada editor tenha o seu ponto forte, o que nos leva a usar mais de um frequentemente. Aqui, vou falar do que ocupa o topo da minha lista.
De todos os que já experimentei e ainda uso, meu favorito é o Komodo Edit, da ActiveState.
É gratuito e faz parte de uma IDE (Integrated Development Environment – Ambiente de Desenvolvimento Integrado), a Komodo IDE.

Komodo IDE

O video abaixo mostra como trocar o tema do Ambiente de desenvolvimento. Trata-se de um produto “redondo”, maduro e muito bem acabado e, para quem usa o Ubuntu como ambiente de desenvolvimento, saiba que a interface do Komodo se integra lindamente à do seu sistema.

Uma IDE, como o nome diz, oferece muito mais do que apenas um editor de textos para escrever código. Entre seus recursos, eu destaco os seguintes:

  • a capacidade de editar código colaborativamente, em equipe;
  • ferramentas diversas e integradas para testar código (debugging), explorar bancos de dados, CVS, Git etc.;
  • customização de vários recursos através de instalação de plug-ins;
  • ela é cross-platform, ou seja, roda em Windows, Mac, Linux (32 e 64 bits).

Todo o ambiente de desenvolvimento, com todas as suas ferramentas, que incluem o editor de códigos, pode ser testado gratuitamente por 21 dias. Transcorrido este prazo, ele tem várias faixas de preços voltadas a diversos segmentos.

Mas o editor é gratuito

… e é um excelente editor!
Com suporte a uma vasta gama de linguagens de programação (Python, PHP, Ruby, Perl, HTML, CSS, C, JavaScript etc), oferece coisas básicas (vitais!), como:

  • syntax highlighting – ou seja ele destaca as palavras chave no código de acordo com a sintaxe de cada linguagem;
  • split view – divisão da tela para comparar/copiar trechos de código;
  • verificação do código;
  • possibilidade de usar os mesmos atalhos de teclado que você já usava no vi/emacs;
  • complementação de código – ele completa os nomes das suas variáveis, de suas funções, fecha parênteses e indica onde falta fechar, reconhece as diferentes linguagens – mesmo que você esteja embutindo um código em outro.

A lista é grande. Eu gostaria de destacar que, além da escolha de temas, há a possibilidade de selecionar entre 15 esquemas de cores que é um recurso interessante, ao menos pra mim. Gosto de usar esquemas de cores claros quando trabalho durante o dia e escuros à noite.

Como instalar o Komodo Edit

Embora feita em modo texto (no Ubuntu), ela é muito simples e rápida:

  • Faça o download do pacote tar.gz, descomprima-o em algum diretório temporariamente.
  • entre no diretório em que ele foi instalado:
    cd Komodo-Edit-8.x.x-xxxx-linux-x86/
  • Agora, execute o arquivo install.sh:
    ./install.sh
  • O sistema irá pedir para você informar o diretório em que deseja instalar:Komodo Edit - Instalar Editor de Código
  • Você pode dar Enter, para seguir em frente com a opção padrão

  • O próximo passo é adicionar algumas variáveis de sistema, que permitirão executar o Komodo direto da linha de comando. O sistema oferece duas opções, como você pode ver na imagem abaixo:
    Screenshot komodo editor PHP
    No seu terminal, você pode simplesmente copiar e colar uma das opções:

    • export PATH…” — para criar uma variável de sistema, carregada no seu login e que fica armazenada no arquivo ~/.bashrc
    • ou

    • ln -s…”, que cria uma atalho pro executável do Komodo (você pode precisar de privilégios administrativos para usar esta opção).

    Feito isto, o Komodo Editor já pode ser acessado no seu menu de aplicativos normal. Ou via Dash, no Ubuntu.
    Experimente!

    POSTS RELACIONADOS

    Screenshots

    Nenhuma análise de software estaria completa sem algumas “fotos”, não é?

    integração com Ubuntu

    Todas as versões do Komodo Editor se integram ao ambiente do sistema operacional do usuário. Quem usa Ubuntu vai ter uma grata surpresa.
    Komodo editor PHP
    Inserido no contexto das melhorias visuais, há vários temas de fontes e cores pros caracteres no seu código.
    Editor PHP Komodo configuração de ambiente de edição
    A máquina da qual as screenshots foram tiradas, usa o Xubuntu, que usa o XFCE, como gerenciador de janelas e não possui, portanto, toda aquela integração com o ambiente gráfico que se aplica a quem roda o Ubuntu “puro”.
    komodo editor screenshot

Android rooting: glossário

Quem se decide a fazer root no seu smartphone ou a entender melhor o processo, vai se deparar com uma série de termos novos.
Segue, abaixo, uma lista com os termos mais encontrados nos sites que ensinam a rootear smartphones.

LEIA MAIS:

Rooting – tudo o que você precisa saber sobre rooting.

root

Smartphone Samsung S3 Rooteado“Fazer root”, “rootear” o celular etc. significa passar a ter acesso root ao seu aparelho – o que significa que ele poderá rodar o comando sudo antes de executar qualquer aplicativo. Desta forma, os aplicativos serão executados com privilégios administrativos (privilégios de superusuário).
Isto permite rodar aplicativos que alteram o funcionamento interno do aparelho, a velocidade da CPU, controlam o consumo da bateria, as prioridades do fluxo de dados etc.
Você pode fazer root com a instalação do aplicativo Superuser ou dando um flash, instalando uma ROM customizada, que inclui o acesso administrativo ao seu aparelho.

ROM

Uma ROM é uma versão modificada do Android. Ela pode conter recursos extras, uma aparência diferenciada (temas), melhorias no desempenho pro seu smartphone ou, mesmo, uma versão pura do Android, que ainda não seja fornecida pelo fabricante do seu aparelho.
O significado original do termo é memória de apenas leitura (Read-Only Memory). Atualmente se refere a códigos de programas que, uma vez modificáveis, não são tão read-only :p Também se refere à porção de memória em que este código é gravado e, portanto, seu nome mais adequado é EPROMErasable Programmable Read-Only Memory.
A escolha da ROM tem que ser a exata pro seu aparelho. Você não pode usar uma versão feita pro Samsung Galaxy S3 em um Galaxy S3 Mini – mesmo tendo nomes e recursos similares, internamente são dois aparelhos completamente diferentes.
Há casos de aparelhos com nomes comerciais idênticos, mas diferentes, como é o caso do Motorola Razr D1 – que é comercializado como XT910 e XT912. Internamente, são dois aparelhos diferentes.

Kernel

Grosso modo, o kernel é um componente do sistema operacional que gerencia as comunicações entre os softwares e o hardware. Trata-se do cerne, do núcleo de toda a complexidade que é um sistema operacional.
Há vários kernels customizados e prontos para uso, disponíveis pros mais variados aparelhos. Alguns podem aumentar o desempenho do processador, outros podem oferecer uma redução dramática do consumo da bateria, o que é ótimo para quem passa o dia todo longe de tomadas, entre outras coisas.
Cabe ter alguns cuidados com a instalação de kernels. Alguns estão em fase de beta teste (ou, mesmo alfa) e, nestas condições, não se destinam a usuários leigos.

Radios

Este é outro componente do firmware.O seu rádio controla o envio/recebimento de dados do seu celular via GPS, Wi-Fi entre outros. É possível encontrar versões customizadas de rádios para instalar

Firmware

Trata-se de um mix de memória persistente, códigos de programas e dados armazenados que controlam as funções mais básicas do aparelho. O flashing do firmware consiste em reescrever os códigos ou os dados na EPROM em que ele se encontra.

Flash

Neste contexto, flashing significa instalar uma peça nova de software em seu aparelho — tal como uma ROM, um kernel ou software de recuperação, que costuma vir comprimido em um arquivo .ZIP (nem sempre!).

Brick

Um aparelho brickado é um aparelho que quebrou, ficou parcial ou completamente inutilizado após o flashing – ou seja, virou um “tijolo” (brick em inglês), um peso para papel.
Embora seja pequeno, o risco existe – e costuma ser contornável.

Bootloader

Pense nos softwares do seu celular, como estando em camadas. Esta é a parte mais inferior das camadas de softwares no seu hardware – Trata-se do código que carrega os outros códigos, ou seja, é ele quem dá início ao sistema operacional. Muitos bootloaders chegam “travados” ao usuário. Ao destravar, você torna o seu aparelho apto a ser rooteado ou dar flash na sua ROM.

Recovery

Este é o software, no seu telefone, que permite fazer backups, dar flash em ROMS e outras tarefas no nível do sistema.
O seu aparelho já vem com um software de recuperação recovery, mas ele é limitado e não dá pra fazer muita coisa com ele, além de reset, cópias de segurança etc. Por sorte, você pode instalar uma versão customizada – tal como o ClockworkMod ou o TWRP – depois de desbloquear o bootloader, o que vai te dar muito mais controle sobre o seu aparelho. Isto faz parte do processo de rooting.

Nandroid

São backups completos do sistema, como um todo. O melhor termo é “imagens do sistema”. Se acontecer de ao dar um flash o seu sistema ficar brickado, você pode voltar tudo ao que era, recuperando uma das imagens nandroid gravadas. Uma imagem é uma cópia exata do seus sistema.

ADB

É uma sigla para Android Debug Bridge – ou Ponte de Correção Android, numa tradução (bem) livre.
Trata-se de uma ferramenta de linha de comando pro seu computador, que se comunica com um dispositivo Android conectado a ele.
Faz parte do SDK Android (Android Software Developers Kit). Muitas ferramentas root usam o ADB, mesmo que você não esteja digitando qualquer comando.
A menos que você seja instruído a instalar o SDK e rodar algum comando ADB, não há necessidade de mexer nisto. Só estou te contando isto, pra você ficar sabendo…

S-OFF

Os modelos da HTC fazem uso de um recurso chamado Signature Verification, presente no HBOOT – este é o bootloader deles.
Por padrão, o seu aparelho está em S-ON – o que significa que ele está bloqueado contra o flash de imagens de rádio (o código que gerencia a comunicação de dados, conexões Wi-Fi e GPS.
Ao alterar para S-OFF o flash do rádio passa a ser permitido.
O processo de rooting não precisa de S-OFF – mas te dá controle sobre ele, o que te permite fazer o flashing no seu rádio, se quiser.

RUU, SBF e OPS

Temos uma série de arquivos usados por programas paralelos, no processo de flashing. Vamos conhecer alguns:

  • RUU — Sigla para ROM Upgrade Utilities ou utilitários de upgrade da ROM, são arquivos de boot de sistema dos aparelhos HTC;
  • SBF — System Boot Files são os arquivos de inicialização do sistema dos aparelhos da marca Motorola;
  • OPS e PIT — São os arquivos para modificar os modelos da Samsung

Os RUU podem passar pelo flashing diretamente no aparelho HTC. Já os outros irão precisar de programas intermediários para realizar esta tarefa: RSD Lite, para Motorola e Odin, para aparelhos Samsung.
Há um Odin específico para cada aparelho Samsung.
Como sempre, divirta-se!

Recuperação do Motorola Razr brickado

A Flávia Jobstraibizer recuperou o Motorola Razr D1 XT910 dela e contou como fez isto.
Depois de uma falha no LCD e no fone, o aparelho “brickou” em uma atualização do Android.
Portanto, com o sistema operacional danificado e sem a possibilidade de carregar a bateria, o smartphone estava inutilizado.
Me acompanhe e veja como ela resolveu o problema.

O que você vai precisar
  • RSD Lite – um programa para fazer flash da ROM. Pegue aqui;
  • ROMs oficiais – uma delas será necessária e você vai encontrar as do Motorola Razr XT910 (o nosso aparelho) aqui;
  • Drivers da Motorola – para seu computador reconhecer o seu aparelho, e mostrar as informações pro RSD Lite. Você encontra aqui
  • Chave Torx T3

Os procedimentos, aqui descritos, são voltados para usuários avançados e que sabem o que estão fazendo. Se você decidir que deve aplicar as dicas no seu aparelho, faça isto por sua própria conta e risco.

LEIA MAIS:

Abrindo o Motorola

Embaixo da proteção da câmera, há um parafuso T3 escondido. Remova a proteção com cuidado.
Para isto, você pode usar uma palheta de plástico ou outro objeto fino o suficiente.
motorola razr D1 remover proteção da câmera
Aparelhos “blindados”, cujas baterias não podem ser removidas facilmente, dão um pouco mais de trabalho. Tenha paciência.
Agora remova a caixa de proteção da câmera, desatarraxando o parafuso T3.
motorola razr desatarraxando o parafuso T3
A capa traseira dele é feita de Kevlar, resistente e flexível, como você pode ver na próxima figura.
Motorola Razr D1 D3 Droid Android

Conectando a energia

Diferente de outros aparelhos, este usa pontos de contato (contact points) entre a bateria e o restante da carcaça. É um objeto vermelho.
motorola razr D1 - pontos de contato com a bateria
Você pode usar uma chave torx T5 ou outro objeto pontudo e/ou fino para cuidadosamente remover a peça de contato entre a bateria e o aparelho — feita de silicone e muito flexível.
motorola razr D1 - pontos de contato com a bateria
Neste modelo, a remoção da bateria implicaria em tirar 6 parafusos. Portanto foi feita a opção de dar carga diretamente com o cabo mini USB, como você pode ver nas próximas figuras.
Desencape as pontas dos fios — o vermelho é o positivo. O preto é o negativo. Fique atento.
Motorola Razr D1 cabo mini USB
Em seguida em seguida, desatarraxe um pouco os parafusos T3 – não os remova totalmente.
Desaparafuse os parafusos T3
Agora passe os fios, enrolando-os, nos parafusos. O vermelho no positivo e o preto no negativo.
parafusos t3 motorola razr
Assim que você conectar a outra ponta na tomada de energia, o aparelho vai ligar.

Reinstalando o sistema operacional

Conecte um outro cabo mini USB na entrada de dados do aparelho, para comunicar com o computador.
Neste aparelho, o sistema operacional está corrompido – e nós vamos resolver isto em breve.
Motorola Razr D1 - Android corrompido
No computador, abra o RSD Lite e refaça a flash da ROM do seu aparelho. É possível que você tenha que fazer isto várias vezes até dar certo.
motorola rzar d1 odin android
Aguarde enquanto o aparelho reinicia. Ele vai fazer isto várias vezes.
Não desconecte os cabos e aguarde.
Motorola Razr D1 Android
Após a última reinicialização, o sistema vai iniciar – observe o robozinho verde aparecer rapidamente, para informar que houve atualização no sistema.
Motorola Logo Logotipo
Quando o sistema estiver iniciado e rodando, ele irá atualizar os seus próprios pacotes.
motorola razr D1 atualização do Android

Finalmente

Neste momento, o seu aparelho já voltou a funcionar. Desligue-o.
Remova todos os cabos, feche tudo e ligue novamente o celular.
Conecte o celular a uma carregador e termine de carregar a bateria.
Para finalizar, vou deixar alguns links, que podem ser úteis:

Leia mais!
  • Os segredos do Razr D1 — veja como acessar os menus secretos no seu aparelho
  • Site da Flávia Jobstraibizer — Neste post, eu relatei o trabalho que ela realizou
  • @flaviajobs — Twitter da Flávia. Vale acompanhar
  • iFixit — de onde retirei parcialmente algumas imagens e informações de aparelhos semelhantes ao que foi objeto deste post

O Razr, agora, é uma central multimídia, no carro da Flavinha… 😉

Como criar tabelas no MySQL

Neste post vou tentar mostrar objetivamente como criar tabelas em um banco de dados através da linha de comando do cliente MySQL.
Dada a grande quantidade de parâmetros aceitos, a declaração CREATE TABLE é uma das mais complexas no MySQL. Por isto vou procurar simplificar através de exemplos práticos — já pressupondo que você tenha privilégios para criar novas tabelas e saiba como criar bancos de dados. Ao final do texto, vou mostrar como criar tabelas em um script PHP.
Comece por selecionar o banco de dados dentro do qual uma nova tabela será criada:

USE nome_do_banco;

Sintaxe de CREATE TABLE

De acordo com a documentação da Oracle, a sintaxe mais simplificada é esta aqui:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)

As partes da declaração que se encontram entre [] (colchetes) são opcionais:

  • TEMPORARY – indica que a tabela criada será temporária, o que significa que ela expira assim que a sua sessão no MySQL terminar. Use-a sempre que estiver fazendo testes.
  • IF NOT EXISTS – verifica a prévia existência da tabela e evita uma interrupção do script, causada por erro.

Os nomes das tabelas são sensíveis à caixa (case sensitive). Ou seja, tbl_name e Tbl_Name são dois nomes totalmente diferentes pro MySQL.
Uma tabela é composta por uma ou mais colunas, cada qual com suas definições. Vamos ver, daqui pra frente, algumas formas de definir este item durante a criação da tabela

Exemplos de criação de tabelas no MySQL

Vou começar pela criação de uma agenda telefônica, como esta que você usa no celular e é armazenável no cartão SIM, que contenha apenas strings (cadeias de caracteres) curtas – nome e telefone:

CREATE TABLE contatos (
nome VARCHAR(50) NOT NULL,
telefone VARCHAR(25) NOT NULL
)ENGINE=CSV;

Note que a engine escolhida foi a CSV. Leia mais sobre mecanismos de armazenamento (storage engines), para saber entender mais sobre o assunto.
Verifique se a tabela foi criada:

SHOW TABLES;

Mysql tutorial - Create Table - Show Tables
Podemos melhorar um pouco mais a tabela contatos, ao acrescentar mais alguns campos, como sobrenome dos contatos, DDD, data de nascimento e email. Antes de criar uma nova tabela, com o mesmo nome, vamos remover a anterior:

DROP TABLE contatos;

Agora, vamos criar a nova tabela:

CREATE TABLE IF NOT EXISTS contatos (
nome VARCHAR(20),
sobrenome VARCHAR(30),
ddd INT(2),
telefone VARCHAR(9),
data_nasc DATE,
email VARCHAR(30)
)ENGINE=MyISAM;

Note que acrescentamos alguns outros itens a esta declaração:

  • Usar IF NOT EXISTS é uma boa prática dentro de scripts (veremos mais sobre isto, mais afrente);
  • Ao final do código, optamos por um outro mecanismo de armazenamento

Saiba mais:

Campos vazios, numeração automática e chave primária

Vou fazer uma apresentação rápida de alguns parâmetros que podem ser usados para melhorar a usabilidade e, mesmo, a segurança das tabelas criadas.

NOT NULL

Comumente, o desenvolvedor, ao projetar o banco de dados, não deseja que certos campos sejam deixados em branco, pelo usuário. Para evitar que isto ocorra, usa-se o parâmetro NOT NULL – o sistema irá retornar um erro, caso o usuário não preencha os campos configurados com este parâmetro.

AUTO_INCREMENT

Quando se quer aplicar uma ação a um determinado registro, na tabela, é importante que se encontre exatamente aquele que se quer, mesmo que haja 10 pessoas registradas com o mesmo nome e sobrenome. Apagar um registro errado, por exemplo, pode ser fonte para uma grande dor de cabeça.
Ter um campo de identificação única para cada registro pode prevenir este tipo de erro. É aí que entra o parâmetro AUTO_INCREMENT que pode ser usado para criar um campo numérico com uma identificação única e automática dentro da tabela.

PRIMARY KEY

O parâmetro PRIMARY KEY é usado para definir uma coluna como chave primária e ajudar a identificar um registro em relação aos outros dentro da tabela. Os valores de uma chave primária têm que ser únicos e não podem ser nulos. Pense na palavra inglesa primary com o significado de principal.
Vamos ver estes conceitos aplicados ao exemplo da tabela de contatos:

DROP TABLE contatos;
CREATE TABLE IF NOT EXISTS contatos (
id INT(5) AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(20) NOT NULL,
sobrenome VARCHAR(30) NOT NULL,
ddd INT(2),
telefone VARCHAR(9) NOT NULL,
data_nasc DATE,
email VARCHAR(30)
)ENGINE=MyISAM;

Veja abaixo o resultado que eu obtive:

DROP TABLE contatos;
Query OK, 0 rows affected (0.14 sec)

CREATE TABLE IF NOT EXISTS contatos (
    -> id INT(5) AUTO_INCREMENT PRIMARY KEY,
    -> nome VARCHAR(20) NOT NULL,
    -> sobrenome VARCHAR(30) NOT NULL,
    -> ddd INT(2),
    -> telefone VARCHAR(9) NOT NULL,
    -> data_nasc DATE,
    -> email VARCHAR(30)
    -> )ENGINE=MyISAM;
Query OK, 0 rows affected (0.10 sec)

show tables;
+--------------------+
| Tables_in_primeiro |
+--------------------+
| contatos           |
+--------------------+
1 row in set (0.00 sec)

Evite mensagens de erros, usando IF NOT EXISTS

Note que, ao executar este código, ele irá criar uma tabela, com o nome contatos se ela já não existir. O que significa que o script retornará uma mensagem de erro, se você recarregar a página, logo após tê-lo executado:
script php mysql criar tabela comando create table
Se você mudar a linha 14, acrescentando o parâmetro opcional IF NOT EXISTS, tal como vimos no começo deste texto, a mensagem de erro não será exibida e o script prosseguirá normalmente. Veja como:

$sqlcriatabela = "CREATE TABLE IF NOT EXISTS contatos (nome VARCHAR(50), telefone VARCHAR(25));";

Mas, neste caso, isto não seria útil.

Faça o trabalho com o PHP

Até aqui, você aprendeu a criar novas tabelas e alguns parâmetros relacionados a este comando, dentro da linha de comando do cliente MySQL. Espero ter conseguido demonstrar que, embora seja complexa (pela quantidade de recursos) a declaração CREATE TABLE não é, de modo algum, complicada.
Se estiver interessado em realizar a tarefa através da linguagem de programação PHP, leia este post — onde a construção do script em PHP é explicado com bastante detalhamento.

Tipos de dados do MySQL e MariaDB

Tipos de dados são uma forma de classificar as informações que serão armazenados no banco de dados.
Entender os tipos de dados que podem ser armazenados no banco e a que situações se adequam é importante para projetar um banco de dados o mais eficiente possível. Veja, a seguir, alguns dos tipos de dados mais comuns no MySQL, acompanhado de uma breve descrição.

Antes de definir exatamente o tipo de dado que você deseja definir, vale a pena prestar atenção nas seguintes diretrizes, para ajudar a ter melhores resultados:

  • os tipos de valores que podem ser usados;
  • que tamanhos podem ter
  • as operações que podem ser realizadas;
  • seus significados;
  • se podem/serão indexados
  • como devem ser armazenados etc.

Tipos de dados numéricos no MySQL

O MySQL tem todos os tipos numéricos possíveis, o que inclui exatos, aproximados, inteiros, de ponto fixo, ponto flutuante etc. A lista, abaixo, mostra um resumo dos tipos de dados possíveis no MySQL:

  • TINYINT — número inteiro muito pequeno (tiny);
  • SMALLINT — número inteiro pequeno;
  • MEDIUMINT — número inteiro de tamanho médio;
  • INT — número inteiro de tamanho comum;
  • BIGINT — número inteiro de tamanho grande;
  • DECIMAL — número decimal, de ponto fixo;
  • FLOAT — número de ponto flutuante de precisão simples (32 bits);
  • DOUBLE — número de ponto flutuante de precisão dupla (64 bits);
  • BIT — um campo de um bit.

Tipos de dados em strings

Strings são cadeias de caracteres. No MySQL, uma string pode ter qualquer conteúdo, desde texto simples a dados binários – tais como imagens e arquivos. Cadeias de caracteres podem ser comparadas e ser objeto de buscas.

  • CHAR — uma cadeia de caracteres (string), de tamanho fixo e não-binária;
  • VARCHAR — uma string de tamanho variável e não-binária;
  • BINARY — uma string binária de tamanho fixo;
  • VARBINARY — uma string binária de tamanho variável;
  • BLOB — um BLOB (Binary Large OBject – OBjeto Grande Binário) pequeno;
  • TINYBLOB — um BLOB muito pequeno;
  • MEDIUMBLOB — um BLOB de tamanho médio;
  • LONGBLOB — um BLOB grande;
  • TINYTEXT — uma string não-binária e de tamanho bem reduzido;
  • TEXT — uma string não-binária e pequena;
  • MEDIUMTEXT — uma string de tamanho comum e não-binária;
  • LONGTEXT — uma string não-binária de tamanho grande;
  • ENUM — de acordo com o manual do MySQL, é uma string, com um valor que precisa ser selecionado de uma lista predefinida na criação da tabela;
  • SET — é um objeto que pode ter zero ou mais valores – cada um dos quais precisa ser escolhido de uma lista de valores predeterminados quando da criação da tabela.

Armazenamento de data e hora

Há várias opções para armazenar dados relacionados a data e hora. Se você quiser apenas armazenar o ano referente a um evento, pode usar o tipo YEAR. O tipo TIMESTAMP pode ser usado para acompanhar as mudanças ocorridas em um campo de uma tabela. Veja os tipos e suas descrições:

  • DATE — o valor referente a uma data no formato 'CCYY-MM-DD'. Por exemplo 1985-11-25 (ano-mês-dia). O 'CC' se refere aos dois dígitos do século (Century, em inglês);
  • TIME — um valor horário no formato 'hh:mm:ss' (hora:minutos:segundos);
  • TIMESTAMP — timestamp é uma sequência de caracteres ou informação codificada que identifica uma marca temporal ou um dado momento em que um evento ocorreu. No MySQL, ele tem o formato 'CCYY-MM-DD hh:mm:ss' – neste caso, seguem a padronização ISO 8601;
  • YEAR — armazena um ano no formato 'CCYY' ou 'YY';

Dados espaciais

O MySQL tem suporte a tipos de dados que correspondem às classes OpenGIS. Alguns destes carregam valores geométricos simples:

  • GEOMETRY
  • POINT
  • LINESTRING
  • POLYGON

O GEOMETRY pode armazenar qualquer tipo de valor geométrico. Os outros valores simples (POINT, LINESTRING e POLYGON) têm seus valores restritos aos tipos geométricos a que se referem.
Os outros, que seguem listados, carregam valores relativos a coleções/coletivos:

  • GEOMETRYCOLLECTION
  • MULTILINESTRING
  • MULTIPOINT
  • MULTIPOLYGON

Assim, GEOMETRYCOLLECTION pode armazenar coletâneas de objetos de qualquer tipo. Os outros tipos coletivos (MULTILINESTRING, MULTIPOLYGON e GEOMETRYCOLLECTION) restringem-se a cada forma geométrica particular.