Aplicativos em PHP/Administração dos SGBDs/SQLite

SQLite na Wikipedia editar

http://pt.wikipedia.org/wiki/Sqlite

SQLite é uma biblioteca C que implementa um banco de dados SQL embutido. Programas que usam a biblioteca SQLite podem ter acesso a banco de dados SQL sem executar um processo RDBMS separado.

SQLite não é uma biblioteca de cliente usada para conectar com um grande servidor de banco de dados. SQLite é o servidor. A biblioteca SQLite lê e escreve diretamente para e do arquivo do banco de dados no disco.

O uso do SQLite é recomendado onde a simplicidade da administração, implementação e manutenção são mais importantes que incontáveis recursos que SGBDs mais voltados para aplicações complexas possivelmente implementam. Entretanto situações onde a simplicidade é a melhor escolha são muito mais freqüentes do que pode-se imaginar.

Exemplos de uso do SQLite são, não restrito a, sites (com menos de cem mil requisições por dia), dispositivos e sistemas embarcados, aplicações desktop, ferramentas estatísticas e de análise, aprendizado de banco de dados, implementação de novas extensões à SQL. Não se recomenda o uso do SQLite para sites com muitos acessos, grande quantidades de dados (talvez maior que algumas dúzias de gigabytes), sistemas com grande concorrência, aplicações cliente/servidor.

Programas que usam a biblioteca SQLite podem ter acesso a banco de dados SQL sem executar um processo RDBMS separado.

A biblioteca SQLite lê e escreve diretamente para e do arquivo de banco de dados no disco.

Características atuais editar

  • Transações são atômicas, consistentes, isoladas e duráveis (ACID)

mesmo que o sistema trave ou a energia falhe.

  • Configuração-zero - nenhuma instalação ou administração necessária.
  • Implementação da maior parte do SQL92.
  • Um banco de dados completo é armazenado em apenas um arquivo de sistema.
  • Arquivos de banco de dados podem ser livremente compartilhados entre

máquinas com diferentes ordens de byte.

  • Suporta bases de dados de até 2 terabytes de tamanho.
  • Tamanho de strings e BLOBs limitados apenas pela memória disponível.
  • Mais rápido que populares bancos de dados cliente/servidor para a maioria das operações comuns.
  • API simples e fácil de usar.
  • TCL bindings inclusas. Bindings para a maioria das linguagens disponíveis separadamente.
  • Código fonte bem comentado, com mais de 95% coberto por testes.
  • Auto-contido: sem dependências externas.
  • Fontes estão em domínio público. Use para qualquer propósito.

A distribuição SQLite vem com um programa de linha de comando (sqlite (http://sqlitebrasil.codigolivre.org.br/?pagina=doc/sqlite)) que pode ser usado para administrar um banco de dados SQLite e que serve como exemplo de como usar a biblioteca SQLite.

Além do programa em linha de comando, você pode utilizar alguns dos programas de terceiros com interface gráfica, como o SQLiteManager (http://sqlitemanager.sourceforge.net/) (web, no estilo PHPMyAdmin) ou o SQLiteBrowser (http://sqlitebrowser.sourceforge.net/) (QT).

O SQLite está embutido no PHP (http://br.php.net/sqlite) 5 e disponível como extensão no PHP 4. Assim, qualquer aplicação PHP pode utilizar um banco de dados sem necessitar de um SGDB.

Há um driver (http://dba.openoffice.org/drivers/sqlite/index.html) (alpha) disponível para conectar bancos de dados SQLite com o OpenOffice.org. Tornando possível a criação de relatórios, formulários, etc.

Suas características o tornam ideal para desenvolver programas standalone, pequenos e médios sites, etc. Veja quando usar (e não usar) (http://localhost/sqlitewww/?pagina=doc/quando) o SQLite.

Criando banco editar

sqlite clientes (com este comando ele cria o banco clientes e já acessa a console deste banco)

Criando Tabela (A sintaxe não tem diferença dos grandes SGBDs, é puro SQL)

CREATE TABLE cliente (
	cpf	VARCHAR(11) PRIMARY KEY,
	nome VARCHAR(45),
	fone VARCHAR(10)
);

Efetuando consultas editar

Inserindo Registros (também puro SQL)

INSERT INTO cliente (cpf, nome, fone) VALUES ('11111111111', 'João Abreu', '34543456');

SELECT * FROM cliente;

Outros comandos do sqlite. Estando na console apenas digite ".help":

      sqlite> .help
      .databases             List names and files of attached databases
      .dump ?TABLE? ...      Dump the database in a text format
      .echo ON|OFF           Turn command echo on or off
      .exit                  Exit this program
      .explain ON|OFF        Turn output mode suitable for EXPLAIN on or off.
      .header(s) ON|OFF      Turn display of headers on or off
      .help                  Show this message
      .indices TABLE         Show names of all indices on TABLE
      .mode MODE             Set mode to one of "line(s)", "column(s)", 
                             "insert", "list", or "html"
      .mode insert TABLE     Generate SQL insert statements for TABLE
      .nullvalue STRING      Print STRING instead of nothing for NULL data
      .output FILENAME       Send output to FILENAME
      .output stdout         Send output to the screen
      .prompt MAIN CONTINUE  Replace the standard prompts
      .quit                  Exit this program
      .read FILENAME         Execute SQL in FILENAME
      .schema ?TABLE?        Show the CREATE statements
      .separator STRING      Change separator string for "list" mode
      .show                  Show the current values for various settings
      .tables ?PATTERN?      List names of tables matching a pattern
      .timeout MS            Try opening locked tables for MS milliseconds
      .width NUM NUM ...     Set column widths for "column" mode

Escrevendo o Resultado em um Arquivo:

      sqlite> .mode list
      sqlite> .separator |
      sqlite> .output test_file_1.txt
      sqlite> select * from tbl1;
      sqlite> .exit
      $ cat test_file_1.txt
      hello|10
      goodbye|20

Usando SQLite com PHP

<?php

$db=sqlite_open("/home/ribafs/bancos/clientes.db");

$registros = sqlite_query($db, "SELECT * FROM cliente");

while ($i = sqlite_fetch_array($registros)) {
	print $i[0] . "__" . $i[1]. "__" . $i[2]. "<br>";
}

?>

Exemplo de aplicativo simples em PHP acessando SQLite editar