Вы находитесь на странице: 1из 7

Banco de dados MySql / PHP

Por Thiago Martini da Costa

1. Tópicos parte I
Breve Introdução a Banco de Dados e SGDB
a. O que é um Banco de Dados
b. Para que serve um SGDB
c. O que é uma SQL
d. Como inserir uma linha numa tabela
e. Como atualizar uma linha de uma tabela
f. Como recuperar uma linha ou um conjunto de linhas
g. Como remover uma linha de uma tabela

2. Tópicos parte II
PHP interagindo com SGDB MySQL
a. Como PHP interage com banco de dados MySQL
b. Como abrir uma conexão
c. Como selecionar o banco de dados
d. Como executar uma SQL
e. Como manipular o ResultSet da execução anterior
f. Como fechar a conexão aberta
3. Referência utilizada
Breve Introdução a Banco de Dados e SGDB
O intuito desta seção é fornecer uma breve introdução sobre Banco de Dados, explicando a
necessidade de um Sistema Gerenciador de Banco de Dados (SGDB) e sua utilidade. Nesta
seção será apresentada ainda a sintaxe básica dos principais comandos SQL para uma
manipulação simples das tabelas do banco: INSERT, UPDATE, SELECT, DELETE.
Cabe ressaltar que não será apresentado aqui toda a estrutura SQL, nem tampouco o
modo de funcionamento de um SGDB e sim uma breve introdução. Maiores informações
podem ser encontradas em livros sobre banco de dados e até mesmo nos manuais dos
SGBD.

1.a ) O que é um Banco de Dados


Um Banco de Dados ou uma base de dados é uma coleção de dados relacionados entre si,
organizada e armazenada de forma a possibilitar uma fácil manipulação.
Em um Banco de Dados relacional temos uma série de tabelas onde essas tabelas
têm um conjunto de linhas (tuplas) e colunas. As colunas representam as informações
pertinentes a uma linha. Desta forma, as linhas devem ser identificadas univocamente por
uma chave primária para que possam ser recuperadas posteriormente suas informações. A
chave primária pode ser uma coluna que nunca terá seus dados repetidos ou um conjunto de
colunas que juntas nunca serão repetidas.
Abaixo segue o exemplo de uma tabela com suas linhas e colunas.
tabela_pessoa
Coluna 1 Coluna 2 Coluna 3
rg nome data_nasc
Tupla 1 R01 Fulano da Silva 2005-08-24
Tupla 2 R02 Cicrano de Souza 2005-07-31
Tupla 3 R03 Beltrano da Costa 2004-03-18
No exemplo dado a coluna utilizada como chave é a coluna rg. Portanto se
quisermos criar uma outra tabela que esteja relacionada a esta utilizaremos a chave para
identificar o relacionamento:
tabela_trabalha
Coluna 1 Coluna 2
rg local_trabalho
Tupla 1 R01 HC
Tupla 2 R01 Hemocentro
Tupla 3 R03 Farmácia
Assim sabemos que Fulano da Silva trabalha no HC e no Hemocentro e que
Beltrano da Costa trabalha na Farmácia.

1.b ) Para que serve um SGDB


Um Sistema Gerenciador de Banco de Dados ou SGDB é um conjunto de programas
utilizados para criar e manter um banco de dados.
São exemplos de SGDB MySQL, PostgreSQL, Firebird, Oracle, DB2, SQLServer,
onde os três primeiros são gratuitos.
O SGDB provê um acesso otimizado aos dados propiciando uma recuperação rápida
e eficiente. Ao conjunto Banco de Dados e Sistema Gerenciador de Banco de Dados
chamamos de Sistema de Banco de Dados (SBD).
As vantagens de se utilizar um Sistema de Banco de Dados é:
• Consistência: minimiza incoerências
• Integração: evita redundância
• Independência de Dados: facilita modificações
• Sistemas Distribuídos: organização
• Compartilhamento: controle de concorrência
• Representação de Relacionamentos Complexos
• Segurança: restrições específicas de acesso

