Tìm hiểu cú pháp trong SQLite

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 chữ hoa chữ thường

Điểm quan trọng cần lưu ý đó là SQLite không phân biệt chữ hoa chữ thường, nhưng có một số lệnh, phân biệt chữ hoa chữ thường như GLOBglob có ý nghĩa khác nhau trong các câu lệnh SQLite.

2. Comment trong SQLite

Comment trong SQLite là ghi chú bổ sung, bạn có thể thêm vào mã SQLite của mình để tăng khả năng đọc và chúng có thể xuất hiện ở bất cứ đâu. Khoảng trắng có thể xảy ra, bao gồm các biểu thức bên trong và ở giữa các câu lệnh SQL khác nhưng chúng không thể được lồng vào nhau.

Comment trong SQLite bắt đầu bằng hai ký tự "-" liên tiếp (ASCII 0x2d) và mở rộng tiếp tục và bao gồm ký tự dòng mới (newline) tiếp theo (ASCII 0x0a) hoặc cho đến khi kết thúc đầu vào, tùy theo điều kiện nào đến trước.

Bạn cũng có thể sử dụng comment trong C, bắt đầu bằng "/*" và mở rộng đến tiếp tục và bao gồm cặp ký tự "*/" tiếp theo hoặc cho đến khi kết thúc đầu vào, tùy theo điều kiện nào đến trước. Comment trong C có thể trải dài trên nhiều dòng.

sqlite> .help -- đay la cau lenh comment

3. Các câu lệnh trong SQLite

Tất cả các câu lệnh trong SQLite bắt đầu với bất kỳ từ khóa nào như SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, v.v. và tất cả các câu lệnh kết thúc bằng dấu chấm phẩy (;).

Câu lệnh ANALYZE 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;

Câu lệnh ALTER trong SQLite

ALTER TABLE table_name ADD COLUMN column_def...;

Câu lệnh ALTER TABLE trong SQLite

ALTER TABLE table_name ADD COLUMN column_def...;

Câu lệnh ATTACH DATABASE trong SQLite

ATTACH DATABASE 'DatabaseName' As 'Alias-Name';

Câu lệnh BEGIN TRANSACTION trong SQLite

BEGIN;
or
BEGIN EXCLUSIVE TRANSACTION;

Câu lệnh BETWEEN trong SQLite

SELECT column1, column2....columnN
FROM table_name
WHERE column_name BETWEEN val-1 AND val-2;

Câu lệnh COMMIT trong SQLite

COMMIT;

Câu lệnh CREATE INDEX trong SQLite

CREATE INDEX index_name
ON table_name ( column_name COLLATE NOCASE );

Câu lệnh CREATE UNIQUE INDEX trong SQLite

CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...columnN);

Câu lệnh CREATE TABLE trong SQLite

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( one or more columns )
);

Câu lệnh CREATE TRIGGER trong SQLite

CREATE TRIGGER database_name.trigger_name 
BEFORE INSERT ON table_name FOR EACH ROW
BEGIN 
   stmt1; 
   stmt2;
   ....
END;

Câu lệnh CREATE VIEW trong SQLite

CREATE VIEW database_name.view_name AS
SELECT statement....;

Câu 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( );

Câu lệnh COMMIT TRANSACTION trong SQLite

COMMIT;

Câu lệnh COUNT trong SQLite

SELECT COUNT(column_name)
FROM table_name
WHERE CONDITION;

Câu lệnh DELETE trong SQLite

DELETE FROM table_name
WHERE {CONDITION};

Câu lệnh DETACH DATABASE trong SQLite

DETACH DATABASE 'Alias-Name';

Mệnh đề DISTINCT trong SQLite

SELECT DISTINCT column1, column2....columnN
FROM table_name;

Câu lệnh DROP INDEX trong SQLite

DROP INDEX database_name.index_name;

Câu lệnh DROP TABLE trong SQLite

DROP TABLE database_name.table_name;

Câu lệnh DROP VIEW trong SQLite

DROP INDEX database_name.view_name;

Câu 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 );

Câu 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);

Câu 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};

Câu lệnh PRAGMA trong SQLite

PRAGMA pragma_name;

For example:

PRAGMA page_size;
PRAGMA cache_size = 1024;
PRAGMA table_info(table_name);

Câu lệnh RELEASE SAVEPOINT trong SQLite

RELEASE savepoint_name;

Câu lệnh REINDEX trong SQLite

REINDEX collation_name;
REINDEX database_name.index_name;
REINDEX database_name.table_name;

Câu lệnh ROLLBACK trong SQLite

ROLLBACK;
or
ROLLBACK TO SAVEPOINT savepoint_name;

Câu lệnh SAVEPOINT trong SQLite

SAVEPOINT savepoint_name;

Câu lệnh SELECT trong SQLite

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

Câu lệnh UPDATE trong SQLite

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

Câu lệnh VACUUM trong SQLite

VACUUM;

Mệnh đề WHERE trong SQLite

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

-------------------#####-------------------

Loạt bài SQLite được biên dịch từ TutorialsPoint.

Khóa học nên xem

Nguồn: freetuts.net