SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Hướng dẫn SQLite:Mọi thứ bạn cần biết

Nếu bạn đã từng làm việc với các hệ thống cơ sở dữ liệu quan hệ, có thể bạn đã nghe nói đến các hệ thống cơ sở dữ liệu phổ biến như MySQL, SQL Server hoặc PostgreSQL. SQLite là một RDBMS cực kỳ hữu ích khác, rất đơn giản để thiết lập và vận hành. Ngoài ra, nó có nhiều tính năng khác biệt so với các cơ sở dữ liệu quan hệ khác. Hướng dẫn SQLite này dạy các khái niệm cơ bản mà bạn cần biết với sự trợ giúp của các phương pháp thực hành rộng rãi.

Các chủ đề được thảo luận trong bài viết này là:

  • SQLite là gì?
    • Các tính năng của SQLite
  • Cài đặt SQLite trên Windows
  • Lệnh SQLite
    • Lệnh cơ sở dữ liệu
    • Lệnh bảng
    • Hoạt động CRUD
    • Điều khoản / Điều kiện SQLite
    • Tham gia SQLite
  • Nhược điểm của SQLite

Hướng dẫn về SQLite:SQLite là gì?

Đây là định nghĩa tiêu chuẩn ngành của SQLite:

SQLite là một công cụ cơ sở dữ liệu quan hệ giao dịch mã nguồn mở, không cấu hình, độc lập, độc lập, được thiết kế để nhúng vào một ứng dụng.

Bạn có thể xem xét SQLite như một “ bật lửa ”Phiên bản RDBMS phức tạp khác (Oracle, SQL, v.v.), trong đó công cụ cơ sở dữ liệu của nó được định cấu hình để xử lý độc lập (thư viện trong quá trình) tức là không có máy chủ, khép kín, không có cấu hình và giao dịch . Nó được biết đến với tính di động, độ tin cậy và hiệu suất mạnh mẽ ngay cả trong môi trường bộ nhớ thấp. Ngoài ra, SQLite là một lựa chọn phổ biến làm cơ sở dữ liệu nhúng để lưu trữ cục bộ / máy khách trong các chương trình hoặc ứng dụng cuối, không giống như các RDBMS khác, nơi động cơ DB máy khách-máy chủ được định cấu hình.

Tính năng của SQLite

SQLite cung cấp nhiều tính năng riêng biệt như:

  • Không máy chủ: Hầu hết các cơ sở dữ liệu SQL được thực hiện như một quy trình máy chủ riêng biệt, nhưng SQLite không có một quy trình máy chủ riêng biệt. Nó là một công cụ cơ sở dữ liệu không có máy chủ. Nó đọc và ghi trực tiếp vào các tệp đĩa thông thường.
  • Cấu hình Zero: Nó không yêu cầu cấu hình để chạy. Điều này có nghĩa là không có quy trình máy chủ nào cần được khởi động, dừng hoặc định cấu hình như trong hệ thống máy khách / máy chủ.
  • Nhập tệp kê khai: SQLite sử dụng kiểu nhập tệp kê khai, cho phép lưu trữ bất kỳ lượng dữ liệu nào của bất kỳ kiểu dữ liệu nào vào bất kỳ cột nào mà không cần quan tâm đến kiểu dữ liệu được khai báo của cột. Lưu ý rằng có một số ngoại lệ nhất định đối với quy tắc này.
  • Nhẹ: Như tên của nó, thư viện SQLite rất nhẹ. Điều đó là, mặc dù dung lượng mà nó sử dụng khác nhau tùy thuộc vào hệ thống mà nó được lắp đặt, nó có thể chiếm ít hơn 600KiB dung lượng.
  • Di động: Không giống như các DBMS khác, toàn bộ cơ sở dữ liệu SQLite được lưu trữ trong một tệp duy nhất. Tệp này có thể được chia sẻ qua phương tiện di động hoặc giao thức truyền tệp rất dễ dàng.
  • Lựa chọn đa dạng: Nhiều ngôn ngữ lập trình cung cấp các liên kết cho SQLite, bao gồm C, C ++, C #, Java, JavaScript, Ruby, Python, v.v.
  • Miễn phí: SQLite là mã nguồn mở miễn phí. Để làm việc với SQLite, bạn không cần phải có giấy phép thương mại.

