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:
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:
Pronto, você já tem uma database para começar.Código:CREATE DATABASE `nome_da_database`;
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.
Você deve saber que existem tipos de dados para serem armazenados no MySQL.Código:CREATE TABLE nome_da_tabela( `campo` TIPO( QTD_MAX_CARACTERES ), `campo2` TIPO( QTD_MAX_CARACTERES ) );
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:
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).Código:CREATE TABLE tabela1( `nome` VARCHAR( 50 ) , `sobrenome` VARCHAR( 50 ) , `idade` INT( 10 ) , );
Para deletar a tabela:
E para limpar a tabela, esvaziar todos os valores dos campos, mas sem deletar a tabela:Código:DROP TABLE `nome_da_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:
Com este código, você insere, respectivamente nos campos nome, sobrenome e email da tabela osCódigo:INSERT INTO `tabela1` (nome, sobrenome, email) VALUES ('Exemplo', 'Exemplo', 'Exemplo@gmail.com');
valores 'Giovanni', 'Paolo', 'Exemplo@gmail.com'. Isso significa dizer que a associação se torna:
Se eu executar mais esta consulta no SQL:Nome ---------- Giovanni
Sobrenome ----- Paolo
Email --------- Exemplo
A tabela passa a ser preenchida desta forma:Código:INSERT INTO `tabela1` (nome, sobrenome, email) VALUES ('Pedro', 'Henrique', 'pedro_henrique@gmail.com');
3.1.1 Inserção de valores nulos:
Antes de mais nada, você precisa entender o que é nulo:
Se eu fizer executar uma consulta desta forma:
A tabela passa a ser assim:Código:INSERT INTO `tabela1` (nome, sobrenome, email) VALUES ('Aulto', NULL, 'Exemplo@gmail.com');
Isso acontece porquê eu defini o valor do sobrenome como NULL na consulta.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. ]
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:
Vamos adicionar mais alguns valores:
Pronto. Lembrando, todos esses endereços são fictícios, exceto o primeiro, que é o meu.Código:Nome | Sobrenome | Email -------------+-------------------------+-------------------------- Giovanni | Paolo | Exemplo@gmail.com Pedro | Henrique | Exemplo@gmail.com João | Pedro | Exemplo@uol.com Maria | Paula |Exemplo@hotmail.com Gabriel | Carvalho | Exemplo@hotmail.com José | Carlos | Exemplo@hotmail.com Mário | Carvalho | Exemplo@gmail.com
Eu posso simplesmente fazer uma consulta assim:
Serão contados todos os resultados da tabela.Código:SELECT * FROM `tabela1`;
Mas eu quero fazer um filtro. Então, tenho que usar alguma coisa que limite os resultados.
Por exemplo:
Essa consulta pegará apenas resultados que tenham o valor do nome igual a "Giovanni".Código:SELECT * FROM `tabela1` WHERE Nome Like 'Giovanni';
A consulta retornará apenas um resultado.
Neste caso, duas fileiras tem o campo sobrenome com o valor "Carvalho", então a consulta retornará dois resultados.Código:SELECT * FROM `tabela1` WHERE Sobrenome Like 'Carvalho';
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:
Isso significa que a primeira letra tem que ser M e o restante(%) pode ser qualquer coisa.Código:SELECT * FROM `tabela1` WHERE Nome Like 'M%';
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.
Neste caso, o código procurará resultados que terminem com a letra a.Código:SELECT * FROM `tabela1` WHERE Nome Like '%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.
Retornará todos os resultados que conterem a letra 'a' no valor.Código:SELECT * FROM `tabela1` WHERE Nome Like '%a%';
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:
Nome = Filtro que ele usará para ordenar(Índice).Código:SELECT * FROM `tabela1` WHERE Nome Like '%a%' ORDER BY Nome asc;
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:
Você se pergunta: "Por que saiu assim?"[Início da lista]
1500
25
3
4800
5
[/Fim da lista]
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.
Desta forma, exibirá apenas os 5(cinco) primeiros resultados.Código:SELECT * FROM `tabela1` WHERE Nome Like '%a%' LIMIT 5;
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.
Deste jeito, serão mostrados os resultados em que sua posição esteja entre 5 e 15.Código:SELECT * FROM `tabela1` WHERE Nome Like 'A%' LIMIT 5, 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
Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)
Marcadores