• Home
  • Projetos
  • Palestras
  • Artigos
  • Livros

Usando o SQLite

18/04/2007  Ler e Comentar

O SQLite é um banco de dados relacional cuja estrutura (tabelas, índices, dados) está contida em um único arquivo no sistema. O acesso aos dados é implementado por uma biblioteca de funções escritas em C por Richard Hipp e a manipulação dos dados é realizada através da linguagem SQL.

Você deve estar acostumado com bancos de dados relacionais cuja estrutura cliente-servidor exige a intalação do servidor de banco de dados, que irá se comunicar com a aplicação, geralmente através de uma porta específica, via protocolo TCP/IP. Pois o SQLite não tem nada disto, ele pode ser compactado juntamente com a aplicação. Imagine um arquivo chamado "meusistema.db" contendo todas as tabelas do seu sistema! Você só terá de compactar este arquivo junto com sua aplicação para distribuir seu programa ! Lembra do formato .DBF, comum entre as aplicações clipper ? ou os arquivos .MDB do access ? Pois é, o sqlite tem o mesmo foco, proporcionar uma estrutura de banco de dados simples em arquivo para ser distribuído juntamente com aplicações standalone, mas é muito melhor que seus antecessores ;-) tendo em vista que implementa o padrão SQL92, permite transações, triggers e permite bancos de dados de até 2 tebibytes de tamanho (2 na 41), ou seja, é byte pra caramba. O banco de dados pode servir várias requisições de leitura (SELECT) ao mesmo tempo, entretanto um lock do arquivo é realizado em operações de escrita (INSERT, UPDATE, DELETE).

A biblioteca de acesso ao SQLite é parte integrante do PHP5. Isto quer dizer, que as funções de criação e acesso ao banco de dados são nativos da linguagem, o que torna seu uso extremamente simples.

Veja a seguir alguns exemplos...



UTILIZAÇÃO PELA INTERFACE PROCEDURAL
====================================
Neste primeiro exemplo, vamos ver como funciona a interface
procedural de acesso ao SQLite. No início verificamos se o
arquivo do banco de dados existe, pois se ele não existir,
a própria função sqlite_open() irá criá-lo e em seguida, iremos
inserir os dados necessários. Este programa faz uma consulta ao
banco de dados e retorna os dados da tabela de pessoas.
<?php
// verifica se o banco já existe
$check = file_exists('meubanco.db');

// abre o banco de dados
// se não existir irá criar
$db = sqlite_open('meubanco.db');

// se é a primeira vez
if (!$check)
{
    
// cria tabelas
    
sqlite_query($db, 'create table pessoas (id, nome)');
    
// insere dados
    
sqlite_query($db, 'insert into pessoas values (1, "maria")');
    
sqlite_query($db, 'insert into pessoas values (2, "pedro")');
    
sqlite_query($db, 'insert into pessoas values (3, "josué")');
}

// executa um SELECT
$result = sqlite_query($db, 'select id, nome from pessoas');

// percorre os resultados
while ($row = sqlite_fetch_array($result))
{
    echo 
$row['id'] . ' - ' .
         
$row['nome'] . "<br>\
"
;
}
// fecha conexão
sqlite_close($db);
?>


UTILIZAÇÃO PELA INTERFACE ORIENTADA A OBJETOS
=============================================
Abaixo, temos o mesmo programa reescrito para a utilização
da interface orientada a objetos do SQLite. Nela, as funcionalidades
estão disponíveis através de métodos da classe SQliteDatabase.
<?php
// verifica se o banco já existe
$check = file_exists('meubanco.db');

// abre conexão com o banco de dados
// instanciando um objeto.
// se o DB não existir, irá criar
$db = new SQliteDatabase('meubanco.db');

// se é a primeira vez
if (!$check)
{
    
// cria tabelas
    
$db->query('create table pessoas (id, nome)');
    
// insere dados
    
$db->query('insert into pessoas values (1, "maria")');
    
$db->query('insert into pessoas values (2, "pedro")');
    
$db->query('insert into pessoas values (3, "josué")');
}

// executa um SELECT
$result = $db->query('select id, nome from pessoas');

// percorre os resultados
foreach ($result as $row)
{
    echo 
$row['id'] . ' - ' .
         
$row['nome'] . "<br>\
"
;
}
// fecha conexão
unset($db);
?>




Comentários



 Adicionar Comentário
 Nome
 Email
 Título
 Comentário

Livros


  • Outros

    • Galeria de Fotos
    • Posts no Codare

    Arquivo

    • 2008
    • 2007
    • 2006
    • 2005
    • 2004
  • Google

    Blogroll

    • Adler Medrado
    • Aurélio Jargas
    • Andrei Zmievski
    • Eduardo Maçan
    • Efetividade
    • Er Galvão
    • Joel on Software
    • Marcelio Leal
    • Martin Fowler
    • Miguel de Icasa
    • Newton Wagner
    • Rafael Dohms
    • Rasmus Lerdorf
    • Sérgio Crespo
    • Timoty Ney

    Posts Aleatórios

    • Acessando o Gmail do PHP
    • Roteador ZinWell G220 como repetidor
    • Escritório de nerd imitando de executivo
    • eeePC 1000HD é muito bom
    • Software Freedom Day
    • SITEC
    • Implantação do GNUTeca em Ivoti
    • Implantação do GNUTeca na ESMP
    • Gerando Thumbs em PHP
    • Calcular o caminho euleriano em PHP
    • Palestra PHP: da web ao desktop no Uniinfo2008
    • Reportagem sobre o livro de PHP-GTK no Jornal o Estado de São Paulo
    • Sintaxe do Vim no Ubuntu
    • Cafeomancia
    • III Seminário de Desenvolvimento de Software Livre
    • Treinamento de Agata Report na Univates
    • 7o Fórum Internacional de Software Livre
    • Latinoware e Forum do GNOME em Foz do Iguaçu
    • phpNow! em Petrópolis-RJ
    • Luau do Sesi e Show do Cidadao Quem em Teutônia
 
Designed by Wolfgang Bartelme Designed by Wolfgang Bartelme

© 2006 Wordpress Themes | Theme (Not so) Fresh
XHTML CSS