SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
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?

Mais conteúdo relacionado

Mais procurados

Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Aula 04 barramentos de expansão
Aula 04   barramentos de expansãoAula 04   barramentos de expansão
Aula 04 barramentos de expansãoMarcos Basilio
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-ServidorIsrael Messias
 
Aula 3: Introdução a sistema de arquivos
Aula 3: Introdução a sistema de arquivosAula 3: Introdução a sistema de arquivos
Aula 3: Introdução a sistema de arquivoscamila_seixas
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosDaniel Arndt Alves
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasVictor Hazin da Rocha
 
S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008teacherpereira
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
Git e Github para Iniciantes
Git e Github para IniciantesGit e Github para Iniciantes
Git e Github para IniciantesLoiane Groner
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 

Mais procurados (20)

Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Aula 04 barramentos de expansão
Aula 04   barramentos de expansãoAula 04   barramentos de expansão
Aula 04 barramentos de expansão
 
GIT INTRODUCTION
GIT INTRODUCTIONGIT INTRODUCTION
GIT INTRODUCTION
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Projeto de redes
Projeto de redesProjeto de redes
Projeto de redes
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Aula 3: Introdução a sistema de arquivos
Aula 3: Introdução a sistema de arquivosAula 3: Introdução a sistema de arquivos
Aula 3: Introdução a sistema de arquivos
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos Distribuidos
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a Falhas
 
S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Uml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UMLUml - Exemplos de Modelagem em UML
Uml - Exemplos de Modelagem em UML
 
Aula10 sql-ddl
Aula10 sql-ddlAula10 sql-ddl
Aula10 sql-ddl
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Git e Github para Iniciantes
Git e Github para IniciantesGit e Github para Iniciantes
Git e Github para Iniciantes
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 

Destaque

android sqlite
android sqliteandroid sqlite
android sqliteDeepa Rani
 
SQLite: Light, Open Source Relational Database Management System
SQLite: Light, Open Source Relational Database Management SystemSQLite: Light, Open Source Relational Database Management System
SQLite: Light, Open Source Relational Database Management SystemTanner Jessel
 
Persitance Data with sqlite
Persitance Data with sqlitePersitance Data with sqlite
Persitance Data with sqliteArif Huda
 
SquiDB: a SQLite layer for Android - Jonathan Koren, Yahoo!
SquiDB: a SQLite layer for Android - Jonathan Koren, Yahoo!SquiDB: a SQLite layer for Android - Jonathan Koren, Yahoo!
SquiDB: a SQLite layer for Android - Jonathan Koren, Yahoo!DroidConTLV
 
Better Data Persistence on Android
Better Data Persistence on AndroidBetter Data Persistence on Android
Better Data Persistence on AndroidEric Maxwell
 
(140625) #fitalk sq lite 소개와 구조 분석
(140625) #fitalk   sq lite 소개와 구조 분석(140625) #fitalk   sq lite 소개와 구조 분석
(140625) #fitalk sq lite 소개와 구조 분석INSIGHT FORENSIC
 
Advance sqlite3
Advance sqlite3Advance sqlite3
Advance sqlite3Raghu nath
 
SQLite3
SQLite3SQLite3
SQLite3cltru
 
Python sqlite3 - flask
Python   sqlite3 - flaskPython   sqlite3 - flask
Python sqlite3 - flaskEueung Mulyana
 
SQLite Techniques
SQLite TechniquesSQLite Techniques
SQLite Techniquesjoaopmaia
 
Sqlite3 command reference
Sqlite3 command referenceSqlite3 command reference
Sqlite3 command referenceRaghu nath
 
Effective SQLite For Android
Effective SQLite For AndroidEffective SQLite For Android
Effective SQLite For AndroidShinobu Okano
 
Persistence in Android
Persistence in AndroidPersistence in Android
Persistence in Androidma-polimi
 

Destaque (20)

ANDROID USING SQLITE DATABASE ADMINISTRATORS ~HMFTJ
ANDROID USING SQLITE DATABASE ADMINISTRATORS ~HMFTJANDROID USING SQLITE DATABASE ADMINISTRATORS ~HMFTJ
ANDROID USING SQLITE DATABASE ADMINISTRATORS ~HMFTJ
 
android sqlite
android sqliteandroid sqlite
android sqlite
 
SQLite: Light, Open Source Relational Database Management System
SQLite: Light, Open Source Relational Database Management SystemSQLite: Light, Open Source Relational Database Management System
SQLite: Light, Open Source Relational Database Management System
 
SQLite - Overview
SQLite - OverviewSQLite - Overview
SQLite - Overview
 
Persitance Data with sqlite
Persitance Data with sqlitePersitance Data with sqlite
Persitance Data with sqlite
 
SquiDB: a SQLite layer for Android - Jonathan Koren, Yahoo!
SquiDB: a SQLite layer for Android - Jonathan Koren, Yahoo!SquiDB: a SQLite layer for Android - Jonathan Koren, Yahoo!
SquiDB: a SQLite layer for Android - Jonathan Koren, Yahoo!
 
