Chương này giúp bạn hiểu khái niệm về SQLite, điểm khác nhau với SQL, tại sao nó lại cần thiết và cách nó xử lý Cơ sở dữ liệu của các ứng dụng.
SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine truyền thống, không cần Server, không cần cấu hình và nhỏ gọn. SQLite là một trong những Database Engine phát triển nhanh nhất, nhưng sự phát triển của nó là về mặt tính phổ biến, không phải là về mặt kích cỡ. SQLite là mã nguồn mở.
SQLite là gì?
Nói một cách đơn giản SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) tương tự như Mysql, PostgreSQL... Đặc điểm của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 400kB, không cần cài đặt, không cần cấu hình hay khởi động mà có thể sử dụng ngay. Dữ liệu Database cũng được lưu ở một file duy nhất. Không có khái niệm user, password hay quyền hạn trong SQLite Database.
SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm … và là sự lưa chọn phù hợp cho những người bắt đầu học Database.
SQLite Engine không là một Standalone Process giống 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 một cách động tùy theo yêu cầu với ứng dụng của bạn. SQLite truy cập các file lưu giữ của nó một cách trực tiếp.
Tại sao nên sử dụng SQLite?
- SQLite không yêu cầu một tiến trình Server riêng rẽ để hoạt động.
- SQLite không cần cấu hình, nghĩa là không cần thiết phải cài đặt.
- Một SQLite Database đầy đủ được lưu giữ trong một disk file đơn.
- SQLite là rất nhỏ gọn, nhỏ hơn 400kB đã đươc cấu hình đầy đủ hoặc nhỏ hơn 250kB khi đã bỏ qua các tính năng tùy ý.
- SQLite là tự chứa, nghĩa là không có sự phụ thuộc vào ngoại vi.
- Các Transaction trong SQLite là tuân theo đầy đủ chuẩn ACID, đảm bảo truy cập an toàn từ nhiều tiến trình hoặc thread.
- SQLite hỗ trợ hầu hết các tính năng của một ngôn ngữ truy vấn trong chuẩn SQL92.
- SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ dàng sử dụng.
- SQLite là có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows (Win32, WinCE, WinRT).
Lịch sử của SQLite
- Năm 2000: D.Richard Hipp đã thiết kế SQLite với mục đích không cần quản trị để điều hành một chương trình.
- Vào tháng 8, SQLite 1.0 được công bố với GNU Database Manager.
- Năm 2011: Hipp bổ sung UNQI Interface cho SQLite DB và để phát triển UNQLite (là một Document Oriented Database).
Hạn chế của SQLite
SQLite không hỗ trợ một số tính năng của chuẩn SQL92, bao gồm:
Đặc điểm | Miêu tả |
---|---|
RIGHT OUTER JOIN | Chỉ có LEFT OUTER JOIN được triển khai |
FULL OUTER JOIN | Chỉ có LEFT OUTER JOIN được triển khai |
ALTER TABLE | Các biến thể RENAME TABLE và ADD COLUMN của lệnh ALTER TABLE được hỗ trợ. Trong khi DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT không được hỗ trợ |
Hỗ trợ Trigger | Hỗ trợ FOR EACH ROW trigger nhưng không hỗ trợ FOR EACH STATEMENT |
VIEWs | View trong SQLite là read-only. Bạn không thể thực thi một lệnh DELETE, INSERT, hoặc UPDATE trên một View |
GRANT và REVOKE | Chỉ hỗ trợ các quyền truy cập mà áp dụng trên normal file dưới hệ điều hành |
Lệnh trong SQLite
Các lệnh SQLite chuẩn để tương tác với Cơ sở dữ liệu quan hệ là giống như SQL. Chúng là CREATE, SELECT, INSERT, UPDATE, DELETE và DROP. Những lệnh này có thể được phân chia thành 3 nhóm tùy theo tính năng hoạt động của chúng:
Nhóm DDL (Data Definition Language)
Lệnh | Miêu tả |
---|---|
CREATE | Tạo một bảng mới, một View của một bảng hoặc đối tượng khác trong Database |
ALTER | Sửa đổi một đối tượng cơ sở dữ liệu đang tồn tại, ví dụ một bảng |
DROP | Xóa cả một bảng, một View của một bảng hoặc đối tượng khác trong Database |
Nhóm DML (Data Manipulation Language)
Lệnh | Miêu tả |
---|---|
INSERT | Tạo một bản ghi |
UPDATE | Sửa đổi các bản ghi |
DELETE | Xóa các bản ghi |
Nhóm DQL (Data Query Language)
Lệnh | Miêu tả |
---|---|
SELECT | Lấy các bản ghi cụ thể từ một hoặc nhiều bảng |