![](http://dev.mysql.com/common/logos/mysql_100x52-64.gif)
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:
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.
Nenhum comentário:
Postar um comentário
AVISO: O sistema de comentários é disponibilizado aos usuários do site é exclusivamente para a publicação de opiniões e comentários relacionados ao conteúdo deste site. Os comentários aqui publicados por terceiros através deste sistema são de exclusiva e integral autoria e responsabilidade dos leitores que dele fizerem uso. Os autores deste site reservam-se, desde já, ao direito de excluir comentários e textos que julgarem ofensivos, difamatórios, caluniosos, preconceituosos, de alguma forma prejudiciais a terceiros, ou que tenham caráter puramente promocional.