Material III-Bimestre Conceito e Aplicação de Banco de Dados Usando PHP
description
Transcript of Material III-Bimestre Conceito e Aplicação de Banco de Dados Usando PHP
Universidade do Vale do ParaíbaColégio Técnico Antônio Teixeira FernandesDisciplina Ferramenta de Desenvolvimento
Material III-Bimestre
Conceito e Aplicação de Banco de Dados Usando PHP
http://www1.univap.br/~wagner
Prof. Responsável
Wagner Santos C. de Jesus
1
Manipulação de Banco de Dados
Usando PHP
2
3
O que vem a ser um Banco de dados.
Vem a ser a forma como organizamos as informações de origem podendo Relatar, Classificar, Organizar e Adaptar as maneira de se administrar as informações.
4
Sistemas de Gerenciamento de Banco de Dados
Um SGDB é o software responsável pelo armazenamento, recuperação e atualização dos dados de forma rápida e fácil. Um SGBD
relacional é um software gerenciador de banco que acessa os dados na forma de linhas e colunas.
Estrutura Geral de Sistema
Componentes Funcionais de um SGBD:
• Gerenciador de Arquivos: Gerencia a alocação de espaço e armazenamento em disco e estruturas de dados.
• Gerenciador do Banco de Dados: Proporciona interface entre os dados de baixo nível e os programas de aplicação e consultas.
• Processador de Consultas: Traduz comandos de uma linguagem de consulta em instruções de baixo nível para que o GBD entenda. Tenta otimizar os pedidos de consulta dos usuários.
• Pré-Compilador DML: Compila comandos DML em rotinas da linguagem do host. Precisa interagir com o processador de consultas para gerar código apropriado.
• Compilador DDL: Converte comandos DDL em um conjunto de tabelas contendo metadados, que são armazenados no DD.
5
6
Diferenças
• Oracle (Muito Alta Performance)
• MS-SQL-Server (Média p/ Alta Performance)
• InterBase (Média)
• MySql (Média)
• Microsoft Access
Autenticação com Banco
Cliente Form. HTML
Servidor
Base de Dados
Servidor, Login e Senha
Banco,Conexão
Libera Procedimento
7
Usando a Linguagem de Manipulação de Dados. (SQL)
A linguagem SQL (Structure Query Language) Linguagem de Estrutura de Consulta. Possibilita uma estrutura única de comandos que podem ser usados em qualquer Banco de Dados do Mercado com maior rapidez e eficiência na escrita de códigos de operações básicas de manipulação de dados.
8
Estudo da DML
• Linguagem de Manipulação de Dados (ou DML, de Data Manipulation Language) é uma família de linguagens de computador utilizadas para a recuperação, inclusão, remoção e modificação de informações em bancos de dados. Pode ser procedural, que especifica como os dados devem ser obtidos do banco; pode também ser declarativa (não procedural), em que os usuários não necessitam especificar o caminho de acesso, isto é, como os dados serão obtidos. O padrão SQL é não procedural. DMLs foram utilizadas inicialmente apenas por programas de computador, porém (com o surgimento da SQL) também têm sido utilizadas por pessoas.
9
Estudo de DDL
Linguagem de definição de dados (LDD ou DDL, do Inglês Data Definition Language) é uma linguagem de computador usada para a definição de estruturas de dados. O termo foi inicialmente introduzido em relação ao modelo de banco de dados Codasyl, onde o esquema de banco de dados era escrito em uma Linguagem de Definição de Dados descrevendo os registros, campos e "conjuntos" que constituíam o Modelo de dados do usuário. Inicialmente referia-se a um subconjunto da SQL, mas hoje é usada em um sentido genérico para referir-se a qualquer linguagem formal para descrição de estruturas de dados ou informação, assim como esquemas.
10
Estrutura da LinguagemSQL
• Select - Consulta de dados
• Insert - Inclusão de dados
• Update - Alteração de dados
• Delete - Remoção de dados
11
Abordagem Prática de uma Query (Consulta)
12
Instrução select permite realizar consultas (filtros emuma ou mais tabelas).
Sintaxe Geral :
Select [* | <campos>|distinct] From <Tabela> [where <condição>] like <mascara>
* - Pega todos os campos de uma tabela.
Distinct - Não permite repetição de registros.
From - Anuncia o nome da tabela que será
usada.
13
Sintaxe Geral :
Where - permite definir a condição para a consulta
like - Define que tipo de consulta será utilizada
através de máscara.
IS Null - Verifica se um campo é nulo, ou seja,
campos em branco.
Between e and - valores em um intervalo
específicado.
Order By - Ordena o registros da consulta
14
Exemplo de Consulta Correlacionanda
Exemplo
Select nome from funcionario where codfunc in(
select codfunc from vendas where cotas = 10)
15
Sintaxe :
Select [*/All/Distinct][<Campos-Tabela>] From [<Nome-Tabela>] Where [<Condição>][Order by <campo[ASC|DESC]]
Exemplo :
Select Nome,Endereco From Cadastro Where nome = ‘Jorge Mauro’
16
Exemplo de order by
Select * From tabela1 order by nome
Seleciona o valor todos os campos da tabela com nome em ordem Crescente.
17
Select endereco From tabela1 where nome is null
Seleciona os dados do campo endereco que o campo nome da tabela for igual nulo.
18
Select Nome,Fone from Funcionario Where Nome like ‘C%’
Seleciona os dados dos campos nome e
endereço que campo nome comece com letra
“C”.
19
Select Nome fone From tabela1 Where nome like ‘%Henrique%’
Seleciona os dados da tabela1 que o nome
tiver a string Henrique em qualquer posição.
20
Select Nome from funcionario where salario between 1200 and 4000 and (Estado=‘SP’ or Estado=‘RJ’
Seleciona os dados do campo nome que o
salário estiverem em um intervalo entre 1200
4000 e o estado for igual a SP ou RJ.
21
Select Nome, Estado from Tabela1 from funcionario where estado in(‘SP’,’MG’)
Seleciona os dados da tabela1 dos campos
nome e estado que estado for igual SP e MG
22
Funções de uma Query :
Upper - Retorna os dados do campo da tabela
letras maiúsculas.
AVG - Retorna a média dos valore de um
campo.
MIN - Retorna o menor valor do campo de
uma tabela.
MAX - Retorna o maior valor do campo de
uma tabela.
SUM - Retorna a soma dos valores de uma
determinada coluna. 23
Select Upper(nome), fone from tabela1
Select Max(Valor) from tabela1
Select Min(Valor) from Tabela1
Select Avg(Valor) from Tabela1
Select Sum(Valor) From Tabela1
24
Abordagem Prática de Comandos de Modificação
da base de dados.
25
(Inserir dados) - Sintaxe :
Insert into <Nome-Tabela>[( <Nome-dos-Campos> )] Values(<Lista de Campos>)
Exemplo :
Insert Into CadAlunos (Nome,Endereco) Values( 'Marta Cunha','Rua Siqueira Campos,3' )
26
Remover dados - Sintaxe :
Delete From <Nome-da-Tabela> [Where <Condição>]
Exemplo :
Delete From CadAlunos Where nome = ‘Maria das Coves’
27
Alterar Dados - Sintaxe :
Update <Nome da Tabela> set <nome-do-campo> = <Constante> [Where <Condição>]
Exemplo :
Update CadAlunos set nomeAluno = ‘Maria da Coves’ Where Codigo = ‘001’
28
mysql_connect
Estabelece conexão com o servidor de dados e retorna verdadeiro se houver sucesso na realização da mesma.
Sintaxe:
<varm> = mysql_connect(<servidor>,<usuario>,<senha>)
29
mysql_select_db
Estabelece conexão com o banco de dados e retorna verdadeiro se houver sucesso na realização da mesma.
Sintaxe:
<varm> = mysql_select_db(banco,conexao);
30
mysql_connect() - Abre uma conexão com um servidor MySQL.
Criação de autenticação no banco de dados.
- Servidor;
- Usuário;
- Senha
31
Servidor Banco de Dados
Servidor Web
Autenticação
Servidor, Usuário, Senha
Exemplo prático// Cria conexão com o banco de dados db.php
$servidor = "127.0.0.1";
$usuario = "root";
$senha = "";
$db = "Banco";
if($conexao = mysql_connect($servidor,$usuario,$senha)) {
if(!mysql_select_db($db,$conexao)) {
echo "<Script>Não foi possível efetuar a conexão com o Banco de Dados!!</Script>";
}
} else
echo "<Script>Não foi possível realizar a conexão!!</Script>";
32
mysql_query()
Envia uma instrução SQL para o banco de dados. Permitindo que sejam realizadas as operações.
• Select (Consulta)
• Insert (Inclusão)
• Update (Alteração)
• Delete (Remoção)33
Abertura de um cursor para localização em arquivo.
Jose
Pedro
Paulo
Roberta
Banco DadosResultSet
Movimentação para um tipo de navegação para
conjunto de resultados.
Realizar a navegação sequencial no registros do banco de dados
Aplicando instruções para a Consulta ao banco de dados
35
(Fluxo) Procedimentos para consulta em uma tabela
36
Conexão eAutenticação
Envio de comando DML(Consulta)
(S) Verifica se existe registro Exibe
registros
FIM
(N)
mysql_num_rows()
Retorna o número de linhas em um resultset retorna verdadeiro se existir linhas na consulta.
37
mysql_fetch_array()
Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante.
38
Consultando dados em uma tabelamysql_num_rows(), mysql_fetch_array()
<?php
include("bd.php");
$result = mysql_query("select * from tabela");
if(mysql_num_rows($result) != 0){
while($linha = mysql_fetch_array($result)){
echo $linha["Nome"]."<br>";
}
}
?>
39
Inserindo dados em uma tabela
include("bd.php");
$vnome = "Carlos Marcelo";
$vcidade = "São José dos Campos";
$sql = "Insert into tabela(nome,cidade) values ('".$vnome."','".$vcidade."')";
$result = mysql_query($sql);
if($result) {
echo "<script>alert('Dados Inserido com sucesso !!')</script>";
}
40
Alterando dados de uma Tabela
include("bd.php");
$vnome = "Carlos Marcelo";
$vcidade = "Campos do Jordão";
$cod = 9;
$sql = "Update tabela set cidade ='".$vcidade."' where codigo = ".$cod;
$result = mysql_query($sql);
if($result) {
echo "<script>alert('Dados atualizados com sucesso !!')</script>";
}
41
Remover dados de uma tabela
include("bd.php");
$cod = 9;
$sql = "Delete from tabela where codigo = ".$cod;
$result = mysql_query($sql);
if($result) {
echo "<script>alert('Dados Removidos com sucesso com sucesso !!')</script>";
}
42
Criando uma Estrutura de Dados para Exibição da
Informação
43
Criação de rotinas de auxilio ao desenvolvimento
Arquivo de cabeçalho que permite que as funções sejam chamadas assim que solicitadas. Em ciência da computação, mais especificamente no contexto da programação, uma sub-rotina (função, procedimento ou mesmo subprograma) consiste em uma porção de código que resolve um problema muito específico, parte de um problema maior (a aplicação final). 44
Algumas das vantagens na utilização de sub-rotinas durante a programação são:
• A redução de código duplicado num programa;• A possibilidade de reutilizar o mesmo código sem
grandes alterações em outros programas;• A decomposição de problemas grandes em
pequenas partes;• Melhorar a interpretação visual de um programa;• Esconder ou regular uma parte de um programa,
mantendo o restante do código alheio às questões internas resolvidas dentro dessa função;
45
Estrutura auxiliar
46
Retorno (saída) de dados na
função
Entrada de dados na função
Conjunto de Funções
MontaTela.php
Estrutura de Programação
47
SubRotinas.php
Gravadados.php MontaTela.php
db.php
listaDados.php
function strzero($numero)
Retorna com zeros a esquerda de um número informado caso exista posições em branco.
$numero: Número a ser preenchido com zeros a direita.
48
function faixa_horizontal($corletra,$corfaixa,$texto)
Cria faixa para divisão de dados em tela.
$corletra: Cor dos caracteres a serem apresentados na tela.
$corfaixa: Cor da faixa de divisão da tela.
$texto: Texto a ser exibido na faixa.
49
function campos_tela($array_campos,$progphp)
Cria tela de cadastramento enviando os campos que serão exibidos.
$array_campos: Array contendo os nomes dos campos que serão exibidos na tela.
$progphp: Nome do arquivo (php) que deverá ser usado pelo formulário.
50
function listaDados($strQ)
$strQ: Recebe instrução SQL para realização de consulta de campos.
Exemplo:
listaDados(“Select * from tabela”);
51
function InsereDados($array_campos,$nome_tabela)
$array_campos: Campos a serem inseridos na tabela.
$nome_tabela: Nome da tabela criado na base de dados.
52
Exercício
Escrever um programa que leia o nome o ano de nascimento o ano atual e grave em uma tabela o nome, ano de nascimento, ano atual e a idade da pessoa.
53