37
SQLite Anderson Fabiano Dums

Aula 06 - TEP - Introdução SQLite

Embed Size (px)

Citation preview

Page 1: Aula 06 - TEP - Introdução SQLite

SQLiteAnderson Fabiano Dums

Page 2: Aula 06 - TEP - Introdução SQLite

Introdução

• Cada vez que iniciamos um no projeto dedesenvolvimento de software é necessário optarpela melhor ferramenta para manipulação dosdados.

• As primeiras opções para esta persistência dedados ser suportada por um banco de dados foram:

• Oracle, Informix, ProstgreSQL, MySQL e Fyrebird.

• Com a necessidade de agilidade, simplicidade e defácil configuração, surgiu o SQLite

Page 3: Aula 06 - TEP - Introdução SQLite

Definição

• SQLite é uma base de dados relacional de códigoaberto:

• Não é uma biblioteca cliente utilizada para se conectar aum servidor de banco de dados.

• É uma biblioteca que é o próprio servidor.• Escreve e lê diretamente do arquivo do Banco de

Dados.• É compacta.

Page 4: Aula 06 - TEP - Introdução SQLite

História

• Em janeiro de 2000 D. Richard Hipp trabalhava comsua equipe na Força Naval dos Estados Unidos, emum projeto de software, para misseis teleguiados.Neste momento estava-se usando banco de dadosInformix, o que gerava alguns problemas nareinicialização do sistema.

Page 5: Aula 06 - TEP - Introdução SQLite

História

• Para solucionar o problema com o Informix aequipe optou por migrar para o banco de dadosPostgreSQL, mas o gerenciamento deste banco dedados ficou mais complexo que o esperado.

• Então, surgiu a ideia de se escrever um motor debanco de dados SQL que fosse simples para ler eescrever dados no disco rígido.

• 5 meses mais tarde começou-se a escrever aprimeira versão da biblioteca de banco de dadosSQLite.

Page 6: Aula 06 - TEP - Introdução SQLite

Patrocinadores

Page 7: Aula 06 - TEP - Introdução SQLite

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.

Page 8: Aula 06 - TEP - Introdução SQLite

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.

Page 9: Aula 06 - TEP - Introdução SQLite

Características

• Simplicidade

• Portável: Totalmente escrita em ANSI C

• Confiável: Biblioteca OpenSource 100% testada.

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

Page 10: Aula 06 - TEP - Introdução SQLite

Características

• Transações atômicas, consistentes, isoladas eduráveis (ACID).

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

• Implementa a maioria das funções SQL92.

• Um banco completo armazenado em um arquivode disco multi-plataforma.

Page 11: Aula 06 - TEP - Introdução SQLite

BD Relacional Padrão

Page 12: Aula 06 - TEP - Introdução SQLite

BD Relacional SQLite

Page 13: Aula 06 - TEP - Introdução SQLite

Onde usar

• Sites com menos de 100.000 requisições por dia.

• Dispositivos e sistemas embarcados.

• Aplicações Desktop.

• Aprendizado de BDs.

Page 14: Aula 06 - TEP - Introdução SQLite

Desvantagens

• Não é recomendada a utilização em sistemas quepossuem grande concorrência de leitura/escrita dedados.

• Não possui controle de acesso.

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

Page 15: Aula 06 - TEP - Introdução SQLite

Desvantagens

• Não possui suporte cliente/servidor nativo.

• Não possui suporte interno de replicação eredundância.

• Não possui chave estrangeira.

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

Page 16: Aula 06 - TEP - Introdução SQLite

Recomendação de Uso

Usado e recomendado onde é necessário simplicidade de

administração, implementação e manutenção.

Page 17: Aula 06 - TEP - Introdução SQLite

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)

Page 18: Aula 06 - TEP - Introdução SQLite

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...)

Page 19: Aula 06 - TEP - Introdução SQLite

Tipos de Dados

• Data e Hora: a partir do seu armazenamento sãoacessados por funções:

• date(timestring, modificador, modificador, ...), retorna adata no formato YYYY-MM-DD.

• time(timestring, modificador, modificador, ...), retorna ahora no formato HH:MM:SS.

• datetime(timestring, modificador, modificador, ...), retornadata e hora no formato YYYY-MM-DD HH:MM:SS.

