1.0 O que é MySQL?

É um sistema de banco de dados, criado pela Sun. Esse sistema usa a linguagem SQL. O MySQL é
famoso por ser um dos mais rápidos, no trabalho com banco de dados, alguns milésimos de segundo
são muito significantes, pois um site popular tem muitos usuários ativos no mesmo instante e
fazendo consultas simultâneas.

Para instalar o MySQL no seu computador, você tem 2 métodos:

1 - Baixar pelo site da Sun e instalar no seu computador.
2 - Instalar um pacote pronto, que já venha com MySQL instalado.

Como estou fazendo este tutorial para os iniciantes, o segundo método se torna mais viável.

Veja este mini tópico:

PHP - O necessário Para Programar


Introdução:
PHP, diferente de muitas linguagens WEB, necessita de um servidor para poder funcionar em um computador. Hosts já são preparados para suportar a linguagem, mas seu computador precisa de alguns recursos para que o PHP funcione.

O que instalar:
Os recursos básicos são o servidor, mas o banco de dados não é dispensável.
Como a maioria das pessoas que lêem este tutorial são iniciantes, instalar todos esses recursos manualmente seria muito complicado, então, para facilitar a vida de vocês, vocês podem baixar um dos dois pacotes para programação PHP abaixo. Eles incluem tudo que você precisa para ter um servidor em localhost no seu computador.

EasyPHP:
Pacote completo, nele tudo é mais automático. Recomendado para iniciantes.

12.87 MB
Download
(nova versão: [Somente usuários registrados podem vem os links. ])

XAMPP:
Já nesse, você tem que configurar algumas coisas manualmente. Para usar esse é necessário uma experiência maior. Ele atualiza constantemente para acompanhar as novas versões dos recursos do servidor.

38.87 MB
[Somente usuários registrados podem vem os links. ]

Créditos: Aulto


Lembre-se de que você tem que dominar o PHP, pois irei fazer tutoriais de interação com MySQL e PHP.

Baixa este pacote de apostila para aprender um pouco sobre PHP.
[Somente usuários registrados podem vem os links. ]


2.0
Databases

O mais importante antes de começar qualquer coisa no MySQL, é ter uma database(banco de dados)
para implantar as tabelas. É o código mais simples que tem:

Código:
CREATE DATABASE `nome_da_database`;
Pronto, você já tem uma database para começar.
Para deletar esta database, você usa o comando:

Código:
DROP DATABASE `nome_da_database`;

3.0 Tabelas

Antes de trabalhar o MySQL junto com PHP, vamos ter uma idéia da sintaxe da linguagem.
O código é simples, assim como toda a linguagem SQL.

Código:
CREATE TABLE nome_da_tabela(
`campo` TIPO( QTD_MAX_CARACTERES ),
`campo2` TIPO( QTD_MAX_CARACTERES )
);
Você deve saber que existem tipos de dados para serem armazenados no MySQL.
São vários, mas os principais são:

VARCHAR - Armazenar strings.
TEXT - Armazenar uma string muito grande (texto)
INT - Armazenar números inteiros de -2147483648 até 2147483647.
BIGINT - Armazenar números inteiros de tamanho muito grande.
DATE - Armazenar datas(ANO-MÊS-DIA)
DATETIME - Armazenar data combinada com a hora
TIME - Armazenar a hora
YEAR - Armazenar anos

Desta forma, já podemos começar a criar uma tabela:

Código:
CREATE TABLE tabela1(
`nome` VARCHAR( 50 ) ,
`sobrenome` VARCHAR( 50 ) ,
`idade` INT( 10 ) ,
);
Criaremos, assim, uma tabela com os campos nome, sobrenome e idade, com limite máximo de caracteres, respectivamente, igual a 50, 50 e 10. Lembre-se: Para os numeros, quantidade máxima de caracteres não significa dizer que o numero só alcance até aquele valor, é apenas a quantidade máxima de caracteres que ele pode atingir, se você colocar o máximo de 3 caracteres, ele vai alcançar até 999(numericamente).

Para deletar a tabela:

Código:
DROP TABLE `nome_da_tabela`;
E para limpar a tabela, esvaziar todos os valores dos campos, mas sem deletar a tabela:

Código:
TRUNCATE TABLE `nome_da_tabela`;

3.1 Inserindo Valores na tabela