Như đã liệt kê ở trên, SQLite được biết đến với cấu hình không có nghĩa là không thực sự yêu cầu thiết lập hoặc quản trị phức tạp. Trong phần tiếp theo của hướng dẫn SQLite này, hãy xem cách cài đặt SQLite trên hệ thống của bạn.

Hướng dẫn SQLite:Cài đặt SQLite trên Windows

Các bước cần thực hiện là:

Bước 1: Truy cập trang web SQLite chính thức và nhấp vào liên kết phù hợp để tải xuống các tệp nhị phân được biên dịch trước.

Bước 2: Tải xuống tệp zip dòng lệnh SQLite (tại đây: sqlite-tools-win32-x86-3270200.zip) và mở rộng các tệp này trong một thư mục bạn chọn.

Công cụ dòng lệnh SQLite này sẽ chứa các sản phẩm SQLite sau đây

  • Lõi SQLite :Lõi SQLite chứa công cụ cơ sở dữ liệu thực tế và API công khai.
  • Công cụ dòng lệnh SQLite3 :Ứng dụng sqlite3 là một công cụ dòng lệnh được xây dựng trên lõi SQLite.
  • Tiện ích mở rộng Tcl :Thư viện này về cơ bản là một bản sao của lõi SQLite với các ràng buộc Tcl được gắn vào.
  • Công cụ phân tích SQLite :Công cụ phân tích SQLite được sử dụng để phân tích các tệp cơ sở dữ liệu.

Bước 3: Sau đó, bắt đầu dòng lệnh SQLite đơn giản như nhấp vào ứng dụng sqlite3, điều này sẽ làm cho dòng lệnh bật lên.

Nếu bạn muốn kiểm tra thêm, chỉ cần nhập .help lệnh từ sqlite> nhắc xem tất cả các lệnh có sẵn trong sqlite3 như hình bên dưới.

Lưu ý: Theo mặc định, một phiên SQLite sử dụng cơ sở dữ liệu trong bộ nhớ, do đó, tất cả các thay đổi sẽ biến mất khi phiên kết thúc.

Đủ đơn giản phải không? Sau đó, hãy bắt đầu với các lệnh SQLite.

Hướng dẫn SQLite:Lệnh SQLite

Phần này của hướng dẫn SQLite trình bày các câu lệnh SQL cơ bản mà bạn có thể sử dụng với SQLite.

Lưu ý: Các lệnh SQLite kết thúc bằng dấu chấm phẩy (; ). Nó cho SQLite biết rằng lệnh của bạn đã hoàn tất và sẽ được chạy. Ngoài ra, bạn có thể trải rộng lệnh của mình trên nhiều dòng và sử dụng dấu chấm phẩy ở dòng cuối cùng.

Lệnh cơ sở dữ liệu

Phần này bao gồm các lệnh đó, qua đó bạn có thể xử lý cơ sở dữ liệu của mình. Các lệnh là:

  • Tạo cơ sở dữ liệu SQLite

SQLite không sử dụng câu lệnh TẠO CƠ SỞ DỮ LIỆU như trong các hệ thống quản lý cơ sở dữ liệu quan hệ khác, chẳng hạn như MySQL, SQL Server, v.v. Để tạo cơ sở dữ liệu mới trong SQLite, chỉ cần nhập sqlite3 theo sau theo tên của tệp mà bạn muốn sử dụng cho cơ sở dữ liệu. Đoạn mã sau tạo một tệp cơ sở dữ liệu có tên StudentDetails.db:

Ví dụ

sqlite3 StudentDetails.db;

sqlite> .databases 
main: D:sqliteStudentDetails.db;
  • Cơ sở dữ liệu Đính kèm SQLite

Khi bạn có nhiều cơ sở dữ liệu, bạn chỉ có thể sử dụng một cơ sở dữ liệu tại một thời điểm. Trong SQLite, câu lệnh ATTACH DATABASE được sử dụng để đính kèm một cơ sở dữ liệu cụ thể cho kết nối hiện tại. Sau lệnh này, tất cả các câu lệnh SQLite sẽ được thực thi trong cơ sở dữ liệu đính kèm.

Ví dụ

 sqlite> ATTACH DATABASE 'DepartmentDetails.db' AS 'Department';

sqlite> .databases
main: D:sqliteStudentDetails.db;
Department: D:sqliteDepartmentDetails.db
  • Cơ sở dữ liệu tách SQLite

