Escolar Documentos
Profissional Documentos
Cultura Documentos
Consultas SQL No PHP
Consultas SQL No PHP
Introduo
Grande parte de nosso cdigo PHP no desenvolvimento de projeto de comrcio eletrnico est relacionado s inseres, alteraes, eliminaes e consultas s informaes existentes em nosso banco de dados. O PHP a linguagem de programao que tem a capacidade de trabalhar junto ao banco de dados, na consulta ou gravao de informaes. Podemos perceber que ele no trabalha sozinho. O banco de dados em si uma tecnologia a parte (independente) do PHP e o responsvel pela manipulao destas informaes. O PHP nada mais faz do que solicitar a recuperao ou a gravao das informaes. Podemos dizer que o PHP um cliente do Banco de Dados que efetua solicitaes e que o Banco de Dados serve o PHP com as resultado destas solicitaes, seja enviando ou alterando informaes.. Quem faz o servio a engine de banco de dados. Quando menciono engine, quero dizer qualquer verso de um DBMS DataBase Management System, ou seja, um Sistema Gerenciador de Banco de Dados (Exemplo: MYSQL, ORACLE, DB2, MS-SQL, Postgree, Firebird, etc).
Aplicaes Corporativas
Onde as colunas foram criadas da seguinte forma:+-----------+------------------+ | Field | Type | +-----------+------------------+ | nome | varchar(50) | | cidade | varchar(30) | | estado | char(2) | | saldo | float | | ultVenda | date | | ativo | tinyint(1) | +-----------+------------------+ O comando abaixo ir selecionar todos as colunas (representado pelo asterisco) da tabela CLIENTES, onde a coluna NOME seja igual string/texto "JOAO". SELECT * FROM CLIENTES WHERE NOME = "JOAO" No importa a caixa (minsculo/maisculo) do comando. Quando trabalhamos com strings (trechos de textos) necessrio delimitar a string utilizando o sinal de aspas que pode ser simples ou duplas, dependendo do sistema de banco de dados. No MYSQL voc pode trabalhar tanto com simples quanto com duplas. Caso voc venha a executar estes comandos no MYSQL, no se esquea de colocar o sinal de ponto e vrgula no final ";" do comando. Note que temos a seguinte estrutura neste comando:SELECT Verbo SELECIONAR (Neste caso, significa SELECIONE) * Representa todas as colunas FROM Palavra DE CLIENTES Nome de uma tabela existente, no banco de dados WHERE Palavra ONDE NOME Coluna da tabela CLIENTES Seja igual = "JOAO" String (texto) a ser localizado Este comando ir selecionar apenas a ltima linha, onde temos a coluna nome = "JOAO". +------+----------+--------+-------+ | nome | cidade | estado | saldo | +------+----------+--------+-------+ | Joao | Pirapora | SP | 0.72 | +------+----------+--------+-------+
Aplicaes Corporativas Prof. Carlos Majer
Uma vez que se sabe a sintaxe bsica do comando, podemos efetuar algumas derivaes mais complexas:Selecione as colunas nome, estado e telefone da tabela clientes onde o estado seja igual a "SP".
SELECT nome, estado FROM clientes WHERE estado="SP"
Para isto, utilizamos a clusula WHERE, que permite definirmos um filtro, neste caso, com base no contedo da coluna estado, que deve ser igual a "SP". O resultado desta consulta retornar as seguintes linhas:+--------+--------+ | nome | estado | +--------+--------+ | Carlos | SP | | Joao | SP | +--------+--------+ Note que podemos exibir as colunas que desejarmos. Tambm que no obrigatrio exibir uma coluna (estado) que faa parte do filtro (WHERE estado="SP"). De forma similar, podemos utilizar o operador de negao "!" (NOT) para NO selecionar linhas conforme um determinado filtro. Exemplo:-
O comando acima ir selecionar os clientes que no sejam de So Paulo. Resultado:+--------------+---------------+--------+ | nome | cidade | estado | +--------------+---------------+--------+ | Ana | Gramado | RS | | Carina | Petropolis | RJ | | Ana Carolina | Fortaleza | CE | | Joao Carlos | Florianopolis | SC | +--------------+---------------+--------+
Selecione as colunas nome, cidade e uf, da tabela clientes, onde a coluna nome tenha em seu contedo a seqncia de caracteres "CAR". SELECT nome, cidade, estado FROM clientes WHERE nome LIKE "%CAR%" Note que o uso do LIKE nos permite efetuar busca de trechos de texto dentro do contedo da coluna. O desenvolvedor deve utilizar o % para isto.
Aplicaes Corporativas Prof. Carlos Majer
Ordenando o resultado
Muitas vezes temos um grande conjunto de linhas advindo de uma consulta SQL que desejamos que estivesse numa determinada ordem. Exemplos prticos disto so:Clientes em ordem alfabtica (da coluna nome) Clientes com em ordem de saldo Clientes em ordem de estado e em seguida de cidade
Aplicaes Corporativas
No exemplo abaixo, exibo apenas as colunas nome, estado e cidade ordenando as linhas primeiro por estado e em seguida por cidade:-
SELECT nome, estado, cidade FROM clientes ORDER BY estado, cidade +--------------+--------+---------------+ | nome | estado | cidade | +--------------+--------+---------------+ | Ana Carolina | CE | Fortaleza | | Carina | RJ | Petropolis | | Ana | RS | Gramado | | Joao Carlos | SC | Florianopolis | | Joao | SP | Pirapora | | Carlos | SP | Sao Paulo | +--------------+--------+---------------+ No prximo exemplo, ordeno as linhas conforme o saldo, filtrando apenas os clientes ativos:SELECT * FROM clientes WHERE ativo ORDER BY saldo
+--------------+---------------+--------+-------+------------+-------+ | nome | cidade | estado | saldo | ultvenda | ativo | +--------------+---------------+--------+-------+------------+-------+ | Ana Carolina | Fortaleza | CE | 0 | 2007-10-07 | 1 | | Ana | Gramado | RS | 27.5 | 2007-12-20 | 1 | | Carlos | Sao Paulo | SP | 100 | 2008-05-02 | 1 | | Joao Carlos | Florianopolis | SC | 2520 | 2008-04-12 | 1 | +--------------+---------------+--------+-------+------------+-------+
Exerccios
Desenvolva uma tabela de produtos e preencha-a com os campos e as linhas necessrios, para executar as consultas abaixo.
Aplicaes Corporativas Prof. Carlos Majer
Concluso
Verificamos que possvel selecionar um conjunto de linhas atravs das consultas (comandos) SQL, filtrando os valores possveis das colunas que podem ser de vrios tipos (string, nmero, data). Identificamos tambm a maneira pela qual conseguimos filtrar os valores de determinadas colunas para restringir o nmero de informaes. Por final, modificamos a ordem pela qual as linhas resultantes so exibidas. O prximo passo ser estudarmos como utilizar estas consultas SQL via PHP.
Aplicaes Corporativas