MySQL

Principais tipos de campos no MySQL

Muita gente tem dificuldade de escolher que campo usar para cada tipo de dado. Montei esse guia para facilitar o entendimento de quem tem dúvidas sobre isso.

Campos Numéricos
Alguns campos numéricos possuem a opção UNSIGNED. Isso quer dizer que o número não pode ser negativo. Por exemplo: o campo TINYINT com a opção UNSIGNED vai de 0 até 255, sem a opção UNSIGNED vai de -128 até 127.

A opção ZEROFILL completa o campo com zeros. Por exemplo: se você cadastrar ’65’ em um campo INT(5) – ou seja, inteiro com 5 dígitos – com a opção ZEROFILL habilitada, o MySQL irá cadastrar ‘00065’. Sem a opção ZEROFILL habilitada, o MySQL irá cadastrar ’65’.

  • TINYINT: Um número muito pequeno, de 0 até 255 (UNSIGNED) ou -128 até 127. Ocupa 1 byte.
  • SMALLINT: Um inteiro pequeno, de 0 a 65535 (UNSIGNED) ou -32768 até 32767. Ocupa 2 bytes.
  • MEDIUMINT: Um inteiro de tamanho médio, de 0 a 16777215 (UNSIGNED) ou -8388608 a 8388607. Ocupa 3 bytes.
  • INT ou INTEGER: Um inteiro de tamanho normal. De 0 a 4294967295 (UNSIGNED) ou -2147483648 a 2147483647. Ocupa 4 bytes.
  • BIGINT: Um inteiro grande. De 0 a 18446744073709551615 ou -9223372036854775808 a 9223372036854775807. Ocupa 8 bytes.
  • DECIMAL: Um número decimal. Para armazenar um valor monetário, por exemplo, você pode definir o tamanho dele como 8,2. Isso quer dizer que ele poderá ter 8 dígitos à esquerda da vírgula, e duas casas decimais à direita da vírgula. O campo é armazenado como string, então não deve ocorrer nenhuma perda de precisão (arredondamento).
  • DATE: Data no formato ‘AAAA-MM-DD’. Entre ‘1000-01-01’ e ‘9999-12-31’.
  • DATETIME: Combinação de data e hora no formato ‘AAAA-MM-DD HH:MM:SS’. Entre ‘1000-01-01 00:00:00’ e ‘9999-12-31 23:59:59’.
  • TIME: Hora no formato ‘HH:MM:SS’. A faixa é entre ‘-838:59:59’ e ‘838:59:59’.
  • YEAR: Ano com 2 ou 4 dígitos (padrão 4 dígitos).
  • ENUM: Uma enumeração. Exemplo de uso: você tem um campo chamado “ativo” que possui apenas duas opções (0 e 1). Pode ter até 65535 valores diferentes.

Campos String (texto)

  • VARCHAR: String com tamanho entre 1 e 255 caracteres.
  • CHAR: String com tamanho entre 1 e 255 caracteres. Para campos com tamanho fixo (CPF, CEP etc.) é mais vantagem usar o CHAR, porque ele ocupa um byte a menos que o VARCHAR. Por exemplo: você vai cadastrar o valor “abcde” em um campo CHAR(5), ele vai ocupar 5 bytes, se você cadastrar em um VARCHAR(5), ele vai ocupar 6 bytes, porém se você cadastrar o valor “ab” em um campo CHAR(5) ele vai ocupar os mesmos 5 bytes, e o VARCHAR(5) vai ocupar 3 bytes (1 byte a mais do que a quantidade de caracteres).
  • TINYTEXT ou TINYBLOB: String com até 255 bytes.
  • TEXT ou BLOB: String com até 65535 bytes ou 64KB.
  • MEDIUMTEXT ou MEDIUMBLOB: String com até 16777215 bytes ou 16MB.
  • LONGBLOB: String com até 4294967295 bytes ou (4GB).

Conectar ao MySQL e escolher um banco de dados com o PHP

Exemplo das funções utilizadas para conectar com o MySQL e escolher um banco de dados.

<?php
mysql_connect("localhost", "USUARIO", "SENHA") or die(mysql_error());
mysql_select_db("BANCO_DE_DADOS") or die(mysql_error());
?>

Algumas vezes o nome do servidor pode ser diferente, mas na grande maioria se usa localhost mesmo.


Instalar LAMP – Linux + Apache + MySQL + PHP no Ubuntu

Atualizado em 15/03/2016