Trong SQLite, câu lệnh DETACH DATABASE được sử dụng để tách cơ sở dữ liệu có tên bí danh khỏi kết nối cơ sở dữ liệu đã được đính kèm trước đó bằng cách sử dụng câu lệnh ATTACH. Nếu cùng một tệp cơ sở dữ liệu đã được đính kèm với nhiều bí danh, thì lệnh này sẽ ngắt kết nối chỉ tên đã cho và phần còn lại của tệp đính kèm sẽ vẫn tiếp tục tồn tại. Cơ sở dữ liệu trong bộ nhớ trong hoặc cơ sở dữ liệu tạm thời sẽ bị phá hủy hoàn toàn và nội dung sẽ bị mất.

Ví dụ

sqlite> .databases
main: D:sqliteStudentDetails.db;
Department: D:sqliteDepartmentDetails.db
Student: D:sqliteStudentDetails.db
DeptInformation: D:sqliteDepartmentDetails.db

sqlite> DETACH DATABASE 'Department';

sqlite> .databases
main: D:sqliteStudentDetails.db;
Student: D:sqliteStudentDetails.db
DeptInformation: D:sqliteDepartmentDetails.db

Lệnh bảng

Sau đây chúng ta sẽ học cách xử lý các bảng khi sử dụng SQLite.

  • SQL Tạo bảng

Trong SQLite, câu lệnh CREATE TABLE được sử dụng để tạo một bảng mới. Trong khi tạo bảng, bạn cần đặt tên cho bảng và xác định cột cũng như kiểu dữ liệu của mỗi cột.

Cú pháp:

CREATE TABLE table_name(
         Column1 column_type [constraints]
         Column2 column_type [constraints]
         [.....]
          );

Ví dụ


CREATE TABLE StudentInfo(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
DEPARTMENTID INTEGER NOT NULL,
PHONE TEXT DEFAULT 'UNKNOWN',
FOREIGN KEY(DEPARTMENTID) REFERENCES DepartmentInfo(DeptID)
); 

Bạn có thể kiểm tra xem bảng đã được tạo hay chưa bằng cách sử dụng .tables lệnh như hình dưới đây. Lưu ý rằng tôi đã tạo một bảng có tên là DepartmentInfo trong đó DeptID là khóa chính. Bảng Phòng ban có ràng buộc khóa Ngoại đối với bảng Sinh viên.

 

sqlite> .tables
StudentInfo Contacts Emp_Master

  • Bảng Drop SQLite

Trong SQLite, câu lệnh DROP TABLE cho phép bạn xóa hoặc xóa một bảng khỏi cơ sở dữ liệu SQLite. Khi bảng bị xóa, tất cả dữ liệu trong bảng sẽ bị xóa vĩnh viễn khỏi cơ sở dữ liệu. Mọi chỉ mục và trình kích hoạt liên quan cũng bị xóa. Nếu có bất kỳ ràng buộc khóa ngoại nào được bật trên bảng đó, thì điều đó sẽ xóa tương đương cho mỗi hàng trong bảng và mọi trình kích hoạt liên kết với bảng cũng sẽ bị loại bỏ.

Cú pháp

DROP TABLE [ IF EXISTS ] table_name;

Ví dụ

 DROP TABLE Department;
Error: no such table: Department

DROP TABLE Company;
sqlite> .tables
StudentInfo

Lưu ý: IF TỒN TẠI, là một mệnh đề tùy chọn. Nếu được chỉ định, câu lệnh DROP TABLE sẽ không phát sinh lỗi nếu một trong các bảng không tồn tại.

Ngoài ra, có một câu lệnh SQLite Alter Table , mà chúng ta sẽ hiểu trong một vài phần tiếp theo của bài viết này. Bây giờ chúng ta đã tạo một bảng, hãy xem cách chèn, xóa và thay đổi dữ liệu.

Hướng dẫn SQLite:Hoạt động CRUD

  • Truy vấn Chèn SQLite

Sau khi tạo bảng, lệnh SQLite Insert Into có thể được sử dụng để tạo các hàng mới trong bảng đã chỉ định. Có hai dạng có ý nghĩa của câu lệnh chèn SQLite. Biểu mẫu đầu tiên sử dụng mệnh đề VALUES để chỉ định danh sách các giá trị cần chèn.

Cú pháp


INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);

Ví dụ

INSERT INTO StudentInfo ( ID, NAME, AGE, ADDRESS, DEPARTMENTID, PHONE)
VALUES (1,'Dean', 20, 'California', 2, '934*******');

