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

Jolvani Morgan

morgan.prof.ti@gmail.com
https://sites.google.com/site/profemti

Desenvolvimento de Sistema Web

Roteiro

Armazenamento em Banco de dados


Conectividade com Banco de dados
Linguagem SQL

SQL

SQL Structured Query Language.


(Linguagem de consulta estruturada)
Padro para interagir com banco de dados
relacionais.

Banco de dados
Um banco de dados relacional composto
por tabelas
Cada coluna da tabela armazena um tipo de
dado e representa um campo do banco de
dados. Cada linha armazena os dados de
um cliente e representa um registro.

Tipos de dados MySQL


(Principais)

Principais comandos
Create table
Insert
Select
Update
Delete

Create Table
Cria uma tabela
Sintaxe:

Exemplo:

Insert
Insere um registro em uma
determinada tabela
Sintaxe:

Exemplo:

Insere pessoa com ID = 1, se executarmos


novamente ir inserir pessoa com ID = 2 e

Select
Retorna um subconjunto de registros
Sintaxe:

Exemplos:

Select - WHERE
Usando WHERE
Sintaxe:
SELECT <lista de atributos> FROM <tabela>
WHERE <condio>
Condio:
<nome atributo> <operador> <valor>
Operadores:
=,>=,<,AND, OR e NOT

Select - WHERE
Exemplo:
Listar o nome e sexo dos empregados do
departamento 15.
SELECT nome, sexo FROM Empregado
WHERE num_dep = 15

Listar o nome e sexo dos funcionrios do


departamento 15 com salrio > R$ 2.000,00.
SELECT nome, sexo FROM funcionario
WHERE num_dep = 15
AND salario > 2000

Select WHERE LIKE e NOT LIKE


S se aplicam sobre atributos do tipo char ou
varchar. Operam com operadores =, <> ou !=
utilizando os smbolos % (substitui uma palavra)
e _ (substitui um caractere).
Sintaxe:
SELECT ... WHERE <nome atributo> LIKE <valor
1>

Exemplo:
Listar os empregados que tem como primeiro
nome Jos
SELECT nome FROM empregado WHERE nome

Select ORDER BY
Ordenando os dados selecionados (ORDER BY).
Sintaxe:
SELECT <lista de atributo> FROM <tabela>
[WHERE <condio>] ORDER BY <nome atributo>
{ASC | DESC}

Exemplo:
Listar todos os empregados ordenados
ascendentes por nome
SELECT * FROM empregado ORDER BY nome

Listar todos os empregados ordenados


descendentemente pelo salrio.

Select Funes
Utilizando funes sobre conjuntos.
Comando: MAX, MIN, SUM, AVG, COUNT
Exemplos:
Mostrar valor do maior salrio dos empregados
SELECT MAX(salario) FROM empregado

Mostrar qual o salrio mdio dos empregados.


SELECT AVG(salario) FROM empregado

Quantos empregados ganham mais de R$


2.000,00?
SELECT COUNT(*) FROM empregado WHERE
salario > 2000

Select IN (NOT IN)


Define valores a partir de uma lista de valores (IN).
Sintaxe:
SELECT <lista de atributo> FROM <tabela>
[WHERE <condio>] IN (value1, value2,...)

Exemplo:
Listar todos os empregados ordenados
ascendentes por nome
SELECT nome FROM empregado OWHERE salario
IN (2000,1000,3000)

Similar a: SELECT nome FROM empregado WHERE


salario=2000 OR salario=1000 OR salario=3000

Update
Atualiza uma tabela.
Sintaxe:

Exemplo:

Update
Atualiza uma tabela.
Sintaxe:

CUIDADO

Se no for passada uma


condio na clusula WHERE
todas as linhas da tabela sero
Exemplo:
alteradas !!!

Delete
Deleta (apaga) registro(s) de uma tabela.
Sintaxe:

Exemplo:

Delete
Deleta (apaga) registro(s) de uma tabela.
Sintaxe:

CUIDADO

Se no for passada uma