Quase todo programador web que programa em PHP com banco de dados MySQL precisa desses softwares funcionando localmente (em sua máquina), seja para fazer testes, ou para programar sistemas e sites. Vou mostrar como instalar esses dois servidores, além do Apache, que é o servidor web, e é necessário para que o PHP funcione. 1. Abra o Terminal (Aplicativos/Acessórios/Terminal) 2. Digite o seguinte código no terminal:

sudo apt-get install apache2

3. O Terminal vai perguntar sua senha. Digite ela, e depois aperte enter. 4. Para testar o Apache, acesse o seguinte endereço a partir do seu navegador: http://localhost/. Se aparecer "It Works!", quer dizer que o Apache foi instalado com sucesso. 5. Para instalar o PHP, digite novamente no Terminal:

sudo apt-get install php5 libapache2-mod-php5

6. É necessário reiniciar o Apache. Digite no Terminal:

sudo /etc/init.d/apache2 restart

7. Para testar o Servidor PHP, crie um arquivo chamado teste.php em /var/www com o conteúdo abaixo:

<?php phpinfo(); ?>

8. Acesse o endereço: http://localhost/teste.php . Se tudo estiver OK, irão aparecer informações sobre seu computador, o Apache e o PHP. 9. Para instalar o MySQL,  digite o seguinte no Terminal:

sudo apt-get install mysql-server

10 Vai aparecer uma tela soliicitando que você digite a senha de root, que é a senha de administrador do banco de dados. Você pode deixar em branco – se tiver medo de esquecer 😛 – mas é altamente recomendável que você defina uma. 11. Agora você deve instalar o PHPMyAdmin, que é uma aplicativo web que ajuda a administrar bancos de dados MySQL. Digite no terminal:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

12. Escolha o apache2 para configurar automaticamente. 13.  O sistema vai pergunta se você quer configurar banco de dados para phpmyadmin com dbconfig-common. Escolha "Sim". Depois digite a senha do banco que você escolheu antes, e escolha uma senha para a base do PHPMyAdmin (pode ser a mesma do MySQL). PARABÉNS! Se você conseguiu completar todos os passos, instalou o Apache, o MySQL, o PHP e o PHPMyAdmin no seu computador. Todos os arquivos devem ser armazenados em /var/www. O PHPMyAdmin pode ser acessado através do endereço http://localhost/phpmyadmin

Atualização em 15/03/2016

Seis anos depois e esse post continua útil :P. Acabei de usá-lo novamente, mas tive um pequeno problema no final. Depois de instalar o PHPMyAdmin, ele não abria pelo navegador. Se isso acontecer com você no Ubuntu 14.04 em diante ou no Linux Mint 17 (onde testei) em diante, basta criar um link apontando para o PHPMyAdmin:

sudo ln -s /usr/share/phpmyadmin /var/www/html

Fonte: http://askubuntu.com/questions/387062/how-to-solve-the-phpmyadmin-not-found-issue-after-upgrading-php-and-apache


Alterar o valor de Auto Increment no MySQL

Quando for preciso começar o ID (em auto increment) de uma tabela por um número específico, ou seja, se você quizer que os IDs dos clientes comecem por 1000, ao invés de zero, ou qualquer outro numero, ou até mesmo modificar esse valor depois que já existem registros na tabela, basta fazer da seguinte forma:

ALTER TABLE `banco`.`tabela` AUTO_INCREMENT = VALOR

Exemplo:

ALTER TABLE `loja`.`clientes` AUTO_INCREMENT = 953

Identificar o último registro inserido em uma tabela do MySQL com o PHP

Em uma tabela com um campo com autoincrement (onde a cada registro é gerado um número sequencial para identificá-lo), as vezes necessitamos identificar qual o id desse último registro inserido.

Para isso existe uma função muito simples do PHP: mysql_insert_id()

O uso dela também é muito simples. Logo após ter feito o mysql_query(), basta igualar a uma variável. Se houver mais de uma conexão ao banco de dados, você deve passar esse link através da função (mysql_insert_id($link)).

Exemplo:

$sql = "INSERT INTO `pessoas` (`id_pessoa` , `nome_pessoa` )
VALUES (NULL , 'Tiago Passos');";
$query = mysql_query($sql);

$ultimo_id = mysql_insert_id(); // SE SÓ HOUVER UMA CONEXÃO COM O BANCO

Utilizando a função now() do MySQL ou PostgreSQL