Đầu ra

SELECT *from StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ----------  ----------
1           Dean        20          California  2  934*******

Tại đây, một hàng mới được tạo và mỗi giá trị được ghi vào cột tương ứng. Lưu ý rằng cả hai danh sách phải giống nhau số hạng mục. Đây, danh sách các cột Là tùy chọn. Chúng tôi cũng có thể chèn dữ liệu vào bảng mà không cần chỉ định danh sách cột .

Ví dụ

INSERT INTO StudentInfo 
VALUES ( 2, 'SAM', 22, 'Texas', 2, '976*******');

Đầu ra

 SELECT *from StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ----------  ----------
1           Dean        20          California  2  934*******
2           SAM         22          Texas        2  976*******

SQLite cũng cung cấp một tính năng để chèn nhiều hàng trong một câu lệnh INSERT duy nhất. Cú pháp như hình dưới đây.

Ví dụ

INSERT INTO StudentInfo
VALUES (3,'John',23,'Norway',1,'923*******'),
(4,'Mitch',22,'Houston',3,'934*******');

Đầu ra

 Select *from StudentInfo;
1|Dean|20|California|2|934*******
2|SAM|22|Texas|2|976*******
3|John|23|Norway|1|923*******
4|Mitch|22|Houston|3|934*******

Như bạn có thể thấy, định dạng của đầu ra không hoàn toàn giống với định dạng trước đó. Vì vậy, làm thế nào để bạn thay đổi định dạng của đầu ra trong SQLite? Hãy định dạng đầu ra để kết quả của chúng ta dễ đọc hơn một chút.

  • Định hình

Bạn có thể sử dụng .mode để thay đổi chế độ đầu ra. Ví dụ trên sử dụng .mode danh sách, hiển thị kết quả dưới dạng danh sách. Ngoài ra, bạn có thể sử dụng .headers câu lệnh để chỉ định có hay không hiển thị tiêu đề cột. Sau khi thực hiện các thay đổi, bạn có thể xem cài đặt bằng cách sử dụng .show lệnh.

Ví dụ

 sqlite>.mode 'column'
sqlite> .headers on
sqlite> .show
echo: off
eqp: off
explain: auto
headers: on
mode: column
nullvalue: ""
output: stdout
colseparator: "|"
rowseparator: "n"
stats: off
width:
filename: StudentDetails.db

Đầu ra

 SELECT *FROM StudentInfo;

ID NAME AGE ADDRESS DEPARTMENT PHONE
---------- ---------- ---------- ---------- ---------- ----------
1 Dean 20 California 2 934*******
2 SAM 22 Texas 2 976*******
3 John 23 Norway 1 923*******
4 Mitch 22 Houston 3 934*******
  • Truy vấn Chọn SQLite

Trong SQLite, câu lệnh Select được sử dụng để tìm nạp dữ liệu từ một bảng, câu lệnh này trả về dữ liệu dưới dạng một bảng kết quả. Các bảng kết quả này còn được gọi là bộ kết quả. Sử dụng câu lệnh SQLite select, chúng ta có thể thực hiện các phép tính đơn giản hoặc nhiều biểu thức dựa trên yêu cầu của chúng ta. Trước đây, chúng tôi đã sử dụng câu lệnh SELECT khi chèn dữ liệu.

Cú pháp

SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
  • DISTINCT - Khi chúng tôi sử dụng từ khóa khác biệt trong một câu lệnh select, nó chỉ trả về các hàng dữ liệu riêng biệt.
  • TẤT CẢ - Nếu chúng ta sử dụng từ khóa ALL trong một câu lệnh select, nó sẽ trả về tất cả các hàng dữ liệu ngay cả khi nó bị trùng lặp.
  • TỪ danh sách bảng - Đây là danh sách các bảng mà bạn muốn lấy dữ liệu.
  • Biểu thức WHERE - Biểu thức WHERE được sử dụng để xác định các điều kiện tùy chỉnh của chúng tôi để lấy dữ liệu cần thiết từ các bảng.

Ví dụ1

 SELECT ID, NAME FROM StudentInfo WHERE AGE < 21;

Đầu ra

ID NAME
---------- ----------
1 Dean

Ví dụ2

Select NAME FROM StudentInfo WHERE DEPARTMENTID
= (SELECT DeptID FROM DepartmentInfo WHERE DeptName = 'Psychology');

