domingo, 16 de setembro de 2012



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.