1.c ) O que é uma SQL


A SQL ou Structured Query Language (Linguagem de Consulta Estruturada) é uma
linguagem criada para a manipulação e o controle dos Banco de Dados relacionais.
Alguns de seus principais recursos são:
• Alto poder de consulta
• Gerenciamento de índices
• Construção de visões
• Execução de instruções em blocos

1.d ) Como inserir uma linha em uma tabela


A sintaxe SQL mais simples para inserir uma tupla em uma tabela é a seguinte:
INSERT INTO nome_tabela VALUES ([valor_coluna1, valor_coluna2, ...])

Nesta sintaxe deve ser colocado em nome_tabela o nome da tabela e entre


parênteses todos os valores de todas as colunas da tabela. No nosso exemplo ficaria:
INSERT INTO tabela_pessoa VALUES (‘R01’, ‘Fulano da Silva’, ‘2005-08-24’)
No entanto algumas vezes nós não temos todos os dados de todas as colunas e sim
somente alguns (os requeridos como a chave, por exemplo), dessa forma devemos indicar
quais colunas estamos inserindo da seguinte forma:
INSERT INTO tabela_pessoa (rg, nome) VALUES (‘R04’, ‘Cara sem data de nascimento’)

1.e ) Como atualizar uma linha de uma tabela


Tão fácil quanto inserir uma linha em uma tabela é atualizar uma linha dela. A sintaxe é
simples também, no entanto, é necessário que se especifique quais colunas da tupla você
está atualizando e qual tupla. A sintaxe é:
UPDATE nome_tabela SET nome_coluna=novo_valor WHERE condição

No exemplo da tabela_trabalha poderíamos fazer uma atualização do tipo:


UPDATE tabela_trabalha SET local_trabalho=’Farmácia’ WHERE rg=’R01’

1.f ) Como recuperar uma linha ou um conjunto de linhas


Podemos fazer diversos tipos de recuperação de informação de uma tabela. Uma primeira
forma mais simples é recuperar todas as colunas e todas as linhas de uma tabela. A sintaxe
para este tipo de consulta é:
SELECT * FROM nome_tabela
Uma consulta um pouco diferente seria recuperarmos todas as linhas, mas porém apenas
algumas colunas da tabela. A sintaxe é a seguinte:
SELECT coluna1, coluna2, ... FROM nome_tabela.
Uma outra forma diferente é selecionar todas as colunas mas somente as tuplas que
satisfazem uma condição. A sintaxe é:
SELECT * FROM nome_tabela WHERE condição
Uma última forma de consulta simples em uma tabela é recuperar algumas colunas de
algumas tuplas que satisfazem uma condição. A sintaxe é:
SELECT coluna1, coluna2, ... FROM nome_tabela WHERE condição

Exemplos são destas três formas de utilização são os seguintes:


SELECT * FROM tabela_pessoa
SELECT rg, nome FROM tabela_pessoa
SELECT * FROM tabela_trabalha WHERE rg=’R01’
SELECT local_trabalho FROM tabela_trabalha WHERE rg=’01’

1.g ) Como remover uma linha de uma tabela


Para remover uma linha de uma tabela, a sintaxe e a seguinte:
DELETE FROM nome_tabela WHERE condição

Podemos dar como exemplo a remoção da tupla 1 da tabela trabralha


DELETE FROM tabela_trabalha WHERE local_trabalho=’HC’ AND rg=’R01’
PHP interagindo com o SGDB MySQL
Nesta seção serão apresentadas as principais funções, ou rotinas, PHP utilizadas para
interagir com o SGDB MySQL.

2.a ) Como PHP interage com o SGDB MySQL