Đầu ra

//fetches people from department whose id is 2

NAME
----------
Dean
SAM
  • Truy vấn Cập nhật SQLite

Trong SQLite, câu lệnh UPDATE có thể được sử dụng để sửa đổi các bản ghi hiện có trong bảng. Mệnh đề WHERE của SQLite có thể được sử dụng để chỉ định chính xác hàng nào nên được cập nhật. Bạn có thể dễ dàng cập nhật tất cả các hàng, một số hàng hoặc không, tùy thuộc vào các điều kiện lọc được áp dụng bởi mệnh đề WHERE.

Cú pháp

UPDATE table_name  
SET column1 = value1, column2 = value2...., columnN = valueN  
WHERE [condition];

Ví dụ

UPDATE StudentInfo SET DEPARTMENTID = 4 WHERE ID = '2';

Đầu ra

 SELECT *FROM StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ------------  ----------
1           Dean        20          California  2             934*******
2           SAM         22          Texas       4             976*******
3           John        23          Norway      1             923*******
4           Mitch       22          Houston     3             934*******
  • Truy vấn Xóa SQLite

Trong SQLite, câu lệnh DELETE có thể được sử dụng để xóa bản ghi khỏi bảng. Bạn có thể dễ dàng xóa tất cả các hàng, một số hàng hoặc không có hàng nào, tùy thuộc vào các điều kiện lọc được áp dụng bởi mệnh đề WHERE.

Ví dụ

 DELETE FROM DepartmentInfo WHERE DeptName = 'Science';

Đầu ra

 SELECT *FROM DepartmentInfo;
DeptID DeptName
---------- -----------
1 Mathematics
2 Psychology
3 Sports
4 Music

Nếu bạn cố gắng xóa bản ghi được tham chiếu bởi khóa ngoại, bạn sẽ gặp lỗi. Trước tiên, bạn sẽ cần xóa các bản ghi khóa ngoại, trước khi xóa bản ghi khóa chính. Hãy thử xóa khoa học bộ phận.

Ví dụ

DELETE FROM DepartmentInfo WHERE DeptName = 'Music';
Error: FOREIGN KEY constraint failed

Vì vậy, chúng ta cần xóa các bản ghi khóa ngoại trước khi xóa khóa chính.

DELETE FROM StudentInfo WHERE DEPARTMENTID = 4;

sqlite> DELETE FROM DepartmentInfo WHERE DeptName = 'Music';

sqlite> SELECT *FROM DepartmentInfo;
DeptID      DeptName
----------  -----------
1           Mathematics
2           Psychology
3           Sports

 SELECT *FROM StudentInfo;
ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ------------  ----------
1           Dean        20          California  2             934*******
3           John        23          Norway      1             923*******
4           Mitch       22          Houston     3             934*******

Bây giờ bạn đã biết cách chỉnh sửa các bản ghi trong bảng Cơ sở dữ liệu SQLite. Tiến xa hơn trong blog hướng dẫn SQLite này, hãy thảo luận về các mệnh đề và điều kiện khác nhau mà bạn thường gặp trong SQLite.

Điều khoản / Điều kiện SQLite

Trước khi bắt đầu với các mệnh đề, đây là cú pháp hoàn chỉnh của câu lệnh SELECT trong SQLite.

Cú pháp

SELECT [ALL | DISTINCT] result [FROM table-list]
[WHERE expr]
[GROUP BY expr-list]
[HAVING expr]
[compound-op select]*
[ORDER BY sort-expr-list]
[LIMIT integer [(OFFSET|,) integer]]

Lưu ý:Tôi đã cập nhật bảng StudentInfo và DepartmentInfo như hình dưới đây.

//Student 
Table ID          NAME        AGE         ADDRESS     DEPARTMENTID  PHONE
----------  ----------  ----------  ----------  ------------  ----------
1           Dean        20          California  2             934*******
3           John        23          Norway      1             923*******
4           Mitch       22          Houston     3             934*******
2           SAM         22          Texas       4             976*******
5           Johny       23          Norway      2             945*******
6           Robin       23          Norway      2             UNKNOWN

//Department Details
DeptID      DeptName
----------  -----------
1           Mathematics
2           Psychology
3           Sports
4           Music
5           Science
  • SQLite WHERE

