Download | Descrição |
MySQL para 1 banco de dados | Código fonte do Banco de dados MySQL |
MySQL para mais de 1 banco de dados | Código fonte do Banco de dados MySQL |
Banco de Dados |
Criar Banco de dados |
Pesquisar |
Inserir |
Alterar |
Excluir |
Listar |
Localizar |
Existem 2 tipos de bancos de dados:
Trabalhar com um único arquivo de banco de dados é mais fácil do que trabalhar com mais de um arquivo de banco de dados. A 2ª opção exige muito trabalho do programador, um banco de dados mal projetado prejudica o trabalho de uma equipe inteira, porém, um banco de dados bem projetado facilita a vida de todos.
Iremos ensinar como criar um banco de dados do mais simples (um único arquivo) ao mais complexo (com mais de um arquivo).
Um exemplo de banco de dados é uma Agenda telefônica nesta agenda tem os seguintes campos:
Nesta agenda tem os seguintes dados, veja tabela abaixo:
Nome |
Idade |
Profissão |
Endereço |
Telefone |
|
João Torres |
29 |
Agricultor |
Rua Venancio Barbosa 51 |
3480-9351 |
joaotorres@webmail.com |
Maria Teresa |
15 |
Estudante |
Rua Venancio Barbosa 35 |
4686-2233 |
mariateresa@webmail.com |
Flavia Antônia |
39 |
Professora |
Rua Vasco da Gama 85 |
7287-9324 |
flaviaantonia@webmail.com |
Tiago Pereira |
18 |
Desenhista |
Rua Antônio Gonçalo 25 |
2867-2368 |
tiagopereira@webmail.com |
Mateus Francisco |
11 |
Estudante |
Rua Gonçalo de Magalhães 38 |
7987-1155 |
mateusfrancisco@webmail.com |
Igor Gomes |
17 |
Estudante |
Rua Francisco Pereira 57 |
7386-7000 |
igorgomes@webmail.com |
Antônio Vasco |
16 |
Estudante |
Rua Diego Santos 187 |
7763-4720 |
antoniovasco@webmail.com |
Marcos Antônio |
38 |
Professor |
Rua Junqueira Freire 316 |
8249-3165 |
marcosantonio@webmail.com |
Tadeu Antônio |
71 |
Aposentado |
Rua Pereira Campos 21 |
4297-2332 |
tadeuantonio@webmail.com |
Renata Camargo |
26 |
Balconista |
Rua João Pinto 122 |
3629-1111 |
renatacamargo@webmail.com |
Diogo Francisco |
29 |
Atendente |
Rua João Pinto 122 |
9317-5155 |
diogofrancisco@webmail.com |
Agora vamos criar um programa que contenha todos esses dados.
1) Crie uma pasta chamada agenda e insira o código fonte abaixo:
Arquivo base.php |
<?php // Abrindo o banco de dados $conexao = mysql_connect('localhost','root',''); mysql_select_db('agenda',$conexao); ?> |
Arquivo instalacao.php |
<?php // Criando o banco de dados include "base.php";
$usuarios=mysql_query('CREATE TABLE usuarios(
codigo integer primary key auto_increment,
nome varchar(40), idade varchar(3), profissao varchar(15), endereco varchar(40), telefone varchar(14), e_mail varchar(40));', $conexao);
if($usuarios){ echo 'A tabela de usuários foi criada<br>'; } else { echo 'Erro: a tabela de usuários não foi criada. Veja sintaxe!<br>'; } ?> |
2) Execute o EasyPHP. Ele irá iniciar os servidores. Clique com o botão direito do mouse sobe o "E" preto que irá aparecer no canto inferior direito da tela e escolha a opção Administração.
3) A página do EasyPHP va abrir em seu navegador padrão. Clique no link MySQL
4) A página que irá ser carregado é a página para criação do Banco de Dados. Coloque um nome para o seu banco como mostra a figura. Tudo no EasyPHP é bem intuitivo.
5) Em "Nome do Banco" substitua pelo banco de dados em que você vai criar. Coloque agenda e clique no botão criar.
6) Abra o seu navegador e digite http://localhost/agenda/instalacao.php.
7) Se não ocorrer nenhum erro o navegador vai enviar uma mensagem: "A tabela de usuários foi crada".
8) Insira o código fonte do banco de dados em seguida digite no seu navegador http://localhost/agenda/bancodedados.php.
Obs: o arquivo bancodedados.php é a soma de HTML + Javascript + PHP + MySQL.
Arquivo bancodedados.php |
Cada cor corresponde a um script diferente:
|
<html> if ($menu=="pesquisar"){
} else if ($menu=="primeiro"){ } else if ($menu=="inserirBD"){ if ($result) {
} else if ($menu=="alterarBD"){ if ($result) {
} else if ($menu=="excluirBD"){
} else if ($menu=="localizarBD"){ $Quantos=mysql_num_rows($result); <?php <?php |
Se tudo ocorreu bem com o banco de dados é dividido em:
Arquivo base.php | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Abrindo um banco de dados (base.php)Para que nosso site tenha conexão a um banco de dados, precisamos criar uma página chamada base.php, que conterá nossos comandos de acesso ao banco de dados e esta será adicionada por um comando especial em cada página.
<?php // Abrindo o banco de dados $conexao = mysql_connect('localhost','root',''); mysql_select_db('agenda',$conexao); ?>
O MySQL possui um usuário padrão chamado root e senha nula, ou seja, em branco. O servidor padrão do MySQL é o localhost. Veja em mysql_connect. O nome do banco de dados é agenda, a string 'agenda' deve ser modificada para o nome do banco de dados que seu provedor lhe fornecerá. O seu nome será incerido na função mysql_select_db. Para que esta conexão seja utilizada pelo site, poderemos incluir um comando no início da página e nas páginas de administração que serão criadas. Isto evitará a repetição destes comandos. No banco de dados coloque o seguinte:
<?php include "base.php"; ?>
. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Arquivo instalacao.php | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Criando um banco de dadosCriando uma tabela (CREATE TABLE)Veja que estamos utilizando o identificador de conexão anteriormente criado no arquivo base.php. Isto é possível pela utilização do comando include. Observação: O banco de dados MySQL só é aberto para o usuário se no código fonte iserirmos <?php include "base.php" ?>. Sem isto, o banco de dados não será aberto.
Dentro da função mysql_query existe um comando para criar tabelas chamado CREATE TABLE. Observe:
CREATE TABLE <tabela> ( <campo1> <tipo>, <campo2> <tipo>, . . . );
A partir dessa sintaxe básica, criaremos a nossa tabela. Em nossa tabela temos os seguintes dados:
ChavesPara organizarmos o banco de dados usamos um número de identificação para cada registro, veja:
ClienteID é a chave. Isso facilita o armazenamento de seus detalhes em um banco de dados. Existem dois tipos de chave: chave primária e chave secundária. O exemplo acima é uma chave primária. A chave primária os números não se repetem, todas as tabelas tem uma única chave primária. Chave secundária: quando trabalhamos com mais de uma tabela é necessário ligarmos uma tabela a outra, observe: ClienteID é a chave primária de Cliente, mas quando ela aparece em outra tabela, como pedidos, é referida como chave secundária, ClienteID_2. A chave secundária os números podem ser repetidos, e toda a tabela pode conter mais de uma chave secundária (ao contrário da chave primária). Por padrão identificamos a chave primária por ID e chave secundária por ID_2. Talvez você se pergunte proque escolhemos ter duas tabelas separadas se não podemos armazenar em uma tabela só? Se um mesmo cliente fazer 3 pedidos diferentes não é preciso repetir os dados do cliente 3 vezes, isso evita armazenamento desnecessário. Deixando mais lento e o banco de dados maior. Quanto mais econômico o seu banco de dados, melhor a sua rapidez e melhor a sua produção. Isto é matéria para outro assunto. A nossa simples agenda tem uma tabela só. No MySQL a chave primária é declarada como integer primary key auto_increment.
Tipos de dadosAssim como existem vários tipos de variáveis, tais como: - Variáveis strings - Variáveis booleanas - Variáveis de números inteiros e - Variáveis de números reais. Existem vários tipos de campos para o armazenamento de informações no banco de dados. Cada campo armazena um tipo de dados. A seguir, a listagem completa dos tipos de dados utilizados no MySQL:
** Obsevação: [(M)] siginifica número total de dígitos, pode ser omititio ou não.
O UNSIGNED impede o armazenamento de números negativos, ou seja, valores menores que zero não serão permitidos. Quando omitimos o atributo UNSIGNED seu padrão é SIGNED, ou seja, permitirá valores negativos.
Os do tipo string dividem-se em três grupos. Primeiro, são strings velhas simples, isto é, pequenas partes de texto. Essas partes são os tipos CHAR (caractere de comprimento fixo) e VARCHAR (caractere de comprimento variável). Você pode especificar a largura de cada um. As colunas do tipo CHAR serão preenchidos com espalos até a largura mãxima independente do tamanho do banco de dados, enquanto as colunas VARCHAR variam em largura com os dados. (Note que o MySQL distribuirá em faixas os espaços finais a partir de CHARs quando eles forem recuperados e a partir de VARCHARs ELES FOREM ARMAZENADOS). Há uma relação de troca ou compensação entre espaço versus velocidade com esses dois tipos. O segundo, são os tipos TEXT e BLOB. Esses tipos ocorrem em vários tamanhos. Servem para texto longo ou dados binários, respectivamente. BLOBs são binary large objects. Esses podem armazenar o que você quiser, por exemplo, dados de imagem ou dados de som. Na prática, as colunas BLOB e TEXT são as mesmas exceto que TEXT diferencia letras maiúsculas de minúsculas e BLOB não diferencia. Como esses tipos de colunas podem armazenar grandes quantidades. O terceiro grupo tem dois tipos, SET e ENUM. O tipo SET é utilizado para especificar que valores nessa coluna devem vir de um conjunto particular de valores especificados. Os valors de coluna podem conter mais de um valor do conjunto. Você pode ter um máximo de 64 itens no conjunto especificado ENUM é uma enumeração. É muito semelhante a Set, exceto que colunas desse tipo podem ter somente um dos valores especificados ou NULL e que pode ter um máximo de 65.535 coisas na enumeração.
Tipos de dados ENUM e SET
Os tipos de dados ENUM e SET são tipos de dados bastante especiais em ocasiões em que temos opções que não mudam ou quase não mudam. Exemplo:
Se você inserir um valor inválido em um SET ou ENUM (isto é, uma string que não está presente na lista de valores permitidos), a string vazia é inserida no lugar como um valor especial de erro. Se um ENUM ou SET é declarado NULL, NULL é também um valor permitido para a coluna, e o valor padrão é NULL. Se um ENUM ou SET é declarado NOT NULL, o valor padrão é o primeiro elemento da lista de valores permitidos.
O código de instalação do banco de dados no servidor ficou assim:
<?php // Criando o banco de dados include "base.php";
$usuarios=mysql_query('CREATE TABLE usuarios(
codigo integer primary key auto_increment,
nome varchar(40), idade varchar(3), profissao varchar(15), endereco varchar(40), telefone varchar(14), e_mail varchar(40));', $conexao);
if($usuarios){ echo 'A tabela de usuários foi criada<br>'; } else { echo 'Erro: a tabela de usuários não foi criada. Veja sintaxe!<br>'; } ?>
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Arquivo bancodedados.php | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inserindo um registro (INSERT INTO)Trecho: include "base.php"; $result=mysql_query('insert into usuarios(nome, idade, profissao, endereco, telefone, e_mail) values("'.$nome.'", "'.$idade.'", "'.$profissao.'", "'.$endereco.'", "'.$telefone.'", "'.$e_mail.'");',$conexao);
Sintaxe: INSERT INTO <tabela> (campo1, campo2, ...) VALUES (valor1, valor2, ...);
Descrição: INSERT insere novos registros em uma tabela existente. Alterando um registro (REPLACE INTO)Trecho: include "base.php"; $result=mysql_query('replace into usuarios(codigo, nome, idade, profissao, endereco, telefone, e_mail) values("'.$codigo.'", "'.$nome.'", "'.$idade.'", "'.$profissao.'", "'.$endereco.'", "'.$telefone.'", "'.$e_mail.'");',$conexao); Sintaxe: REPLACE INTO <tabela>(campo_primário, campo1, campo2, ...) VALUES(valor_do_registro, valor1, valor2);
Descrição: REPLACE funciona exatamente como o INSERT, sendo que, substitui o registro antigo por um novo. Excluindo um registro (DELETE FROM)Trecho: include "base.php"; $result=mysql_query('delete from usuarios where codigo='.$codigo.';',$conexao);
Sintaxe: DELETE FROM <tabela> WHERE campo_primário = valor_do_registro;
Descrição: Remove (apaga) fisicamente o registro marcado para deleção. Listar registros (SELECT)Sintaxe: SELECT campo1, campo2 [, ...] FROM <tabela> ORDER BY campo_primário;
Descrição: SELECT é utilizado para retornar registros selecionados de uma ou mais tabelas. O comando SELECT serve para realizar consultas ao banco de dados (como um todo), e não somente a uma tabela.
Trecho: </head> <body> <h1 align="center">Listar</h1> <form name="frm_formulario" action="bancodedados.php" method="post"> <center> <input type="submit" value="Voltar"> <?php include "base.php"; $result=mysql_query("select codigo, nome, idade, profissao, endereco, telefone, e_mail from usuarios order by codigo;",$conexao); $Quantos=mysql_num_rows($result); $i=0; ?> </center> <table width="100%" border="1"> <tr> <td bgcolor="#CCCCCC"><strong>Código</strong></td> <td bgcolor="#CCCCCC"><strong>Nome</strong></td> <td bgcolor="#CCCCCC"><strong>Idade</strong></td> <td bgcolor="#CCCCCC"><strong>Profissão</strong></td> <td bgcolor="#CCCCCC"><strong>Endereço</strong></td> <td bgcolor="#CCCCCC"><strong>Telefone</strong></td> <td bgcolor="#CCCCCC"><strong>E-Mail</strong></td> </tr> <?php for ($i=0; $i<$Quantos; $i++) { ?> <tr> <td><?php echo mysql_result($result, $i, 'codigo');?></td> <td><?php echo mysql_result($result, $i, 'nome');?></td> <td><?php echo mysql_result($result, $i, 'idade');?></td> <td><?php echo mysql_result($result, $i, 'profissao');?></td> <td><?php echo mysql_result($result, $i, 'endereco');?></td> <td><?php echo mysql_result($result, $i, 'telefone');?></td> <td><?php echo mysql_result($result, $i, 'e_mail');?></td> </tr> <?php } ?> </table> <center> <input type="submit" value="Voltar"><br> <input type="hidden" name="menu" value="pesquisar"> </center> </form> Localizar um registro
Sintaxe: SELECT campo1, campo2 [,...] FROM <tabela> WHERE campo_qualquer LIKE %localizar%
Descrição: Localiza uma palavra no banco de dados exemplo: SELECT (...) campo_nome LIKE %João%. O banco de dados vai procurar por João e criar uma lista com o respectivo nome.
Trecho:
include "base.php"; $Quantos=mysql_num_rows($result);
|