condio na clusula WHERE
todas as linhas da tabela sero
Exemplo:
deletadas!!!

PHP Banco de Dados


CONEXAO com BD Mudou PHP 7
http://rberaldo.com.br/pdo-mysql/
Bem elaborado
Com PDO ou mysqli....

N
E
T
A

http://www.w3schools.com/php/php_mysql_select.asp
Banco de Dados
Necessrio para armazenar dados, e fazer aplicaes web
dinmicas.

Mysql
Postgresql
MSSQL Server
Firebird
Oracle

PHP Banco de Dados

Existem 3 fases na utilizao de um banco de dados


1 - Fazer a conexo, abrir um link de comunicao entre a aplicao e o SGDB
2 - Abrir uma transao
3 - Executar Comandos SQL, Selects, Inserts, Updates, Deletes
4 - Finalizar a transao (commit, Rollback)
5 - Fechar a Conexo

Em alguns SGDB as fazes de Abrir transao e finalizar podem ser omitidas

PHP Banco de Dados


No Mysql
Em Mysql trabalhamos sem as fazes de transao
Conectar ao Banco de Dados
mysql_connect(servidor,usurio,senha);
ainda na faze de conexo temos que escolher o banco de dados a
utilizar
mysql_select_db("Bando_de_dados", Id_conexo);