Trong SQLite, mệnh đề WHERE được sử dụng để áp đặt các hạn chế đối với câu lệnh SELECT bằng cách xác định một hoặc nhiều điều kiện để lấy dữ liệu cần thiết từ các bảng trong cơ sở dữ liệu. Nếu điều kiện được chỉ định thỏa mãn hoặc đúng, nó sẽ trả về giá trị cụ thể từ bảng. Như bạn đã thấy trước đây Mệnh đề WHERE không chỉ được sử dụng trong câu lệnh SELECT mà còn được sử dụng trong câu lệnh UPDATE, DELETE, v.v.

Ví dụ

SELECT NAME FROM StudentInfo WHERE AGE = 23;NAME
----------
John
Johny
Robin

Trong SQLite, có một số toán tử quan hệ có thể được sử dụng với mệnh đề WHERE.

  • NHÓM SQLite THEO

Trong SQLite, mệnh đề GROUP BY được sử dụng để tổng hợp dữ liệu thành một hàng trong đó giá trị của một hoặc nhiều cột được chỉ định được lặp lại. Mệnh đề này được sử dụng với mệnh đề WHERE trong câu lệnh SELECT và đặt trước mệnh đề ORDER BY.

Cú pháp

SELECT result
FROM [table-list]
GROUP BY [expr-list]
SELECT NAME, ADDRESS FROM StudentInfo GROUP BY NAME;

NAME ADDRESS
---------- ----------
Dean California
John Norway
Johny Norway
Mitch Houston
Robin Norway
SAM Texas

Lưu ý rằng quy trình nhóm có hai bước. Đầu tiên, biểu thức GROUP BY được sử dụng để sắp xếp các hàng trong bảng thành các nhóm khác nhau. Sau khi các nhóm được xác định, câu lệnh SELECT xác định cách các nhóm đó được làm phẳng thành một hàng.

  • ĐẶT HÀNG SQLite BẰNG

Nói chung, các bảng SQLite lưu trữ dữ liệu theo thứ tự không xác định và nó sẽ trả về các bản ghi theo cùng một thứ tự không xác định trong khi tìm nạp dữ liệu bằng câu lệnh SQLite select. Trong những trường hợp như vậy, bạn có thể sử dụng mệnh đề ORDER BY được sử dụng để sắp xếp các bản ghi cột theo thứ tự tăng dần hoặc giảm dần. Trong ví dụ bên dưới, tôi đã nhóm và sắp xếp theo thứ tự giảm dần) dữ liệu dựa trên địa chỉ.

Cú pháp

SELECT expressions
FROM tables-list
[WHERE conditions]
ORDER BY column1, column2,... [ ASC | DESC ];

Ví dụ

SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo GROUP BY ADDRESS ORDER BY ADDRESS DESC;
ADDRESS COUNT(ADDRESS)
---------- --------------
Texas 1
Norway 3
Houston 1
California 1
  • SQLite CÓ BỞI

Trong SQLite, HAVING mệnh đề giống hệt với WHERE mệnh đề. Mệnh đề HAVING là một điều kiện khác được áp dụng sau khi tổng hợp diễn ra cùng với câu lệnh group by in select. Nói chung trong SQLite, WHERE mệnh đề được sử dụng để áp dụng một điều kiện cho các phần tử riêng lẻ trong bảng và HAVING mệnh đề được sử dụng để thêm các điều kiện lọc dựa trên các nhóm được tạo bởi mệnh đề Group By.

Ví dụ

SELECT ADDRESS, COUNT(ADDRESS) FROM StudentInfo 
GROUP BY ADDRESS 
HAVING COUNT(*)>1;

ADDRESS     COUNT(ADDRESS)
----------  --------------
Norway      3
  • Điều khoản giới hạn của SQLite

Trong SQLite, mệnh đề LIMIT được sử dụng để đặt giới hạn cho các bản ghi được trả về bởi câu lệnh select. Hãy xem xét một ví dụ để hiểu khái niệm này.

Cú pháp

SELECT expressions
FROM tables-list
[WHERE conditions]
LIMIT number_rows OFFSET offset_value;

Ví dụ

SELECT NAME, ADDRESS FROM StudentInfo LIMIT 4 OFFSET 2;
NAME        ADDRESS
----------  ----------
Mitch       Houston
SAM         Texas
Johny       Norway
Robin       Norway 

OFFSET là tùy chọn và nó xác định số hàng cần bỏ qua ở đầu tập kết quả dựa trên offset_value .

  • SQLite VÀ &HOẶC