• julianday(timestring, modificador, modificador, ...), retornao dia em inteiro do calendário juliano.

• strftime(format, timestring, modificador, modificador, ...),retorna a data de acordo com o formato do primeiroargumento.

Page 20: Aula 06 - TEP - Introdução SQLite

Tipos de Dados

• Data e Hora• Exemplos

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

Page 21: Aula 06 - TEP - Introdução SQLite

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.

Page 22: Aula 06 - TEP - Introdução SQLite

Instalação no Windows

• Acessar o site: www.sqlite.org.• Selecionar a opção “Download”.

Page 23: Aula 06 - TEP - Introdução SQLite

Instalação no Windows

• Localizar o binário para Windows.

Page 24: Aula 06 - TEP - Introdução SQLite

Instalação no Windows

• Extraia o arquivo zip na raiz do SO (C:) em umasubpasta chamado sqlite3.

Page 25: Aula 06 - TEP - Introdução SQLite

Instalação no Windows

• Configurando as Variáveis de Ambiente:

Page 26: Aula 06 - TEP - Introdução SQLite

Instalação no Windows

• Para testar, vamos abrir o prompt de comando(CMD) e digitar sqlite3, se o resultado forsemelhando ao abaixo a instalação está concluídacom sucesso.

Page 27: Aula 06 - TEP - Introdução SQLite

Instalação no Windows

Com isso temos nosso SQLite pronto para uso, sem necessidade de

nenhuma configuração.

Page 28: Aula 06 - TEP - Introdução SQLite

Criando uma Base no SQLite

• Vamos criar um diretório “BancoSQLite” na raiz donosso SO, neste diretório iremos criar nossoprimeiro BD.

Page 29: Aula 06 - TEP - Introdução SQLite

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 emanipular seus registros.

• Para sair do ambiente do SQLite, o comando é “.exit”[ENTER] ou “.quit” [ENTER]

Page 30: Aula 06 - TEP - Introdução SQLite

Comando “.open”.

• Este comando serve para criar ou abrir uma base dedados, 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.

Page 31: Aula 06 - TEP - Introdução SQLite

CREATE

• A criação de uma tabela no SQLite segue ospadrões de qualquer Banco de Dados que utilizeSQL, apenas respeitando as restrições de algunscomandos que já foram discutidas, vamos criar atabela “contato”, dentro da nossa agenda.db.

Page 32: Aula 06 - TEP - Introdução SQLite

CREATE

• Observações:• Com exceção dos comandos que iniciam em “.” (como

.open e .exit), todos os demais comandos terminamapenas quando um “;” é encontrado, por isso podemosdigitar nosso comando de criação de tabela em mais deuma linha.

• O primeiro campo da nossa tabela é um integer eprimary key, tendo esta combinação ao ser inserido umdado nesta tabela e ocultado o valor para este campo oSQLite irá atribuir a ele um valor auto-incrementável.

Page 33: Aula 06 - TEP - Introdução SQLite

INSERT

• Vamos inserir um registro da tabela, usaremos ocomando INSERT.

• Note que no primeiro registro “ocultamos” umvalor para o ID, no segundo damos um valor pra oID e no terceiro ocultamos novamente, nocomando SELECT vamos entender melhor comoeste campo será preenchido no banco de dados.

Page 34: Aula 06 - TEP - Introdução SQLite

SELECT

• Vamos listar todos os contatos da base de dados,utilizaremos o comando SELECT:

• Vamos ver o que aconteceu com o campo ID, comomencionamos ele é primary key e auto-incremento, noprimeiro registro ocultamos ele no INSERT ele salvoueste campo com o valor 1, no segundo INSERTatribuímos o valor 10 a este campo e assim o foi salvo,no terceiro INSERT ocultamos novamente ele voltou aser auto-incremento, salvando o valor 11 neste campo.

Page 35: Aula 06 - TEP - Introdução SQLite

UPDATE e DELETE

• UPDATE

• DELETE

Page 36: Aula 06 - TEP - Introdução SQLite

Agora já temos conhecimento de manipulação básica de um banco de

dados SQLite.

Page 37: Aula 06 - TEP - Introdução SQLite

Dúvidas?