O método para inserir valores numa tabela é prático e muito simples:

Código:
INSERT INTO `tabela1` (nome, sobrenome, email) VALUES ('Exemplo', 'Exemplo', '[email protected]');
Com este código, você insere, respectivamente nos campos nome, sobrenome e email da tabela os
valores 'Giovanni', 'Paolo', '[email protected]'. Isso significa dizer que a associação se torna:

Nome ---------- Giovanni
Sobrenome ----- Paolo
Email --------- Exemplo
Se eu executar mais esta consulta no SQL:

Código:
INSERT INTO `tabela1` (nome, sobrenome, email) VALUES ('Pedro', 'Henrique', '[email protected]');
A tabela passa a ser preenchida desta forma:

Nome | Sobrenome | Email
-------------+-------------------------+--------------------------
Giovanni | Paolo | Exemplo
Pedro | Henrique | [Somente usuários registrados podem vem os links. ]

3.1.1 Inserção de valores nulos:

Antes de mais nada, você precisa entender o que é nulo:

Significado de Null (Nulo)


Bom neste tópico tentarei explicar sobre o famoso null, usando em todas linguagens de programação, eu resolvi ensinar sobre esse null, por causa de uma coisa que vi na net, dizendo que null e igual a nada ou 0, vou acabar com esse mito agora =]

O Null em linguagens de programação, e um valor especifico a um ponteiro, e se refere a um ponteiro Nulo, o null não e como muitos pensam, não valem por 0, na verdade sim mais 0 em binário, como sabem o sistema binário e composto de 0 e 1, o valor de nulo e igual a o 0 do binário, o valor mais baixo que um processador pode armazenar.

Em algumas linguagens de programação o Null e representado de outras formas, como no Pascal o Null e representado como 'nil', e em algumas linguagens e representado como 'nul'.
Exemplo no Visual Basic, e representado como Null, mais também tem o Nothing, que da o valor Null em Objetos.
O Null em algumas linguagem pode significar o final de uma string.

Lembrando, Null não tem o mesmo significado que nada, mesmo sendo nulo ele ainda e um numero binário.

[Fontes]
EneMy


Se eu fizer executar uma consulta desta forma:

Código:
INSERT INTO `tabela1` (nome, sobrenome, email) VALUES ('Aulto', NULL, 
'[email protected]');
A tabela passa a ser assim:
Nome | Sobrenome | Email
-------------+-------------------------+--------------------------
Giovanni | Paolo | [Somente usuários registrados podem vem os links. ]
Pedro | Henrique | Exemplo[Somente usuários registrados podem vem os links. ]
Aulto | | Exemplo[Somente usuários registrados podem vem os links. ]
Isso acontece porquê eu defini o valor do sobrenome como NULL na consulta.


3.2 Fazendo buscas na tabela

Usamos o comando SELECT para fazer buscas no MySQL.
Esse comando ele faz um filtro, portanto não pode ser chamado de busca, ele faz um filtro nos resultados e exibe apenas os que se enquadram nas espeficicações da busca. A adaptação desse comando para fazer um sistema que é um sistema de busca.

Vamos usar a tabela do tutorial anterior(Inserção de dados). Ela estava assim:

Nome | Sobrenome | Email
-------------+-------------------------+--------------------------
Giovanni | Paolo | [Somente usuários registrados podem vem os links. ]
Pedro | Henrique | [Somente usuários registrados podem vem os links. ]
Vamos adicionar mais alguns valores:

Código:
Nome | Sobrenome | Email
-------------+-------------------------+--------------------------
Giovanni | Paolo | [email protected]
Pedro | Henrique | [email protected]
João | Pedro | [email protected]
Maria | Paula |[email protected]
Gabriel | Carvalho | [email protected]
José | Carlos | [email protected]
Mário | Carvalho | [email protected]
Pronto. Lembrando, todos esses endereços são fictícios, exceto o primeiro, que é o meu.
Eu posso simplesmente fazer uma consulta assim:

Código:
SELECT * FROM `tabela1`;
Serão contados todos os resultados da tabela.
Mas eu quero fazer um filtro. Então, tenho que usar alguma coisa que limite os resultados.
Por exemplo:

Código:
SELECT * FROM `tabela1` WHERE Nome Like 'Giovanni';
Essa consulta pegará apenas resultados que tenham o valor do nome igual a "Giovanni".
A consulta retornará apenas um resultado.