Trong SQLite, toán tử VÀ &HOẶC được sử dụng để thực hiện nhiều điều kiện đối với các câu lệnh select, insert, update và delete dựa trên yêu cầu của chúng tôi. Toán tử AND của SQLite sẽ trả về các hàng hoặc bản ghi thỏa mãn các điều kiện được xác định bằng cách sử dụng toán tử AND.

Ví dụ1

SELECT NAME FROM StudentInfo WHERE AGE = 22 AND ADDRESS = 'Texas';
NAME
----------
SAM

Điều kiện OR được sử dụng để xác định nhiều điều kiện trong câu lệnh SQLite và nó sẽ trả về các hàng hoặc bản ghi từ câu lệnh nếu bất kỳ điều kiện nào trong một điều kiện được thỏa mãn.

Ví dụ2

SELECT NAME FROM StudentInfo WHERE (AGE = 22 AND ADDRESS = 'Norway') OR ADDRESS = 'Norway';
NAME
----------
John
Johny
Robin
  • Toán tử SQLite GLOB

Trong SQLite, toán tử GLOB được sử dụng để kiểm tra xem giá trị chuỗi đã cho có khớp với một mẫu cụ thể hay không. Trong trường hợp nếu giá trị chuỗi khớp với giá trị mẫu thì nó sẽ trả về true và nó tương tự như toán tử LIKE. Ngoài ra, GLOB phân biệt chữ hoa chữ thường.

Cú pháp

SELECT * FROM table_name
WHERE column_name GLOB 'search-expression'

Ví dụ

SELECT *FROM StudentInfo WHERE NAME GLOB 'Joh*';
ID NAME AGE ADDRESS DEPARTMENTID PHONE
---------- ---------- ---------- ---------- ------------ ----------
3 John 23 Norway 1 923*******
5 Johny 23 Norway 2 945*******
  • Phân biệt SQLite

Trong SQLite, từ khóa DISTINCT sẽ quét tập kết quả của câu lệnh SELECT và loại bỏ mọi hàng trùng lặp. Ngoài ra, các giá trị NULL được coi là bản sao vì vậy nếu chúng ta sử dụng mệnh đề DISTINCT với một cột có giá trị NULL thì nó sẽ chỉ giữ một hàng có giá trị NULL. Khi bạn áp dụng DISTINCT cho nhiều cột, thì câu lệnh trả về từng kết hợp duy nhất của coulnm1 column2.

Ví dụ

SELECT DISTINCT AGE FROM StudentInfo;
AGE
----------
20
23
22
  • Toán tử SQLite IN

Trong SQLite, toán tử IN được sử dụng để xác định xem giá trị đã cho có khớp với danh sách các giá trị đã cho hoặc kết quả được trả về bởi truy vấn con hay không.

Ví dụ

SELECT NAME FROM StudentInfo WHERE ADDRESS IN ('Texas', 'Houston');
NAME
----------
Mitch
SAM
  • UNION &UNION ALL trên SQLite

Trong SQLite, toán tử UNION được sử dụng để kết hợp các tập kết quả của 2 hoặc nhiều câu lệnh SELECT và nó loại bỏ các hàng trùng lặp giữa các câu lệnh SELECT khác nhau. Hãy nhớ rằng các câu lệnh SELECT mà chúng tôi đã sử dụng với toán tử UNION phải có cùng số trường trong tập kết quả có kiểu dữ liệu tương tự.

Cú pháp

SELECT expression1, expression2,... expression_n
FROM tables
[WHERE conditions]

UNION / UNION ALL

SELECT expression1, expression2,... expression_n
FROM tables
[WHERE conditions];

Ví dụ

 SELECT DEPARTMENTID FROM StudentInfo 
UNION
SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC;

DEPARTMENTID
------------
1
2
3
4
5

Toán tử UNION ALL được sử dụng để kết hợp các tập kết quả của 2 hoặc nhiều câu lệnh SELECT và nó sẽ trả về tất cả các hàng bao gồm cả các bản sao.

Ví dụ

SELECT DEPARTMENTID FROM StudentInfo UNION ALL SELECT DeptId FROM DepartmentInfo ORDER BY DEPARTMENTID ASC;
DEPARTMENTID
------------
1
1
2
2
2
2
3
3
4
4
5