PHP fornece uma série de funcionalidades para a interação com o SGDB MySQL. A
seqüência lógica dessa interação pode ser descrita pelos seguintes passos:
Primeiro passo: estabelecer uma conexão com o SGDB MySQL.
Segundo passo: selecionar o banco de dados utilizado.
Terceiro passo: executar a SQL desejada.
Quarto passo: fechar a conexão.

2.b ) Como abrir uma conexão


Uma forma de se estabelecer a conexão com SGDB MySQL é utilizando a função
mysql_pconnect(). Esta função abre uma conexão persistente com o SGDB. Ela retorna um
link (uma ligação) caso a conexão tenha sido estabelecida ou retorna false caso a conexão
não pôde ser estabelecida. Existem várias assinaturas para esta função, no entanto uma bem
comum é aquela onde são passados o host, o usuário e o password. A assinatura descrita
segue abaixo:
$conexao = mysql_pconect(‘host’, ‘usuario’, ‘senha’)
Onde $conexao é a variável que conterá o link caso a conexão tenha sido
estabelecida, host é o local onde o SGBD está instalado e provendo o serviço. Usuário e
senha são, respectivamente, o usuário e sua senha no SGDB.

2.c ) Como selecionar o banco de dados


Uma vez criado o link com o SGDB deve-se indicar qual o banco de dados que será
trabalhado. Para tal faz-se uso da função mysql_select_db(). Ela retorna true ou false
dependendo se ela conseguiu ou não ativar o banco de dados indicado. Uma assinatura
possível é aquela onde são passados o banco e o link. A assinatura descrita segue abaixo:
$conseguiu = mysql_select_db(‘nome_banco’, $conexao)

2.d ) Como executar uma SQL


Para executar uma SQL no SGDB MySQL utiliza-se a função mysql_query(). Esta função
retorna um ResultSet contendo os resultados da consulta caso a query seja um SELECT ou
então ela retorna true ou false se a query for INSERT, DELETE ou UPDATE. Uma
assinatura possível é aquela onde são passados a query e o link. A assinatura descrita segue
abaixo:
$resultado = mysql_query($sql, $conexao)
Onde $sql é uma variável que contém uma string com a operação desejada.

2.e ) Como manipular o ResultSet da execução anterior


A função mysql_query() retorna, como mencionado, um ResultSet. Talvez uma das
maneiras mais simples de se manipular esse ResultSet é transformando-o em uma matriz
MxN onde M é o número de linhas contidas no resultado da consulta e N o número de
colunas contidas no resultado da consulta.
Para obter tal resultado faremos uso da função mysql_fetch_row(). Esta função
retorna um array 1xN contendo os valores de uma tupla e posiciona o ponteiro do resultSet
na próxima tupla. O parâmetro dessa função é uma variável contendo o resultSet.
Segue abaixo um exemplo dessa transformação de um resultSet em uma matriz:
$resultSet = mysql_query(“SELECT nome, rg FROM tabela_pessoa”, $conexao)
$l = 0;
while($linha = mysql_fetch_row($resultSet)){ // para passar por todas as linhas
$resultado[$l] = $linha;
$l++;
}
Depois dessa execução, a variável resultado será uma matriz de Mx2, onde M é o
número de tuplas da tabela_pessoa. Cada posição $l,$c corresponde à linha de índice $l
(começando de zero) e à coluna de índice $c do resultSet (começando de zero). Por
exemplo, $resultado[0][0] conterá a string “Fulano da Silva” e $resultado[0][1] a string
“R01”.

2.f ) Como fechar a conexão


Para fechar a conexão aberta no item 2.b é utilizada a função mysql_close(). Ela retorna
true ou false dependendo se ela conseguiu ou não fechar a conexão. Como parâmetro,
geralmente é passado o link aberto no item 2.b. A sintaxe é a seguinte:
$conseguiu = mysql_close($conexao)
3. Referência utilizada
Parte dessa apostila foi confeccionada com base nas anotações de aula da disciplina Banco
de Dados I do professor Dr. Joaquim César Felipe.

Вам также может понравиться