Aula06 Bok Sqlite 160529161649

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 37

SQLite

Anderson Fabiano Dums


Introdução
• Cada vez que iniciamos um no projeto de
desenvolvimento de software é necessário optar
pela melhor ferramenta para manipulação dos
dados.

• As primeiras opções para esta persistência de


dados ser suportada por um banco de dados foram:
• Oracle, Informix, ProstgreSQL, MySQL e Fyrebird.

• Com a necessidade de agilidade, simplicidade e de


fácil configuração, surgiu o SQLite
Definição
• SQLite é uma base de dados relacional de código
aberto:
• Não é uma biblioteca cliente utilizada para se conectar a
um servidor de banco de dados.
• É uma biblioteca que é o próprio servidor.
• Escreve e lê diretamente do arquivo do Banco de
Dados.
• É compacta.
História
• Em janeiro de 2000 D. Richard Hipp trabalhava com
sua equipe na Força Naval dos Estados Unidos, em
um projeto de software, para misseis teleguiados.
Neste momento estava-se usando banco de dados
Informix, o que gerava alguns problemas na
reinicialização do sistema.
História
• Para solucionar o problema com o Informix a
equipe optou por migrar para o banco de dados
PostgreSQL, mas o gerenciamento deste banco de
dados ficou mais complexo que o esperado.
• Então, surgiu a ideia de se escrever um motor de
banco de dados SQL que fosse simples para ler e
escrever dados no disco rígido.
• 5 meses mais tarde começou-se a escrever a
primeira versão da biblioteca de banco de dados
SQLite.
Patrocinadores
Principais Usuários
• Adobe:
• Utilizado no Photoshop e no AdobeReader

• Apple Mac OS X:
• Apple Mail e Safari WebBrowse.

• Mozilla:
• Armazenamento de Metadados do Firefox Web Browser.
Principais Usuários
• McAfee:
• Programas de anti-vírus

• Philips:
• Metadados de reprodutores MP3.

• Google:
• Utilizado no Google Desktop e Google Gears.
• Utilizado na plataforma móvel Android.
Características
• Simplicidade

• Portável: Totalmente escrita em ANSI C

• Confiável: Biblioteca OpenSource 100% testada.

• Pequeno: Tamanho da biblioteca é inferior a 500Kb.


Características
• Transações atômicas, consistentes, isoladas e
duráveis (ACID).

• Zero-Configuração: Não necessita de configuração


ou administração.

• Implementa a maioria das funções SQL92.

• Um banco completo armazenado em um arquivo


de disco multi-plataforma.
BD Relacional Padrão
BD Relacional SQLite
Onde usar
• Sites com menos de 100.000 requisições por dia.

• Dispositivos e sistemas embarcados.

• Aplicações Desktop.

• Aprendizado de BDs.
Desvantagens
• Não é recomendada a utilização em sistemas que
possuem grande concorrência de leitura/escrita de
dados.

• Não possui controle de acesso.

• Não suporta base de dados maiores de 2TB.


Desvantagens
• Não possui suporte cliente/servidor nativo.

• Não possui suporte interno de replicação e


redundância.

• Não possui chave estrangeira.

• Limitação em uso de clausulas WHERE aninhadas.


Recomendação de Uso

Usado e recomendado onde é


necessário simplicidade de
administração, implementação e
manutenção.
Tipos de Dados
• NULL – Como em qualquer BD
• INTEGER – Inteiro com sinal, armazenado em até 8
bytes (de -9.223.372.036.854.775.808 até máximo
é 9.223.372.036.854.775.807).
• REAL – Valor de ponto flutuante, armazenado em 8
bytes.
• TEXT – String armazenada em UTF-8, UTF-16BE ou
UTF-16LE
• BLOB – Armazena um BLOB (objeto binário grande)
Tipos de Dados
• Booelan: Não existe, pode ser substituído por um
INTEGER armazenando 0 (falso) ou 1 (verdadeiro).

• Data e Hora: Não existe, pode ser armazenado