Với điều này, chúng tôi đã trình bày các lệnh cơ bản nhất mà bạn có thể phải sử dụng khi làm việc với SQLite. Tiếp tục với hướng dẫn SQLite này, hãy xem câu lệnh nối trong SQLite.

Tham gia SQLite

Trong SQLite, Joins được sử dụng để kết hợp các bản ghi từ hai hoặc nhiều bảng trong cơ sở dữ liệu và lấy các bản ghi dựa trên yêu cầu của chúng tôi. Các loại JOINS khác nhau có sẵn trong SQLite là:

  • Tham gia bên trong - INNER JOIN được sử dụng để kết hợp và chỉ trả về các bản ghi phù hợp từ nhiều bảng dựa trên các điều kiện được xác định trong câu lệnh SQLite.
  • Tham gia bên ngoài - SQLite Outer Join sẽ chọn các hàng phù hợp từ nhiều bảng giống như Internal Join và một số hàng khác bên ngoài mối quan hệ. Nói một cách dễ hiểu, chúng ta có thể nói SQLite OUTER JOIN là một phần bổ sung của INNER JOIN . Nói chung, chúng ta có ba loại Outer Joins trong tiêu chuẩn SQL, đó là LEFT, RIGHT và FULL Outer Joins nhưng SQLite chỉ hỗ trợ LEFT OUTER JOIN.
  • Tham gia chéo - Nó được sử dụng để lấy tích số Descartes của các hàng bằng cách khớp từng hàng của bảng đầu tiên với mọi hàng của bảng thứ hai.
  • Tự tham gia - Nó được sử dụng để tham gia cùng một bảng với chính nó. Để sử dụng Self Join, chúng tôi cần tạo các tên bí danh khác nhau cho cùng một bảng để thực hiện các thao tác dựa trên yêu cầu của chúng tôi.

Khái niệm này tương tự như khái niệm của các hệ thống cơ sở dữ liệu quan hệ khác như SQL. Vì vậy, để biết thêm, bạn có thể tham khảo bài viết này về SQL Joins.

Với phần này, chúng ta đã trình bày các lệnh SQLite cơ bản. Các khái niệm nâng cao không được đề cập ở đây. Vì vậy, hãy theo dõi bài viết khác về các khái niệm SQLite nâng cao. Ngay cả với tất cả các tính năng tốt mà SQLite cung cấp, nó cũng có một số nhược điểm nhất định.

Hướng dẫn SQLite:Nhược điểm của SQLite

Liệt kê dưới đây là những điểm kém của việc sử dụng SQLite:

  • Nó không hoạt động tốt trong Kiến trúc máy khách / máy chủ.
  • Kích thước cơ sở dữ liệu SQLite được giới hạn ở 2GB trong hầu hết các trường hợp.
  • SQLite chưa triển khai RIGHT OUTER JOIN và FULL OUTER JOIN. Với SQLite, chúng ta chỉ có thể triển khai LEFT OUTER JOIN.
  • Chế độ xem trong SQLite ở chế độ chỉ đọc. Chúng tôi không thể sử dụng các câu lệnh DML (Chèn, Cập nhật và Xóa) với Chế độ xem.
  • Chúng tôi không thể sử dụng các câu lệnh GRANT và REVOKE với SQLite.

Với điều này, chúng ta kết thúc Hướng dẫn SQLite này.

Nếu bạn muốn tìm hiểu thêm về MySQL và làm quen với cơ sở dữ liệu quan hệ nguồn mở này, hãy xem Đào tạo chứng chỉ MySQL DBA của chúng tôi đi kèm với đào tạo trực tiếp do người hướng dẫn và trải nghiệm dự án thực tế. Khóa đào tạo này sẽ giúp bạn hiểu sâu về MySQL và giúp bạn đạt được thành thạo về chủ đề này.

Bạn có câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của Hướng dẫn SQLite này và tôi sẽ liên hệ lại với bạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để sử dụng Thư viện Kiên trì Phòng với cơ sở dữ liệu được điền sẵn?

  2. SQLite KHÔNG ĐỦ

  3. Làm thế nào để tìm ra người dùng có mặt trong Cơ sở dữ liệu Sqlite bằng cách sử dụng Android?

  4. Các hàm &toán tử JSON trong SQLite (Danh sách đầy đủ)

  5. java.lang.IllegalStateException:Không thể đọc hàng 0, cột -1 từ CursorWindow - Sự cố Android sqlite