Cú pháp SQLite



SQLite đi kèm với tập hợp các qui tắc và guideline duy nhất được gọi là Cú pháp. Chương này sẽ cho bạn cái nhìn tổng quan về SQLite qua việc liệt kê cho bạn tất cả cú pháp cơ bản của SQLite.

là 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ụ: GLOBglob có ý nghĩa khác nhau trong các lệnh SQLite.

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

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

COMMIT;

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 TRANSACTION trong SQLite

COMMIT;

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 trong SQLite

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

RELEASE savepoint_name;

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

VACUUM;

Mệnh đề WHERE trong SQLite

SELECT column1, column2....columnN
FROM   table_name
WHERE  CONDITION;

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