
Introdução
O mySQL é um banco de dados que funciona, primariamente, via shell, ou modo texto. Robusto e simples, ele pode ser utilizado para as mais diversas atividades, inclusive e, principalmente, para Web. O conhecimento do mesmo é muito interessante para Webmasters.
Instalação do MySQL
O MySQL pode ser instalado no Windows, no Linux, no Netware, no Mac OS e vários outros. Todavia ficaremos apenas com as dicas de instalação.
Para Windows e usuários inexperientes, é altamente recomendável a utilização do PHPtriad, que já vem com o Apache e o PHP, além do MySQL é claro. Faça download do PHPtriad abaixo:
http://prdownloads.sourceforge.net/phptriad/phptriad2-2-1.exe
Para Linux:
No linux temos várias soluções para utilização do sistema LAMP (Linux, Apache, MySQL e PHP). Considero mais fácil instalar a distro de sua preferência e baixar os binários para a mesma (.deb para debian based, .rpm para red hat based, .tgz para slackware, etc).
O Slackware 12 já instala o apache, o php e o mySQL na sua instalação completa. Contudo algumas “mágicas” são necessárias para startar o MySQL a primeira vez:
Crie o arquivo /etc/my.cnf e cole:
[mysql.server]
datadir=/var/lib/mysql
socket=/var/run/mysql/mysql.sock[mysqladmin]
socket=/var/run/mysql/mysql.sock[mysqld]
datadir=/var/lib/mysql
socket=/var/run/mysql/mysql.sock
language=/usr/share/mysql/english/
log=/var/log/mysql/mysqld.log[mysql]
socket=/var/run/mysql/mysql.sock
# chown -R mysql.mysql /var/lib/mysql (diretório do seu mysql, aqui colocado o padrão da instalação do slackware) ;;;; Isto muda os donos da pasta e seu conteúdo.
# mysqld_safe & ;;;; Incia o mysql no modo seguro - se der algum erro é normal, para que possa criar o mysql.sock
# mysqladmin -u root password ’senha’ ;;;; define a senha do root do mysql
A partir daí é só programar para iniciar na inicialização.
Obs.: Pode ocorrer no slackware de não existir o diretório para logs no mysql, caso ocorra:
# mkdir /var/log/mysql
Operação básica
A sintaxe do MySQL é bem simples. Basicamente, na maioria das suas operações ele é Case Insensitive (exceto para nomes de bancos de dados, tabelas, etc).
Para iniciar o shell do MySQL basta digitar (No windows é necessário estar na pasta BIN do mysql - padrão do phptriad = c:apachemysqlbin):
mysql -u root -p [ENTER]
enter password:
mysql>
Para maior segurança, o ideal é operar com um usuário comum e não com o root do mysql. Crie o banco de dados com o comando “create database nome_do_banco”:
mysql> CREATE DATABASE dvds;
O “;” é necessário para avisar ao mysql que você terminou o comando.
Para visualizar os bancos de dados no seu mySQL digite, use o comando “show databases”:
mysql> SHOW DATABASES;
o MySQL já possui alguns bancos de dados por padrão (normalmente mysql - que guarda informações de usuários - e test - para que possamos usar para testes).
Devemos criar usuário que possa administrar apenas o banco de dados no qual trabalharemos. Não é necessário criar um usuário, faça como a seguir:
mysql> GRANT ALL ON dvds.* TO usuario@localhost IDENTIFIED BY ’senha’;
O Comando GRANT tem várias outras aplicações e se você vai utilizar o banco de dados em modo multiusuário deverá estudar bem sua aplicação. Neste nosso caso demos todas as permissões “ALL” no banco de dados dvds inteiro “ON dvd.* ” para o usuário usuario que se conecta localmente “usuario@localhost ” com a senha senha “IDENTIFIED BY ’senha’ “. O usuario pode ser substituído pelo nome de usuario que desejar. E localhost poderá ser substituído pelo nome da máquina da qual você conecta ao mySQL. Obs.: Aplicações PHP+MySQL rodam dentro do servidor, logo você poderá utilizar o fulano@localhost.
Digite q para sair do mysql e entrarmos com nosso usuário.
mysql -u usuario -p [ENTER]
enter password:
A Estrutura do Banco de Dados
Talvez a tarefa mais difícil no mySQL ou qualquer outro banco de dados seja definir a estrutura com qual trabalharemos. Quais as tabelas, os campos, os tipos de dados, etc. Um banco de dados bem planejado sempre funcionará bem e será de fácil manuseio. Utilize sempre nomes intuitivos e evite uma lingua que não seja do seu domínio.
Selecione o banco de dados a ser utilizado:
mysql> USE dvds
Não está errado não. O comando USE e o comando QUIT não necessitam de ; A utilização das palavras-chave (comandos) em maiúscula é opcional, é somente uma questão didática e visual.
Digite o comando show tables para visualizar as tabelas existentes:
mysql> SHOW TABLES;
O comando mostrará que não temos nenhuma tabela. Vamos criar a nossa. Este banco de dados de exemplo será para catalogar DVDs. Eles tem Nome, Tem Ano de publicação, Tempo de duração, Linguagem, etc. Criaremos então:
mysql> CREATE TABLE cadastro_dvds (nome VARCHAR(20), ano YEAR(4),
-> minutos SMALLINT(5), idioma VARCHAR(20), genero VARCHAR (20));
O tipo VARCHAR permite que você utilize menos que os 20 ou se necessário for aumentar existe a possibilidade. O tipo YEAR armazena os anos e é essencial para fazer cálculos com tempo. O tipo SMALLINT é interessante para casos onde sabemos que o valor será inferior a 65536. Pois ocupa menos espaço na memória. O número no final dos tipos define o número de caracteres que será suportado no campo. Tente novamente:
mysql> SHOW TABLES;
Caso você se esqueça como é sua tabela e os campos que ela tem utilize o comando describe.
mysql> DESCRIBE cadastro_dvds;
Ele retornará todas as informações necessárias.
Dados nas Tabelas
Toda tabela deverá receber informações, pois esta é sua função. Temos instruções básicas para isso, como LOAD DATA e INSERT.
nome ano minutos idioma genero
Apocalipse 16 2003 200 pt_BR Gospel
Khorus 2006 120 pt_BR Gospel
Smallville 2007 900 en_US Seriado
Arquivo X 1993 950 en_US Seriado
Silicon Valley 1991 120 en_US
Você pode criar um arquivo com um nome como dvds.txt, com um registro a cada linha, tendo seus valores separados por tabulações, contudo atenção, não coloque os nomes dos campos. Caso precise de colocar algum campo em branco digite N no seu lugar, para indicar que o valor do campo é nulo.
Carregue o arquivo na tabela da seguinte forma:
mysql> LOAD DATA LOCAL INFILE “dvds.txt” INTO TABLE cadastro_dvds;
Outra forma de inserir os dados é colocá-los através do comando INSERT:
mysql> INSERT INTO cadastro_dvds
-> VALUES (’David M Quinlam’, ‘2005′, ‘120′, ‘pt_BR’, ‘NULL’);
Quando inserimos desta forma não podemos utilizar o N e sim temos que escrever NULL.
Para atualizar um registro podemos utilizar o comando UPDATE.
mysql> UPDATE cadastro_dvds SET genero = “Gospel” WHERE
-> name = “David M Quinlam”;
Consultas Simples e Manuais
O Caractere * funciona como curinga, ele ordena que todos os registros sejam selecionados. Quem utiliza o linux, com certeza sabe do que estou falando… rsrsrs.
Então a sintaxe para recuperar todos os dados na tela, da tabela cadastro_dvds deverá envolver o nome desta tabela e o *.
mysql> SELECT * FROM cadastro_dvds;
Teremos a exibição de todos os dados na tela.
Seleções com condições.
mysql> SELECT nome, ano, minutos FROM cadastro_dvds WHERE
-> genero = “Gospel”;
Este tipo de consulta é INSENSITIVE CASE. Veja outro exemplo:
mysql> SELECT nome, minutos, genero FROM cadastro_dvds WHERE
-> ano >= “2000″;
Pode ainda utilizar operadores AND, OR, etc. Podemos ainda ordenar nossas consultas.
mysql> SELECT nome, minutos, genero FROM cadastro_dvds WHERE
-> ano >= “1992″ and genero <> “Gospel” ORDER BY name;
Consultas com cálculo e nova coluna de resultado
CURDATE () é a variável da data atual. Dela podemos extrair o ano YEAR(CURDATE()), o mês MONTH(CURDATE()) e dia do mês DAYOFMONTH(CURDATE()).
Uma consulta que calcula a idade dos nossos DVD’s.
mysql> SELECT nome, genero, CURDATE(), (YEAR(CURDATE()) - ano) AS
-> idade FROM cadastro_dvds;
Vamos ficando por aqui nesta nossa primeira parte. Já dá pra praticar bastante. Depois disponibilizarei mais algumas funções e dicas.
Grande abraço.
Ouça Rádio FDH Music >> www.fdhmusic.com.br
Publicações Relacionadas:
Testando…
beleza cara gostei muito deste tutorial digamos assim, pq na maioria das paginas que eu fui atras de conteudo sobre mysql os caras explicavam como se quem estivese lendo fosse experiente neste assunto, embora o titulo da maioria deles fosem para pessoas leigas no assunto. bom mas ja aproveitando o embalo, queria saber como exportar estas tabelas que eu criei, de maneira que o meu codigo php possa ‘puxar’ elas para a pagina do meu site, nao sei como explicar direito , mas e mais ou menos isso, de maneira que elas possam aparecer no meu site quando alguem procurar pelas palavra chave delas.
espero ancioso a resposta.
valeu
Obrigado pelo comentário.
Na verdade você terá que consultar o próprio banco de dados. Você terá que fazer a conexão direto da página para o mesmo. Contudo você terá que hospedar seu banco de dados num servidor web que suporte mySQL.
Estes comandos são suportados pelo PHP. Se você quer ter mais noção de como usar o php junto com MySql te recomendo um minicurso gratuito, é só acessar http://www.iped.com.br. Entre no curso de php básico, lá fala exporadicamente sobre o mysql, mas como fazer consultas com php no mysql ensina bem.
Grande abraço, qualquer estamos aí.
Pô ! essa dica foi ótima. Funcionou certinho. Obrigadão.
Vc é dos bons !!!