Código:
SELECT * FROM `tabela1` WHERE Sobrenome Like 'Carvalho';
Neste caso, duas fileiras tem o campo sobrenome com o valor "Carvalho", então a consulta retornará dois resultados.

E se eu quiser apenas resultados onde os nomes são começados com a letra M?
Eu usarei um item do MySQL que significa que no lugar dele pode existir qualquer valor.
Este símbolo é o "%".

Então, usarei ele desta forma:

Código:
SELECT * FROM `tabela1` WHERE Nome Like 'M%';
Isso significa que a primeira letra tem que ser M e o restante(%) pode ser qualquer coisa.
Eu posso pôr um: Like 'Ma%', e isso fará com que busque apenas resultados que tenham o nome que
comece com 'Ma' e tenha qualquer coisa no final.

Isso significa que a primeira letra tem que ser M e o restante(%) pode ser qualquer coisa.
Eu posso pôr um: Like 'Ma%', e isso fará com que busque apenas resultados que tenham o nome que
comece com 'Ma' e tenha qualquer coisa no final.

Posso usar este '%' de outras formas, se eu pôr no começo, isso significa que pode começar de qualquer jeito, mas o final tem que ser obrigatoriamente aquele.
Código:
SELECT * FROM `tabela1` WHERE Nome Like '%a';
Neste caso, o código procurará resultados que terminem com a letra a.
Eu posso pôr o % no começo e no final do filtro da busca, e isso fará com que a consulta retorne resultados que comecem e terminem com qualquer coisa, mas, que no meio desta string deve conter o que foi especificado.

Código:
SELECT * FROM `tabela1` WHERE Nome Like '%a%';
Retornará todos os resultados que conterem a letra 'a' no valor.
Você pode ordenar a listagem dos resultados de uma consulta, é um método simples e é muito útil, pois te dá a facilidade de se localizar e achar um resultado com facilidade. Usamos, então, o comando ORDER BY:

Código:
SELECT * FROM `tabela1` WHERE Nome Like '%a%' ORDER BY Nome asc;
Nome = Filtro que ele usará para ordenar(Índice).
asc = Método que ele usará pra ordenar(Crescente/Ascendente).

Nome, deve ser um campo da tabela, nunca um valor de um campo da tabela. você pode usar qualquer campo da tabela para ordenar a pesquisa. Mas lembre-se de que os valores dos campos da tabela devem estar de acordo com o tipo de dado do campo da tabela. Caso contrário, a listagem pode não sair como você deseja.

Exemplo:

Preço = um campo da tabela que receberá números.
Se você pôr o tipo de dado desse campo como VARCHAR, quando deveria ser INT. A listagem(asc) ordenada por Id pode sair desta forma:

[Início da lista]
1500
25
3
4800
5
[/Fim da lista]
Você se pergunta: "Por que saiu assim?"
Resposta: Como o tipo do campo é varchar, será considerada apenas a primeira letra da string e será feita a ordenação. No caso, "5" está no fim da lista, mas ele não é maior que 4800. Ele está porque o MySQL considera apenas "5" e "4", então 5 será colocado depois do quatro, por ser maior. No lugar de asc, você pode pôr desc, para ordenar em forma decrescente, ou seja, do maior para o menor. Se o método for desc e o campo da tabela usado como índice tiver o tipo de dado como VARCHAR, ele ordenará os valores que começarem com letras de Z para A e os valores que começarem com números do maior para o menor.

Você pode também limitar a quantidade de resultados para serem exibidos na sua busca.

Código:
SELECT * FROM `tabela1` WHERE Nome Like '%a%' LIMIT 5;
Desta forma, exibirá apenas os 5(cinco) primeiros resultados.
Há também outa forma de usar o LIMIT, é colocando dois argumentos para ele, desta forma, ele buscará os resultados que estiverem entre os dois numeros informados.

Código:
SELECT * FROM `tabela1` WHERE Nome Like 'A%' LIMIT 5, 15;
Deste jeito, serão mostrados os resultados em que sua posição esteja entre 5 e 15.
É um começo inteligente para fazer paginação dos resultados da busca.

TODOS EMAILS ULTILIZADOS SÃO PARA DESMONSTRAÇÕES !!!

Créditos: Giovanni Paolo - Aulto