Giới thiệu SQLite - SQLite là gì?
Trong bài học này sẽ giúp bạn hiểu SQLite
là gì, nó khác với SQL
như thế nào, tại sao nó lại cần thiết và cách thức xử lý Cơ sở dữ liệu ứng dụng như thế nào.
1. SQLite là gì?
SQLite
là một thư viện phần mềm mà triển khai một SQL Database Engine
, không cần máy chủ, không cần cấu hình, khép kín và nhỏ gọn. Nó là một cơ sở dữ liệu, không cần cấu hình, có nghĩa là giống như các cơ sở dữ liệu khác mà bạn không cần phải cấu hình nó trong hệ thống của mình.
SQLite engine
không phải là một quy trình độc lập (standalone process) như các cơ sở dữ liệu khác, bạn có thể liên kết nó một cách tĩnh hoặc động tùy theo yêu cầu của bạn với ứng dụng của bạn. SQLite
truy cập trực tiếp các file lưu trữ (storage files) của nó.
2. Tại sao lại là SQLite?
SQLite
không yêu cầu một quy trình hoặc hệ thống máy chủ riêng biệt để hoạt động.SQLite
không cần cấu hình, có nghĩa là không cần thiết lập hoặc quản trị.- Một cơ sở dữ liệu
SQLite
hoàn chỉnh được lưu trữ trong một file disk đa nền tảng (cross-platform disk file). SQLite
rất nhỏ và trọng lượng nhẹ, dưới 400KiB được cấu hình đầy đủ hoặc dưới 250KiB với các tính năng tùy chọn bị bỏ qua.SQLite
là khép kín (self-contained), có nghĩa là không có phụ thuộc bên ngoài.- Các transaction trong
SQLite
hoàn toàn tuân thủACID
, cho phép truy cập an toàn từ nhiều tiến trình (process) hoặc luồng (thread). SQLite
hỗ trợ hầu hết các tính năng ngôn ngữ truy vấn (query language) được tìm thấy trong tiêu chuẩnSQL92 (SQL2)
.SQLite
được viết bằngANSI-C
và cung cấp API đơn giản và dễ sử dụng.SQLite
có sẵn trênUNIX
(Linux, Mac OS-X, Android, iOS) và Windows (Win32, WinCE, WinRT).
3. Lịch sử tóm tắt của SQLite
- 2000 - D. Richard Hipp đã thiết kế
SQLite
cho mục đích không yêu cầu quản trị để vận hành chương trình. - 2000 - Vào tháng 8,
SQLite 1.0
được phát hành với trình quản lý cơ sở dữ liệuGNU
. - 2011 - Hipp tuyên bố bổ sung giao diện
UNQl
vàoSQLite DB
và phát triểnUNQLite
(Cơ sở dữ liệu hướng tài liệu - Document oriented database).
4. Hạn chế SQLite
Một số tính năng của SQL92
không được hỗ trợ trong SQLite
được liệt kê trong bảng sau:
Bài viết này được đăng tại [free tuts .net]
STT | Đặc điểm | Mô tả |
1 | RIGHT OUTER JOIN | Chỉ có LEFT OUTER JOIN được thực hiện. |
2 | FULL OUTER JOIN | Chỉ có LEFT OUTER JOIN được thực hiện. |
3 | ALTER TABLE | Các biến thể RENAME TABLE và ADD COLUMN của lệnh ALTER TABLE được hỗ trợ. DROP COLUMN , ALTER COLUMN , ADD CONSTRAINT không được hỗ trợ. |
4 | Trigger support | Trigger FOR EACH ROW được hỗ trợ nhưng không hỗ trợ FOR EACH STATEMENT . |
5 | VIEWs | VIEWs trong SQLite là chỉ đọc. Bạn không thể thực thi câu lệnh DELETE , INSERT hoặc UPDATE trên một view. |
6 | GRANT và REVOKE | Các quyền truy cập duy nhất có thể được áp dụng là các quyền truy cập file thông thường (normal file) của hệ điều hành. |
5. SQLite Commands
Các lệnh SQLite
tiêu chuẩn để tương tác với cơ sở dữ liệu quan hệ tương tự như SQL
. Chúng là CREATE
, SELECT
, INSERT
, UPDATE
, DELETE
và DROP
. Các lệnh này có thể được phân loại thành các nhóm dựa trên tính chất hoạt động của chúng như sau:
DDL - Ngôn ngữ định nghĩa dữ liệu (Data Definition Language)
Lệnh | Mô tả |
CREATE | Tạo mới một bảng, view của bảng hoặc đối tượng khác trong cơ sở dữ liệu. |
ALTER | Sửa đổi một đối tượng cơ sở dữ liệu đang tồn tại, chẳng hạn như bảng. |
DROP | Xóa toàn bộ bảng, view của bảng hoặc đối tượng khác trong cơ sở dữ liệu. |
DML - Ngôn ngữ thao tác dữ liệu (Data Manipulation Language)
Lệnh | Mô tả |
INSERT | Tạo một bản ghi (record) |
UPDATE | Sữa một bản ghi (record) |
DELETE | Xóa một bản ghi (record) |
DQL - Ngôn ngữ truy vấn dữ liệu (Data Query Language)
Lệnh | Mô tả |
SELECT | Lấy một số bản ghi nhất định từ một hoặc nhiều bảng. |