SlideShare a Scribd company logo
An Introduction to
SQLite
The Most Popular Database In theWorld
Jay Kreibich
jay@kreibi.ch
cuDBug
20 June 2013
My history with DBs
• Undergrad at UIUC, the Web 1.0 era
• Full time software developer for 17 years
• 8 years at CITES, including many network
monitoring and management tools
• Almost 7 years atVolition, the last three years
doing data collection and analysis
Relationship with DBs
• School: Databases are for COBOL
programmers
• Early work: Databases are useful
• Later work: Database theory is amazing
My history with SQLite
• First learned about it at WWDC 2004
• Used for a number of work projects
• Tried to stuff Wikipedia dump onto an
ebook reader
So I wrote a book...
So I wrote a book...
• Great White Heron
• No, I didn’t get to choose
•August 2010
• 2.5 years to write & edit
What is SQLite?
The power of a full RDBMS...
...without all the headaches.
What is SQLite?
• Database-in-a-file
• Self-Contained
• Serverless
• Zero-configuration
• Concurrent Access
• ACID compliant
• In the Public Domain
SQLite is an SQL based RDBMS that is...
Database-in-a-File
• Database instance is a common file
• File contains schema, data, blobs, etc.
• Files are cross-platform
• Endian
• Word size (32 bit & 64 bit)
• Encoding (UTF-8, UTF-16be, UTF-16le)
Self-Contained
• The database engine is compiled directly
into the application
• No external libraries or processes
Serverless
Application Client lib ServerServer
Procs
Typical Client/Server
SQLite
Application SQLite
Zero Configuration
• No server means no server admin, no DBA
• Application can self-configure DB
Concurrent Access
• SQLite uses file locking to allow safe
concurrent access from multiple
connections, threads, or processes
• Local processes only
• Network storage typically does not work
ACID Compliant
• SQLite provides full ACID transactions
• Two different transaction methods:
• Rollback Journal
• Write-Ahead Log
• Different levels of locking and access
Public Domain
• Core source code and algorithms are
in the Public Domain
• Rigorously enforced
• “SQLite” name is still under trademark
• Causes more problems than it solves
SQLite Types
• Signed 64-bit Integers
• IEEE 754 64-bit Float Point
• Unicode Text
• BLOBs
• NULL
• (No date/time types; no “numeric” type)
Other Features
• Connection can “attach” multiple DBs
• SQLite uses manifest typing
• Column types are not rigidly enforced
• Very few issues
• DDL is transactional
Other Features
• Supports in-memory DBs (very fast)
• Depends on file access for Auth/Auth
• Right Outer Joins not supported (Left is)
• Triggers are supported
• Custom functions/aggs, but not in-DB
Other Features
• Virtual Tables
Virtual DB
Engine
Query Planner
Optimizer
API
Virtual DB
Engine
Query Planner
Optimizer
API
Application
Code
Good Uses for SQLite
• Database Junior
• Application Cache
• Archives and Data Stores
• Client/Server Stand-in
• Application File Format
• Teaching Tool
• Generic SQL Engine (external data source)
Bad Uses for SQLite
• High Transaction Rates
• Very Large Datasets
• Detailed Access Control
• Client/Server or Multi-Host
• Advanced Replication
SQLite Distribution
• Code for SQLite library
• Code for sqlite3 CLI application
Most popular?
SQLite is, most likely, the
most popular database in the world
by number of database instances.
You use it all the time.
Most popular?
• Firefox, Safari,
Chrome
• iTunes, MacOS X
• Thunderbird, Mail
• McAfee
• Adobe Air
• Dropbox
• Skype
• QuickBooks,
TurboTax
• Python, PHP,
WebSQL
Lots of Desktop Apps:
Most popular?
• 550M iOS devices
• 750M Android devices
• ~500M Symbian (Nokia) devices
• ~100M Blackberry devices
Lots of Mobile Devices:
Most popular?
~10,000,000,000 active database instances
Q & A
Jay Kreibich
jay@kreibi.ch
@jkreibich
www.sqlite.org

More Related Content

