Slide 1 - Univap

Propaganda
Universidade do Vale do Paraíba
Colégio Técnico Antônio Teixeira Fernandes
Disciplina 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
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.
3
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.
4
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
Diferenças
•
•
•
•
•
Oracle (Muito Alta Performance)
MS-SQL-Server (Média p/ Alta Performance)
InterBase (Média)
MySql (Média)
Microsoft Access
6
Autenticação com Banco
Cliente
Form. HTML
Servidor, Login e Senha
Servidor
Banco,Conexão
Libera Procedimento
Base de
Dados
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 Linguagem
SQL
•
•
•
•
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 em
uma 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
23
determinada coluna.
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
Servidor Web
Autenticação
Servidor Banco de
Dados
Servidor,
Usuário,
Senha
31
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
Banco Dados
ResultSet
Pedro
Paulo
Roberta
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
Conexão e
Autenticação
Envio de comando DML
(Consulta)
(S) Verifica se existe
registro
Exibe
registros
(N)
FIM
36
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 tabela
mysql_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
44
final).
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
Conjunto de Funções
Entrada de
dados na
função
MontaTela.php
Retorno
(saída) de
dados na
função
46
Estrutura de Programação
db.php
SubRotinas.php
Gravadados.php
listaDados.php
MontaTela.php
47
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
realização de consulta de campos.
para
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
Download