53
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

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

Embed Size (px)

Citation preview

Page 1: 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

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

Page 2: 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

Manipulação de Banco de Dados

Usando PHP

2

Page 3: 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

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.

Page 4: 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

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.

Page 5: 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

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

Page 6: 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

6

Diferenças

• Oracle (Muito Alta Performance)

• MS-SQL-Server (Média p/ Alta Performance)

• InterBase (Média)

• MySql (Média)

• Microsoft Access

Page 7: 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

Autenticação com Banco

Cliente Form. HTML

Servidor

Base de Dados

Servidor, Login e Senha

Banco,Conexão

Libera Procedimento

7

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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

Page 11: 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

Estrutura da LinguagemSQL

• Select - Consulta de dados

• Insert - Inclusão de dados

• Update - Alteração de dados

• Delete - Remoção de dados

11

Page 12: 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

Abordagem Prática de uma Query (Consulta)

12

Page 13: 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

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

Page 14: 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

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

Page 15: 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

Exemplo de Consulta Correlacionanda

Exemplo

Select nome from funcionario where codfunc in(

select codfunc from vendas where cotas = 10)

15

Page 16: 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

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

Page 17: 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

Exemplo de order by

Select * From tabela1 order by nome

Seleciona o valor todos os campos da tabela com nome em ordem Crescente.

17

Page 18: 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

Select endereco From tabela1 where nome is null

Seleciona os dados do campo endereco que o campo nome da tabela for igual nulo.

18

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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

Page 25: 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

Abordagem Prática de Comandos de Modificação

da base de dados.

25

Page 26: 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

(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

Page 27: 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

Remover dados - Sintaxe :

Delete From <Nome-da-Tabela> [Where <Condição>]

Exemplo :

Delete From CadAlunos Where nome = ‘Maria das Coves’

27

Page 28: 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

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

Page 29: 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

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

Page 30: 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

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

Page 31: 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

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

Page 32: 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

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

Page 33: 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

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

Page 34: 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

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

Page 35: 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

Aplicando instruções para a Consulta ao banco de dados

35

Page 36: 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

(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)

Page 37: 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

mysql_num_rows()

Retorna o número de linhas em um resultset retorna verdadeiro se existir linhas na consulta.

37

Page 38: 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

mysql_fetch_array()

Retorna uma matriz que corresponde a linha obtida e move o ponteiro interno dos dados adiante.

38

Page 39: 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

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

Page 40: 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

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

Page 41: 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

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

Page 42: 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

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

Page 43: 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

Criando uma Estrutura de Dados para Exibição da

Informação

43

Page 44: 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

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

Page 45: 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

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

Page 46: 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

Estrutura auxiliar

46

Retorno (saída) de dados na

função

Entrada de dados na função

Conjunto de Funções

MontaTela.php

Page 47: 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

Estrutura de Programação

47

SubRotinas.php

Gravadados.php MontaTela.php

db.php

listaDados.php

Page 48: 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

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

Page 49: 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

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

Page 50: 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

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

Page 51: 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

function listaDados($strQ)

$strQ: Recebe instrução SQL para realização de consulta de campos.

Exemplo:

listaDados(“Select * from tabela”);

51

Page 52: 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

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

Page 53: 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

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