Aplicativos em PHP/Administração dos SGBDs/SQLite
SQLite na Wikipedia
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
- 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
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
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>"; } ?>