como:
• TEXT (YYYY-MM-DD HH:MM:SS.SSS).
• REAL (Dias Julianos, dia 0 é o meio dia de 24/11/4714 AC
do calendário Gregoriano).
• INTEGER (Como a hora do UNIX, a origem é 01/01/1970,
contando os segundos a partir desta data).
• (continua...)
Tipos de Dados
• Data e Hora: a partir do seu armazenamento são
acessados por funções:
• date(timestring, modificador, modificador, ...), retorna a
data no formato YYYY-MM-DD.
• time(timestring, modificador, modificador, ...), retorna a
hora no formato HH:MM:SS.
• datetime(timestring, modificador, modificador, ...), retorna
data e hora no formato YYYY-MM-DD HH:MM:SS.
• julianday(timestring, modificador, modificador, ...), retorna
o dia em inteiro do calendário juliano.
• strftime(format, timestring, modificador, modificador, ...),
retorna a data de acordo com o formato do primeiro
argumento.
Tipos de Dados
• Data e Hora
• Exemplos

• Ver mais em: http://www.sqlite.org/lang_datefunc.html


Recursos SQL Omitidos
• RIGHT e FULL OUTER JOIN.
• ALTER TABLE:
• DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT.
• TRIGGER FOR EACH STATMENT.
• VIEW:
• DELETE INSERT e UPDATE.
• GRANT e REVOKE:
• Somente permissões baseados no SO.
• FOREIGN KEY.
Instalação no Windows
• Acessar o site: www.sqlite.org.
• Selecionar a opção “Download”.
Instalação no Windows
• Localizar o binário para Windows.
Instalação no Windows
• Extraia o arquivo zip na raiz do SO (C:) em uma
subpasta chamado sqlite3.
Instalação no Windows
• Configurando as Variáveis de Ambiente:
Instalação no Windows
• Para testar, vamos abrir o prompt de comando
(CMD) e digitar sqlite3, se o resultado for
semelhando ao abaixo a instalação está concluída
com sucesso.
Instalação no Windows

Com isso temos nosso SQLite pronto


para uso, sem necessidade de
nenhuma configuração.
Criando uma Base no SQLite
• Vamos criar um diretório “BancoSQLite” na raiz do
nosso SO, neste diretório iremos criar nosso
primeiro BD.
Criando uma Base no SQLite
• Acesse o CMD (Prompt de Comando):
• Digite sqlite3 e pressione [ENTER], com isto estaremos
dentro do “SQLite” podendo criar bases de dados e
manipular seus registros.

• Para sair do ambiente do SQLite, o comando é “.exit”


[ENTER] ou “.quit” [ENTER]
Comando “.open”.
• Este comando serve para criar ou abrir uma base de
dados, caso esta já existe com o nome informado.
• Sintaxe: sqlite> .open C:/BancoSQLite/nomedobanco.db
[ENTER].

• Com isto, já é criado o arquivo no diretório.


CREATE
• A criação de uma tabela no SQLite segue os
padrões de qualquer Banco de Dados que utilize
SQL, apenas respeitando as restrições de alguns
comandos que já foram discutidas, vamos criar a
tabela “contato”, dentro da nossa agenda.db.
CREATE
• Observações:
• Com exceção dos comandos que iniciam em “.” (como
.open e .exit), todos os demais comandos terminam
apenas quando um “;” é encontrado, por isso podemos
digitar nosso comando de criação de tabela em mais de
uma linha.
• O primeiro campo da nossa tabela é um integer e
primary key, tendo esta combinação ao ser inserido um
dado nesta tabela e ocultado o valor para este campo o
SQLite irá atribuir a ele um valor auto-incrementável.
INSERT
• Vamos inserir um registro da tabela, usaremos o
comando INSERT.

• Note que no primeiro registro “ocultamos” um


valor para o ID, no segundo damos um valor pra o
ID e no terceiro ocultamos novamente, no
comando SELECT vamos entender melhor como
este campo será preenchido no banco de dados.
SELECT
• Vamos listar todos os contatos da base de dados,
utilizaremos o comando SELECT:

• Vamos ver o que aconteceu com o campo ID, como


mencionamos ele é primary key e auto-incremento, no
primeiro registro ocultamos ele no INSERT ele salvou
este campo com o valor 1, no segundo INSERT
atribuímos o valor 10 a este campo e assim o foi salvo,
no terceiro INSERT ocultamos novamente ele voltou a
ser auto-incremento, salvando o valor 11 neste campo.
UPDATE e DELETE
• UPDATE

• DELETE
Agora já temos conhecimento de
manipulação básica de um banco de
dados SQLite.
Dúvidas?

Você também pode gostar