What is SQLite?
SQLite is an open-source, embedded, relational database management system, designed circa 2000. It is a lightweight database, with zero configuration, no requirements of a server or installation. Despite its simplicity, it is laden with popular features of database management systems.
- SQLite is very lightweight (it is less than 500Kb size) compare to other database management systems like SQL Server, or Oracle.
- SQLite is not a client-server database management system. It is an in-memory library that you can call and use directly. No installation and no configuration required.
- A typical SQLite database is contained on a single file on the computer disk storage with all the database objects (tables, views, triggers, etc.) included in that file. No dedicated server required.
Despite its simplicity, it is laden with popular features of database management systems.
Here is what we cover in the Course
|Tutorial||How to Download & Install SQLite on Windows|
|Tutorial||How to Create, Open, Backup Database in SQLite|
|Tutorial||SQLite Create, Alter, Drop Table with Examples|
|Tutorial||SQLite Primary Key & Foreign Key with Example|
|Tutorial||SQLite Data Types with Example|
|Tutorial||SQLite Query: Select, Where, LIMIT, OFFSET, Count, Group By|
|Tutorial||SQLite Join Tables: Inner, Natural, Left Outer, Cross (Examples)|
|Tutorial||SQLite INSERT, UPDATE, DELETE Query with Example|
|Tutorial||SQLite Index, Trigger & View with Example|
|Tutorial||SQLite String Functions: REPLACE, SUBSTR, TRIM, ROUND (Examples)|
|Tutorial||Top 20 SQLite Interview Questions & Answers|
When to use SQLite?
If you are developing embedded software for devices like televisions, Mobile phones, cameras, home electronic devices, etc., then SQLite is a good choice.
SQLite can handle low to medium traffic HTTP requests and manage complex session information for a website
When you need to store an archive of files, SQLite can produce smaller size archives and with lesser metadata included than regular ZIP archives.
If you want to do processing on some data within an application, you can use SQLite as a temporary dataset. You can load the data into an SQLite in-memory database and execute the desired queries. You can extract the data in a format you want to display in your application.
It gives you an easy and efficient way to process using in-memory variables. For example, you are developing a program where you have to perform calculations on some records. You can create an SQLite database and insert the records there, and with only one query, you can select the records and perform calculations.
When you need a database system for learning and training purposes, SQLite is a good fit. As we explained earlier, no installation or configuration is required. Copy the SQLite libraries in your computer, and you are ready to learn.
Why use SQLite?
Following guide will help you determine whether you should choose SQLite for your next project
It is free. SQLite is an open source, no commercial license required to work with it.
SQLite is cross-platform database management system. It can be used on a broad range of platforms like Windows, Mac OS, Linux, and Unix. It can also be used on a lot of embedded operating systems like Symbian, and Windows CE.
SQLite offers an efficient way of storing data, the length of the columns is variable and is not fixed. So SQLite will allocate only space a field needs. For example, if you have a varchar(200) column, and you put a 10 characters' length value on it, then SQLite will allocate only 20 characters' space for that value and not the whole 200 space.
A broad range of SQLite APIs – SQLite provides APIs for a broad range of programming language, for example.Net languages (Visual Basic, C#), PHP, Java, Objective C, Python and a lot of other programming languages.
- SQLite is very flexible.
- SQLite variables are dynamically typed, meaning that the type of the variable is not determined until it is assigned a value, and not defined at the time of declaration.
- INSERT ON CONFLICT REPLACE statement. With this statement, you can tell SQLite to try to do an insert on a table and if it found rows with the same primary keys, then update them with the values from the inserted values.
- With SQLite, you can work at multiple databases on the same session on the same time. Just attach those databases, and then you can access all the databases' objects (tables, views, etc..) at the same time.
SQLite limitations and Unsupported Features
The following are the list of unsupported features and limitations in SQLite:
SQLite supports neither RIGHT OUTER JOIN nor FULL OUTER JOIN. It supports only LEFT OUTER JOIN.
- Limitations in ALTER table statement: with ALTER TABLE statement in SQLite you can only add a column or rename a table (as we will see in the following tutorials). However, you can't do the following:
- ALTER column.
- DROP a column.
- ADD a constraint.
VIEWs are read-only – you can't write INSERT, DELETE, or UPDATE statements into the view. However, you can create a trigger on a view and do the INSERT, DELETE, or UPDATE statements into it.
GRANT and REVOKE commands are not implemented in SQLite. There are only normal file access permissions implemented in SQLite. This is because SQLite reads and writes to the disk files, unlike other Database management systems.
TRIGGERS – As we will see in the incoming tutorials, SQLite only supports FOR EACH ROW triggers, and it doesn't support FOR EACH STATEMENT triggers.