PDF
SQLite 3
PDF
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbg
PPTX
Sq lite presentation
PPT
SQLITE Android
PPTX
SQLite database in android
PPTX
SQLite - Overview
PDF
CNIT 126 6: Recognizing C Code Constructs in Assembly
PDF
Mobile development with Flutter
SQLite 3
Practical Malware Analysis: Ch 10: Kernel Debugging with WinDbg
Sq lite presentation
SQLITE Android
SQLite database in android
SQLite - Overview
CNIT 126 6: Recognizing C Code Constructs in Assembly
Mobile development with Flutter

What's hot (20)

PPTX
Open source software development
PPTX
Php Framework
PPTX
C# 101: Intro to Programming with C#
PPTX
Selenium ppt
PPTX
A brief introduction to SQLite PPT
PPTX
6 basic steps of software development process
PDF
PPTX
Design Pattern - Factory Method Pattern
PDF
.NET Core, ASP.NET Core Course, Session 1
PDF
Flutter Tutorial For Beginners | Edureka
PPTX
android sqlite
PPTX
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
PDF
Increment model
PPTX
PPTX
Android Development with Kotlin course
PPTX
Software development life cycle (SDLC)
PPT
Selenium ppt
PPT
The Software Development Process
PPTX
Sqlite
Open source software development
Php Framework
C# 101: Intro to Programming with C#
Selenium ppt
A brief introduction to SQLite PPT
6 basic steps of software development process
Design Pattern - Factory Method Pattern
.NET Core, ASP.NET Core Course, Session 1
Flutter Tutorial For Beginners | Edureka
android sqlite
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Increment model
Android Development with Kotlin course
Software development life cycle (SDLC)
Selenium ppt
The Software Development Process
Sqlite
Ad

Similar to Introduction to SQLite: The Most Popular Database in the World (20)

