SQLite được theo sau bởi bộ quy tắc và hướng dẫn duy nhất được gọi là cú pháp (syntax). Trong bài này mình sẽ cùng tìm hiểu về cú pháp trong SQLite.
1. Không phân biệt kiểu chữ
Điều quan trọng bạn cần ghi nhớ về SQLite là không phân biệt kiểu chữ. Nhưng có một số lệnh là phân biệt kiểu chữ, ví dụ: GLOB và glob có ý nghĩa khác nhau trong các lệnh SQLite.
2. Comment trong SQLite
Bạn có thể thêm Comment trong SQLite code để tăng cao khả năng đọc cho code và chúng có thể xuất hiện ở bất cứ đâu; whitespace có thể xuất hiện, bao gồm bên trong các biểu thức và ở giữa các lệnh SQL khác nhưng chúng không thể lồng nhau.
Comment trong SQLite bắt đầu với hai ký tự dấu gạch nối "-" (ASCII 0x2d) và kéo dài tới và bao gồm ký tự newline (dòng mới) (ASCII 0x0a) hoặc tới phần cuối của input, bất cứ cái gì được nhập vào đầu tiên.
Bạn cũng có thể sử dụng C-style comment, bắt đầu với "/*" và kéo dài tới và bao gồm ký tự "*/" hoặc tới phần cuối của input, bất cứ cái gì được nhập vào đầu tiên. C-style comment có thể trải rộng nhiều dòng.
sqlite> .help -- This is a single line comment
3. Lệnh trong SQLite
Tất cả các lệnh SQLite bắt đầu với bất kỳ từ khóa nào như SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, … và tất cả các lệnh kết thúc với một dấu chấm phảy (;).
Lệnh ANALYSE trong SQLite
ANALYZE;
or
ANALYZE database_name;
or
ANALYZE database_name.table_name;
Mệnh đề AND/OR trong SQLite
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION-1 {AND|OR} CONDITION-2;
Lệnh ALTER TABLE trong SQLite
ALTER TABLE table_name ADD COLUMN column_def...;
Lệnh ALTER TABLE (Rename) trong SQLite
ALTER TABLE table_name RENAME TO new_table_name;
Lệnh ATTACH DATABASE trong SQLite
ATTACH DATABASE 'DatabaseName' As 'Alias-Name';
Lệnh BEGIN TRANSACTION trong SQLite
BEGIN;
or
BEGIN EXCLUSIVE TRANSACTION;
Mệnh đề BETWEEN trong SQLite
SELECT column1, column2....columnN
FROM table_name
WHERE column_name BETWEEN val-1 AND val-2;
Lệnh COMMIT trong SQLite
Lệnh CREATE INDEX trong SQLite
CREATE INDEX index_name
ON table_name ( column_name COLLATE NOCASE );
Lệnh CREATE UNIQUE INDEX trong SQLite-
CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...columnN);
Lệnh CREATE TABLE trong SQLite
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
Lệnh CREATE TRIGGER trong SQLite
CREATE TRIGGER database_name.trigger_name
BEFORE INSERT ON table_name FOR EACH ROW
BEGIN
stmt1;
stmt2;
....
END;
Lệnh CREATE VIEW trong SQLite
CREATE VIEW database_name.view_name AS
SELECT statement....;
Lệnh CREATE VIRTUAL TABLE trong SQLite
CREATE VIRTUAL TABLE database_name.table_name USING weblog( access.log );
or
CREATE VIRTUAL TABLE database_name.table_name USING fts3( );
Lệnh COMMIT TRACSACTION trong SQLite
Mệnh đề COUNT trong SQLite
SELECT COUNT(column_name)
FROM table_name
WHERE CONDITION;
Lệnh DELETE trong SQLite
DELETE FROM table_name
WHERE {CONDITION};
Lệnh DETACH DATABASE trong SQLite
DETACH DATABASE 'Alias-Name';
Mệnh đề DISTINCT trong SQLite
SELECT DISTINCT column1, column2....columnN
FROM table_name;
Lệnh DROP INDEX tyỏng
DROP INDEX database_name.index_name;
Lệnh DROP TABLE trong SQLite
DROP TABLE database_name.table_name;
Lệnh DROP VIEW trong SQLite
DROP INDEX database_name.view_name;
Lệnh DROP TRIGGER trong SQLite
DROP INDEX database_name.trigger_name;
Mệnh đề EXISTS trong SQLite
SELECT column1, column2....columnN
FROM table_name
WHERE column_name EXISTS (SELECT * FROM table_name );
Lệnh EXPLAIN trong SQLite
EXPLAIN INSERT statement...;
or
EXPLAIN QUERY PLAN SELECT statement...;
Mệnh đề GLOB trong SQLite
SELECT column1, column2....columnN
FROM table_name
WHERE column_name GLOB { PATTERN };
Mệnh đề GROUP BY trong SQLite
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name;
Mệnh đề HAVING trong SQLite
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name
HAVING (arithematic function condition);
Lệnh INSERT INTO trong SQLite
INSERT INTO table_name( column1, column2....columnN)
VALUES ( value1, value2....valueN);
Mệnh đề IN trong SQLite
SELECT column1, column2....columnN
FROM table_name
WHERE column_name IN (val-1, val-2,...val-N);
Mệnh đề LIKE trong SQLite
SELECT column1, column2....columnN
FROM table_name
WHERE column_name LIKE { PATTERN };
Mệnh đề NOT IN trong SQLite
SELECT column1, column2....columnN
FROM table_name
WHERE column_name NOT IN (val-1, val-2,...val-N);
Mệnh đề ORDER BY trong SQLite
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION
ORDER BY column_name {ASC|DESC};
Lệnh PRAGMA trong SQLite
PRAGMA pragma_name;
For example:
PRAGMA page_size;
PRAGMA cache_size = 1024;
PRAGMA table_info(table_name);
Lệnh RELEASE SAVEPOINT trong SQLite
Lệnh REINDEX trong SQLite
REINDEX collation_name;
REINDEX database_name.index_name;
REINDEX database_name.table_name;
Lệnh ROLLBACK trong SQLite
ROLLBACK;
or
ROLLBACK TO SAVEPOINT savepoint_name;
Lệnh SAVEPOINT trong SQLite
SAVEPOINT savepoint_name;
Lệnh SELECT trong SQLite
SELECT column1, column2....columnN
FROM table_name;
Lệnh UPDATE trong SQLite
UPDATE table_name
SET column1 = value1, column2 = value2....columnN=valueN
[ WHERE CONDITION ];
Lệnh VACUUM trong SQLite
Mệnh đề WHERE trong SQLite
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION;