English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite 语法

SQLite以降は、文法と呼ばれるユニークなルールと原則のセットがあります。この章では、すべての基本的なSQLite文法を列挙しています。

大文字と小文字の区別

注意すべきポイントの一つは、SQLiteは大文字と小文字を区別しないことです。つまり、子句GLOBとglobはSQLite文では同じ意味を持っています。

コメント

SQLiteのコメントは、SQLiteコードの可読性を向上させるために追加できる追加のコメントで、どこにでも出現できます;空白、式の内部、他のSQL文の中間などに出现できますが、ネストはできません。

SQLのコメントは連続する「-文字(ASCII 0x2d)で始まり、次の改行符(ASCII 0x0a)または入力終了まで(どちらか先に来る方)まで拡張されます。

Cスタイルのコメントを使用することもできます。このコメントは「 / *文字対で始まり、次の「 * /文字対に続いて次の「 * /文字対、または入力終了(どちらか先に来る方)まで。Cスタイルのコメントは複数行にわたって書ける。

sqlite> .help -- これは単一行コメントです

SQLite文

すべてのSQLite文はSELECT、INSERT、UPDATE、DELETE、ALTER、DROPなどのキーワードで始まり、すべての文はセミコロン(;)で終わります。

SQLite ANALYZE文

ANALYZE;
または
ANALYZE database_name;
または
ANALYZE database_name.table_name;

SQLite AND / OR節

SELECT column1, column2....columnN
FROM テーブル名
WHERE CONDITION-1 {AND|OR} CONDITION-2;

SQLite ALTER TABLE文

ALTER TABLE table_name ADD COLUMN column_def...;

SQLite ALTER TABLE文(改名)

ALTER TABLE table_name RENAME TO new_table_name;

SQLite ATTACH DATABASE文

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

SQLite BEGIN TRANSACTION文

BEGIN;
または
BEGIN EXCLUSIVE TRANSACTION;

SQLite BETWEEN節

SELECT column1, column2....columnN
FROM テーブル名
WHERE column_name BETWEEN val-1 AND val-2;

SQLite COMMIT文

COMMIT;

SQLite CREATE INDEX文

CREATE INDEX index_name
ON table_name ( column_name COLLATE NOCASE );

SQLite CREATE UNIQUE INDEX文

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

SQLite CREATE TABLE文

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

SQLite CREATE TRIGGER文

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

SQLite CREATE VIEW文

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

SQLite CREATE VIRTUAL TABLE文

CREATE VIRTUAL TABLE database_name.table_name USING weblog( access.log );
または
CREATE VIRTUAL TABLE database_name.table_name USING fts3( );

SQLite COMMIT TRANSACTION文

COMMIT;

SQLite COUNT節

SELECT COUNT(column_name)FROM table_name
WHERE 条件;

SQLite DELETE文

DELETE FROM table_name
WHERE {CONDITION};

SQLite DETACH DATABASE文

DETACH DATABASE 'Alias-Name';

SQLite DISTINCT節

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

SQLite DROP INDEX文

DROP INDEX database_name.index_name;

SQLite DROP TABLE文

DROP TABLE database_name.table_name;

SQLite DROP VIEW文

DROP INDEX database_name.view_name;

SQLite DROP TRIGGER文

DROP INDEX database_name.trigger_name;

SQLite EXISTS節

SELECT column1, column2....columnN
FROM テーブル名
WHERE column_name EXISTS (SELECT * FROM table_name );

SQLite EXPLAIN文

EXPLAIN INSERT statement...;
または 
EXPLAIN QUERY PLAN SELECT statement...;

SQLite GLOB節

SELECT column1, column2....columnN
FROM テーブル名
WHERE column_name GLOB { PATTERN };

SQLite GROUP BY 子句

SELECT SUM(column_name)FROM table_name
WHERE CONDITION
GROUP BY column_name;

SQLite HAVING節

SELECT SUM(column_name)FROM table_name
WHERE CONDITION
GROUP BY column_name
HAVING (arithematic function condition);

SQLite INSERT INTO文

INSERT INTO table_name( column1, column2....columnN)
VALUES ( value1, value2....valueN);

SQLite IN節

SELECT column1, column2....columnN
FROM テーブル名
WHERE column_name IN (val-1, val-2,...val-N);

SQLite LIKE節

SELECT column1, column2....columnN
FROM テーブル名
WHERE column_name LIKE { PATTERN };

SQLite NOT IN節

SELECT column1, column2....columnN
FROM テーブル名
WHERE column_name NOT IN (val-1, val-2,...val-N);

SQLite ORDER BY 子句

SELECT column1, column2....columnN
FROM テーブル名
WHERE CONDITION
ORDER BY column_name {ASC|DESC};

SQLite PRAGMA文

PRAGMA pragma_name;
例えば:
PRAGMA page_size;
PRAGMA cache_size = 1024;
PRAGMA table_info(table_name);

SQLite RELEASE SAVEPOINT文

RELEASE savepoint_name;

SQLite REINDEX文

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

SQLite ROLLBACK文

ROLLBACK;
または
ROLLBACK TO SAVEPOINT savepoint_name;

SQLite SAVEPOINT文

SAVEPOINT savepoint_name;

SQLite SELECT文

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

SQLite UPDATE 文

UPDATE テーブル名
SET column1 = value1, column2 = value2....columnN=valueN
[ WHERE  条件 ];

SQLite VACUUM 文

VACUUM;

SQLite WHERE 子句

SELECT column1, column2....columnN
FROM テーブル名
WHERE 条件;