PPTX
React. Flux. Redux. by Andrey Kolodnitskiy
PPTX
Embracing OSS in the enterprise
PPTX
Suguk Southampton CodePlex - March 2014
PPTX
SQLite.pptx
PPTX
A peek into the future
PPTX
SQLite forensics - Free Lists, unallocated space, carving
PDF
10 Things Learned Releasing Databricks Enterprise Wide
PDF
SharePoint Saturday The Conference DC - How the bcs saved my marriage
PPTX
DevOps in the Microsoft world part 1
PPTX
Optimizing Access with SQL Server
PDF
UI Dev in Big data world using open source
PDF
Participating in the Community - Beyond Code: Presented by Cassandra Targett,...
PPTX
How we build project for Open Source
PPTX
LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...
PDF
JavaScript debugging diagnostic web tools and firefox
PDF
Circuit 2015 Keynote - Carsten Ziegeler
PDF
Drupal 8 deeper dive
PDF
Lessons learned: Choosing your documentation system
PPTX
DevOps+Data: Working with Source Control
PPTX
React. Flux. Redux. by Andrey Kolodnitskiy
Embracing OSS in the enterprise
Suguk Southampton CodePlex - March 2014
SQLite.pptx
A peek into the future
SQLite forensics - Free Lists, unallocated space, carving
10 Things Learned Releasing Databricks Enterprise Wide
SharePoint Saturday The Conference DC - How the bcs saved my marriage
DevOps in the Microsoft world part 1
Optimizing Access with SQL Server
UI Dev in Big data world using open source
Participating in the Community - Beyond Code: Presented by Cassandra Targett,...
How we build project for Open Source
LIBRARIANS AS WEB DEVELOPERS: GAUGING THE BEST TECHNOLOGIES IN ACCESSING INFO...
JavaScript debugging diagnostic web tools and firefox
Circuit 2015 Keynote - Carsten Ziegeler
Drupal 8 deeper dive
Lessons learned: Choosing your documentation system
DevOps+Data: Working with Source Control
Ad

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Big Data Technologies - Introduction.pptx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Spectroscopy.pptx food analysis technology
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Empathic Computing: Creating Shared Understanding
PDF
cuic standard and advanced reporting.pdf
PPT
Teaching material agriculture food technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Machine learning based COVID-19 study performance prediction
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Understanding_Digital_Forensics_Presentation.pptx
Spectral efficient network and resource selection model in 5G networks
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Big Data Technologies - Introduction.pptx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Spectroscopy.pptx food analysis technology
“AI and Expert System Decision Support & Business Intelligence Systems”
Empathic Computing: Creating Shared Understanding
cuic standard and advanced reporting.pdf
Teaching material agriculture food technology
Unlocking AI with Model Context Protocol (MCP)
Machine learning based COVID-19 study performance prediction
The AUB Centre for AI in Media Proposal.docx
Encapsulation_ Review paper, used for researhc scholars
Chapter 3 Spatial Domain Image Processing.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Reach Out and Touch Someone: Haptics and Empathic Computing
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Introduction to SQLite: The Most Popular Database in the World

  • 1. An Introduction to SQLite The Most Popular Database In theWorld Jay Kreibich jay@kreibi.ch cuDBug 20 June 2013
  • 2. My history with DBs • Undergrad at UIUC, the Web 1.0 era • Full time software developer for 17 years • 8 years at CITES, including many network monitoring and management tools • Almost 7 years atVolition, the last three years doing data collection and analysis
  • 3. Relationship with DBs • School: Databases are for COBOL programmers • Early work: Databases are useful • Later work: Database theory is amazing
  • 4. My history with SQLite • First learned about it at WWDC 2004 • Used for a number of work projects • Tried to stuff Wikipedia dump onto an ebook reader
  • 5. So I wrote a book...
  • 6. So I wrote a book... • Great White Heron • No, I didn’t get to choose •August 2010 • 2.5 years to write & edit
  • 7. What is SQLite? The power of a full RDBMS... ...without all the headaches.
  • 8. What is SQLite? • Database-in-a-file • Self-Contained • Serverless • Zero-configuration • Concurrent Access • ACID compliant • In the Public Domain SQLite is an SQL based RDBMS that is...
  • 9. Database-in-a-File • Database instance is a common file • File contains schema, data, blobs, etc. • Files are cross-platform • Endian • Word size (32 bit & 64 bit) • Encoding (UTF-8, UTF-16be, UTF-16le)
  • 10. Self-Contained • The database engine is compiled directly into the application • No external libraries or processes
  • 11. Serverless Application Client lib ServerServer Procs Typical Client/Server SQLite Application SQLite
  • 12. Zero Configuration • No server means no server admin, no DBA • Application can self-configure DB
  • 13. Concurrent Access • SQLite uses file locking to allow safe concurrent access from multiple connections, threads, or processes • Local processes only • Network storage typically does not work
  • 14. ACID Compliant • SQLite provides full ACID transactions • Two different transaction methods: • Rollback Journal • Write-Ahead Log • Different levels of locking and access
  • 15. Public Domain • Core source code and algorithms are in the Public Domain • Rigorously enforced • “SQLite” name is still under trademark • Causes more problems than it solves
  • 16. SQLite Types • Signed 64-bit Integers • IEEE 754 64-bit Float Point • Unicode Text • BLOBs • NULL • (No date/time types; no “numeric” type)
  • 17. Other Features • Connection can “attach” multiple DBs • SQLite uses manifest typing • Column types are not rigidly enforced • Very few issues • DDL is transactional
  • 18. Other Features • Supports in-memory DBs (very fast) • Depends on file access for Auth/Auth • Right Outer Joins not supported (Left is) • Triggers are supported • Custom functions/aggs, but not in-DB
  • 19. Other Features • Virtual Tables Virtual DB Engine Query Planner Optimizer API Virtual DB Engine Query Planner Optimizer API Application Code
  • 20. Good Uses for SQLite • Database Junior • Application Cache • Archives and Data Stores • Client/Server Stand-in • Application File Format • Teaching Tool • Generic SQL Engine (external data source)
  • 21. Bad Uses for SQLite • High Transaction Rates • Very Large Datasets • Detailed Access Control • Client/Server or Multi-Host • Advanced Replication
  • 22. SQLite Distribution • Code for SQLite library • Code for sqlite3 CLI application
  • 23. Most popular? SQLite is, most likely, the most popular database in the world by number of database instances. You use it all the time.
  • 24. Most popular? • Firefox, Safari, Chrome • iTunes, MacOS X • Thunderbird, Mail • McAfee • Adobe Air • Dropbox • Skype • QuickBooks, TurboTax • Python, PHP, WebSQL Lots of Desktop Apps:
  • 25. Most popular? • 550M iOS devices • 750M Android devices • ~500M Symbian (Nokia) devices • ~100M Blackberry devices Lots of Mobile Devices:
  • 27. Q & A Jay Kreibich jay@kreibi.ch @jkreibich www.sqlite.org