Better Data Persistence on Android
Better Data Persistence on AndroidBetter Data Persistence on Android
Better Data Persistence on Android
 
(140625) #fitalk sq lite 소개와 구조 분석
(140625) #fitalk   sq lite 소개와 구조 분석(140625) #fitalk   sq lite 소개와 구조 분석
(140625) #fitalk sq lite 소개와 구조 분석
 
Advance sqlite3
Advance sqlite3Advance sqlite3
Advance sqlite3
 
SQLite3
SQLite3SQLite3
SQLite3
 
Python sqlite3 - flask
Python   sqlite3 - flaskPython   sqlite3 - flask
Python sqlite3 - flask
 
SQLite Techniques
SQLite TechniquesSQLite Techniques
SQLite Techniques
 
Sqlite3 command reference
Sqlite3 command referenceSqlite3 command reference
Sqlite3 command reference
 
Sqlite
SqliteSqlite
Sqlite
 
Python sqlite3
Python sqlite3Python sqlite3
Python sqlite3
 
Effective SQLite For Android
Effective SQLite For AndroidEffective SQLite For Android
Effective SQLite For Android
 
Persistence in Android
Persistence in AndroidPersistence in Android
Persistence in Android
 
SQLite
SQLiteSQLite
SQLite
 
Sqlite
SqliteSqlite
Sqlite
 
Fun with Python
Fun with PythonFun with Python
Fun with Python
 

Semelhante a Introdução ao SQLite

364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdfQuitriaSilva550
 
Exemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dadosExemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dadosLuis Borges Gouveia
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sqlrobinhoct
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?Pedro Pisa
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordtchandy
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01Gilson Figueredo
 

Semelhante a Introdução ao SQLite (20)

364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Otimizando a performance com in-memory no SQL 2016
Otimizando a performance com in-memory no SQL 2016Otimizando a performance com in-memory no SQL 2016
Otimizando a performance com in-memory no SQL 2016
 
Introdução ao BD Postgre
Introdução ao BD PostgreIntrodução ao BD Postgre
Introdução ao BD Postgre
 
C # banco de dados
C # banco de dadosC # banco de dados
C # banco de dados
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Exemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dadosExemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dados
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sql
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?AWS Meetup Rio - Qual banco usar e quando?
AWS Meetup Rio - Qual banco usar e quando?
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Projeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecordProjeto Octopus - Database Sharding para ActiveRecord
Projeto Octopus - Database Sharding para ActiveRecord
 
SQL.ppt
SQL.pptSQL.ppt
SQL.ppt
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
07 sql - parte 01
07   sql - parte 0107   sql - parte 01
07 sql - parte 01
 
TechEd_OFC302
TechEd_OFC302TechEd_OFC302
TechEd_OFC302
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
 

Introdução ao SQLite

  • 2. 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
  • 3. 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.
  • 4. 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.
  • 5. 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.
  • 7. 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.
  • 8. 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.
  • 9. Características • Simplicidade • Portável: Totalmente escrita em ANSI C • Confiável: Biblioteca OpenSource 100% testada. • Pequeno: Tamanho da biblioteca é inferior a 500Kb.
  • 10. 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.
  • 13. Onde usar • Sites com menos de 100.000 requisições por dia. • Dispositivos e sistemas embarcados. • Aplicações Desktop. • Aprendizado de BDs.
  • 14. 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.
  • 15. 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.
  • 16. Recomendação de Uso Usado e recomendado onde é necessário simplicidade de administração, implementação e manutenção.
  • 17. 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)
  • 18. 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...)
  • 19. 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.
  • 20. Tipos de Dados • Data e Hora • Exemplos • Ver mais em: http://www.sqlite.org/lang_datefunc.html
  • 21. 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.
  • 22. Instalação no Windows • Acessar o site: www.sqlite.org. • Selecionar a opção “Download”.
  • 23. Instalação no Windows • Localizar o binário para Windows.
  • 24. Instalação no Windows • Extraia o arquivo zip na raiz do SO (C:) em uma subpasta chamado sqlite3.
  • 25. Instalação no Windows • Configurando as Variáveis de Ambiente:
  • 26. 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.
  • 27. Instalação no Windows Com isso temos nosso SQLite pronto para uso, sem necessidade de nenhuma configuração.
  • 28. Criando uma Base no SQLite • Vamos criar um diretório “BancoSQLite” na raiz do nosso SO, neste diretório iremos criar nosso primeiro BD.
  • 29. 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]
  • 30. 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.
  • 31. 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.
  • 32. 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.
  • 33. 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.
  • 34. 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.
  • 35. UPDATE e DELETE • UPDATE • DELETE
  • 36. Agora já temos conhecimento de manipulação básica de um banco de dados SQLite.