Algumas vezes é necessário fazer o registro do momento em que um INSERT (cadastro) foi feito.

Para fazer isso existe a função now() do MySQL ou do PostgreSQL. Essa função pode ser utilizada em um campo de data (DATE, DATETIME etc.). Basta colocar como valor no seu INSERT a função now() (sem as aspas), que ele vai cadastrar a data (ou data e hora, se for DATETIME) do servidor na hora em que o registro foi criado.

INSERT INTO `pessoas`
(`nome`, `data_registro`)
VALUES
('Tiago Passos', now())

Formatar datas usando o DATE_FORMAT() do MySQL

Quem já trabalhou com datas no MySQL sabe que o formato que elas são armazenadas é, algumas vezes, meio inconveniente de se trabalhar. É possível modificar esse formato utilizando de programação (PHP, por exemplo), mas é muito mais simples já trazer a data no formato certo, diretamente do banco.

O banco de dados retorna uma data no seguinte formato: 2010-03-18 00:55;23 ou talvez nesse: 2010-03-18 (sem as horas). Como podemos fazer para que ele já traga no formato desejado, por exemplo: 18/03/2010?

É bem simples. Na hora de fazer o SELECT, utilizamos a função DATE_FORMAT() do MySQL. Ela pega a data no formato original e manipula da forma que você quizer.

Exemplo 1:

SELECT *,date_format(`data`,'%d/%m/%Y') as `data_formatada` FROM `pessoas`

Nesse caso, ele pegou a data contida no campo data, converteu para formato DD/MM/YYYY e nomeou o campo com a data formatada para data_formatada.

Exemplo 2:

SELECT *,date_format(`data`,'%d-%m às %Hh%i') as `data_formatada` FROM `pessoas`

No segundo exemplo o formato mudou para DD-MM às HHhMM, Exemplo: 25/06 às 14h35.

Cada ítem da data tem um identificador, veja abaixo a lista deles:

ID     Descrição
%a     Nome da Semana Abreviado (Seg a Dom)
%b     Nome do mês Abreviado (Jan a Dez)
%c     Mês de forma numérica (1 a 12)
%D     Dia do mês com o sufixo Inglês (1st, 2nd, 3rd, …)
%d     Dia do Mês de forma numérica (01 a 31)
%e     Dia do Mês de forma numérica (1 a 31)
%f     Micro segundos (000000..999999)
%H     Horas (00 a 23)
%h     Horas (01 a 12)
%I     Horas (01 a 12)
%i     Minutos de forma numérica (00 a 59)
%j     Dia do Ano (001 a 366)
%k     Horas (0 a 23)
%l     Horas (1 a 12)
%M     Nome do mês (Janeiro a Dezembro)
%m     Mês de forma numérica (01 a 12)
%p     AM ou PM
%r     Horas, 12-horas (hh:mm:ss seguidos de AM ou PM)
%S     Segundos (00 a 59)
%s     Segundos (00 a 59)
%T     Horas, 24-horas (hh:mm:ss)
%U     Semana (00 a 53), onde Domingo é o primeiro dia da semana
%u     Semana (00 a 53), onde Segunda é o primeiro dia da semana
%V     Semana (00 a 53), onde Domingo é o primeiro dia da semana; usado com %X
%v     Semana (00 a 53), onde Segunda é o primeiro dia da semana; usado com %x
%W     Nome do dia da semana (Segunda a Domingo)
%w     Dia da semana (0=Domingo a 6=Sábado)
%X     Dia da semana onde Domingo é o primeiro dia da semana, de forma numérica com 4 dígitos, usado com %V
%x     Ano da semana, onde Segunda é o primeiro dia da semana, de forma numérica, com 4 dígitos, usado com %v
%Y     Ano numérico com 4 dígitos
%y     Ano numérico com 2 dígitos
%%     Um simples caracter “%”
%x     x, para qualquer “x” não listado acima

  • Publicidade

  • Redes Sociais

    Facebook  Twitter
  • Estatísticas

    Page Views (desde março de 2010):

    Estatísticas detalhadas
  • Novidades por e-mail!

    Digite seu e-mail:


    Fique tranquilo. Seu e-mail não será usado para outros fins, e você poderá se descadastrar quando quizer.

    Eu!

    Tiago Passos
    Todo o conteúdo desse site esta licenciado sob a licença Creative Commons 3.0 (CC BY 3.0). Você pode copiar e modificar o conteúdo desde que cite o autor.
    iDream theme by Templates Next | Powered by WordPress