SlideShare a Scribd company logo
1 of 37
Download to read 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?

More Related Content

What's hot

Banco de Dados II Aula 06 - Modelagem de Dados (Modelo Físico)
Banco de Dados II Aula 06 - Modelagem de Dados (Modelo Físico)Banco de Dados II Aula 06 - Modelagem de Dados (Modelo Físico)
Banco de Dados II Aula 06 - Modelagem de Dados (Modelo Físico)Leinylson Fontinele
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesAndrés Londoño
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLDaniel Brandão
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchDaniel Brandão
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - IntroduçãoJoao Johanes
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoLeinylson Fontinele
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Aula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosAula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosHenrique Nunweiler
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Leinylson Fontinele
 
Banco de Dados Conceitos
Banco de Dados ConceitosBanco de Dados Conceitos
Banco de Dados ConceitosCleber Ramos
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Leinylson Fontinele
 
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Leinylson Fontinele
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoVinícius de Paula
 

What's hot (20)

Banco de Dados II Aula 06 - Modelagem de Dados (Modelo Físico)
Banco de Dados II Aula 06 - Modelagem de Dados (Modelo Físico)Banco de Dados II Aula 06 - Modelagem de Dados (Modelo Físico)
Banco de Dados II Aula 06 - Modelagem de Dados (Modelo Físico)
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL Workbench
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Banco De Dados
Banco De DadosBanco De Dados
Banco De Dados
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Aula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosAula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de Dados
 
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
Banco de Dados II Aula 04 - MODELAGEM DE DADOS (Generalização e Especialização)
 
Banco de Dados Conceitos
Banco de Dados ConceitosBanco de Dados Conceitos
Banco de Dados Conceitos
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 

Similar to 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
 
6338 111121071604-phpapp01
6338 111121071604-phpapp016338 111121071604-phpapp01
6338 111121071604-phpapp01
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 

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.