<?php
$con =
mysql_connect("localhost","turma","abc123
");
mysql_select_db("aula", $con);
?>

PHP Banco de Dados

Executar uma ao no banco


de dados
mysql_query("sql",id_conexo
)
mysql_query executa qualquer
ao no banco de dados(select,
insert, update, delete, create,
drop, etc...)

<?

PHP Banco de Dados

quando usado com selects ele trs em seu resultado o resultado da consulta,
nos outros casos trs apenas True
para acessar o resultado de uma consulta usamos
mysql_fetch_array(Resultado da pesquisa)
para cada interao vai retornar uma linha do resultado

o resultado ser um array associativo no qual cada elemento ser uma coluna na
tabela, conforme especificado no sql

<?
$result = mysql_query("SELECT nome, idade FROM pessoa");
while($row = mysql_fetch_array($result)) {
echo $row['nome'] . " - " . $row['idade'];
echo "<br />";
}
?>

PHP Banco de Dados


Aps utilizar a conexo com o banco necessrio fecharmos,
existem dois caminhos
1 - podemos esperar a execuo do cdigo e o termino do script
(mais usado)
2 - podemos usar a funo mysql_close(id_conexo)

<?php
$con =
mysql_connect("localhost","turma","abc123"
);
//codigo aqui
mysql_close($con);
?>

PHP Banco de Dados


Para recuperar mensagens de erro no mysql
usa-se mysql_error()
Esta funo retorna a ultima mensagem de
erro do Banco de dados
<?php
$con = mysql_connect("localhost","turma","abc123");
if (!$con){
echo('erro ao conectar : ' . mysql_error());
}?>

PHP Banco de Dados


1 - insira um dado na tabela aluno

PHP Banco de Dados


2 - monte um formulrio com a estrutura da
tabela alunos, e insira os dados do
formulrio nela

PHP Banco de Dados


3 - monte uma tela que exiba os dados da
tabela aluno, e a qtde de registros
gravados.

PHP Banco de Dados


4 - na tela do exerccio anterior habilite uma
coluna com a opo excluir, e quando clicar
nesse link, excluir o registro selecionado

PHP Banco de Dados


5 - continuando na tela do exerccio anterior
exiba outra coluna com a opo editar, ao
clicar nela, abra um formulrio com os
dados preenchidos e se clicar em salvar
altere os dados cadastrados no banco de
dados

Conectividade com SGBD

Existem duas maneiras:


Drive Nativo:
ODBC:

Drive Nativo

Fala a mesma Lngua do SGBD:


Extremamente rpido

ODBC
Open Database Connectivity
Padro para acesso a Banco de Dados
Abstrair o SGBD da aplicao
Traduz as chamadas genricas (ODBC) em
chamadas especficas do SGBD
Mais Verstil.

PHP Banco de Dados


CONEXAO com BD Mudou PHP 7
http://rberaldo.com.br/pdo-mysql/
Bem elaborado
Com PDO ou mysqli....

N
E
T
A

http://www.w3schools.com/php/php_mysql_select.asp

Drive Nativo
Principais Funes:
mysql_connect();
mysql_select_db();
mysql_query();
mysql_affected_rows();
mysql_num_rows();
mysql_fecth_array();

PHP Banco de Dados


CONEXAO com BD Mudou PHP 7
http://rberaldo.com.br/pdo-mysql/
Bem elaborado
Com PDO ou mysqli....

N
E
T
A

http://
www.linhadecodigo.com.br/artigo/3638/php-pdo-como-se-conectarao-banco-de-dados.aspx
http://www.w3schools.com/php/php_mysql_select.asp

Drive Nativo Acesso ao BD


MySQL
Conectando o Banco de Dados passo a passo
Passo 1: conectar ao banco de dados utilizando o
mtodo resuerce mysql_connect($host, $user,
$password);
Passo 2: se conectado, selecionar o nome do BD
utilizando o mtodo mysql_select_db($dbname,
$conn);
Passo 3: executar queries atravs do mtodo
mysql_query($query);
Passo 4(final): fechar a conexo com o banco

Acesso a banco de dados


Conectando o Banco de Dados passo a passo
<?php
$localhost = "localhost";
$user = "root";
$senha = "";
$con = mysqli_connect($localhost,$user,$senha);
if($con == false){
echo "Conexo no estabelecida";
} else {
$db = mysqli_select_db($con,"bdempresa");
if ($db == false){
echo "Erro ao selecionar a base de dados";
}
}

Acesso a banco de dados


uma boa prtica criar arquivos que sero
reutilizados

Executando queries

Executa uma query


resuerce mysql_query(string $sql);

Executando Queries
Exemplo

Executando Queries
Recupera o ID gerado da operao insert
anterior
intmysql_insert_id([resourcelink_identifier])

<?php
mysql_query("INSERTINTOusurio(nome,endereco)
values('joao','avenida','...')")
print("Oultimoregistroincludotemid%d\n".
mysql_insert_id())
?>

Recuperando dados da base


Mtodos
mysql_facth_array
array mysql_facth_array(resuerce $query)
$query: resultado de um mysql_query

Mostrando o resultado
Exemplo:
<?php
include(conect.inc)
$sql=SELECTnome,enderecoFROMusurio
$query=mysql_query($sql)
$total=mysql_num_rows($query)
for($i=0$i<$total$i++){
$result=mysql_fetch_array($query)
echo$result['nome']
echo$result['endereco']
}
?>

$sql = "select * from tb_empregados";


$query = mysql_query($sql);
while ($empregado = mysql_fetch_array($query)){

Mostrando o resultado
Devolve o nmero de linhas afetadas:
intmysql_affected_rows([resourceid_conexao])
<?php
mysql_query("DELETEFROMusurioWHEREnomeLIKE%joao)
printf("Registrosexcludos:%d\n,mysql_affected_rows())
?>

PHP My Admin
Ferramenta que permite criar de maneira
intuitiva tabelas no MySQL.
Mas por que ento saber MySQL?
Abrir http://localhost/phpmyadmin
Efetuar as atividades propostas

Exerccios
Utilizando o phpMyAdmin
Crie a tabela empregado e campos (id, nome,
salario, departamento)
(id = inteiro; nome = varchar(80); salario=double;
departamento=inteiro ser uma chave
estrangeira)

Fazer inseres e testar comandos SQL.


Criar PHP que exiba todos os empregados

Mini Projeto Parte 1


Criar as tabelas empregado e produto com os
seguintes campos e os seguintes arquivos?
http://forum.imasters.com.br/topic/191441escolhendo-um-tipo-de-campo-correto/

Imagem
caminhoImagem

Mini Projeto Parte 1- Achou Fcil


Incrementar o projeto com:
Outra tabela tb_categoria(id, nome, descricao).
O ID ser referenciado na tabela produtos no
campo categoria.
Outra tabela tb_departamento(id,
departamento).O ID ser referenciado na tabela
empregados no campo departamento.
Outra tabela tb_venda(id, id_empregado,
id_produto, quantidade, data). OBS: Verificar a

Mini Projeto Parte 1- Achou Fcil


No add_empregado.php insira um combobox
substituindo o input para selecionar o
departamento da tabela tb_departamento.

Mini Projeto Parte 1- Achou Fcil


No alt_empregado.php tambm insira um
combobox conforme cdigo abaixo...

Projeto BD
Criar o BD denominado bdcrud e as tabelas
como segue:
Crie a tabela empregado e campos (id, nome,
salario, departamento)
(id = inteiro; nome = varchar(80); salario=double;
Tb_departamentos
departamento=inteiro
ser uma chave
estrangeira)idDepto
departamento

Drive Nativo Acesso ao BD


MySQL
Criar uma pasta em c:\xampp\htdocs
chamada prj_crud
Criar os arquivos:
conexao.php

Drive Nativo Acesso ao BD


MySQL
index.php

Drive Nativo Acesso ao BD


MySQL
Crie uma pasta css e o arquivo estilo.css

Drive Nativo Acesso ao BD


MySQL
Crie uma pasta css e o arquivo estilo.css

Drive Nativo Acesso ao BD


MySQL
Crie uma pasta empregados e os arquivos:
Add_empregado.php
Viz_empregado.php
Alt_empregado.php
Del_empregado.php

Drive Nativo Acesso ao BD


MySQL
Crie uma pasta empregados e os arquivos:
Add_empregado.php
Criar uma pagina com um formulrio:
<form action="adiciona_bd.php" method="post">
nome <input
salario <input
departamento .
</form>
Enviar para o arquivo adiciona_bd.php

Drive Nativo Acesso ao BD


MySQL
No adiciona_bd.php

Drive Nativo Acesso ao BD


MySQL
Crie uma pasta empregados e os arquivos:
Viz_empregado.php: criar uma pagina para visualizar os
dados do BD
Partes do cdigo....

$res = "select * from tbempregados";


$query = mysql_query($res) or die ("Erro ao selecionar tabela
Empregados");

while ($emp = mysql_fetch_array($query, MYSQL_ASSOC)) {

echo $emp['id_empregado']. - ".$emp['nome'];


echo $emp['salario'].-". $emp[departamento];

Reviso
Front-End:
HTML
CSS

index.php
conexo.php

JavaScript, jQuery ...

Back-End:

Sesso de Login

PHP

Login.php

JSP, JSF
ASP

Confere.php
Main.php
Verifica.php

Reviso
Programao Estruturada
Para desenvolver o CRUD/sistema usamos:

Back-End:
Inserir Dados no BD
Add_empregado.php

Alterar (Atualizar) Dados no BD


Alt_empregado.php

Deletar Dados no BD
Del_empregado.php

CRUD

Reviso
Programao Estruturada (Back-End):
Inserir Dados no BD
Add_empregado.php: Responsvel por criar o
formulrio para adicionar os dados no Banco, enviandoos para um novo arquivo;
Adiciona_bd.php: Fazer a conexo ao Banco, adicionar
os dados recebido do formulrio, providos do
Add_empregado.php usando instruo SQL.

Alterar (Atualizar) Dados no BD


Alt_empregado.php e Altera_bd: Alterao/atualizao
dos registros do banco de dados, seguindo a mesma
estrutura dos arquivos anteriores.

Vitrine de Produtos:
Exerccio

Vitrine de Produtos:
Exerccio

Vitrine de Produtos:
Exerccio

Vitrine de Produtos:
Exerccio

Vitrine de Produtos:
Exerccio

Vitrine de Produtos:
Exerccio

Vitrine de Produtos:
Exerccio

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