SQLite là gì



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 JOINChỉ có LEFT OUTER JOIN được triển khai
FULL OUTER JOINChỉ có LEFT OUTER JOIN được triển khai
ALTER TABLECá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ợ TriggerHỗ trợ FOR EACH ROW trigger nhưng không hỗ trợ FOR EACH STATEMENT
VIEWsView 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à REVOKEChỉ 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ả
CREATETạ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
ALTERSửa đổi một đối tượng cơ sở dữ liệu đang tồn tại, ví dụ một bảng
DROPXó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ả
INSERTTạo một bản ghi
UPDATESửa đổi các bản ghi
DELETEXó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

Loạt bài hướng dẫn học SQLite cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học SQLite phổ biến khác tại VietJack: