ìm hiểu cú pháp trong SQLite - SQLite căn bản và nâng cao
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 ...
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ư GLOB
và glob
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;