开发学院

您的位置:首页>教程>正文

教程正文

SQLite 语法

SQLite 语法

  本章将学习基本的SQLite语法。

大小写敏感

  需要注意的一点是,SQLite不区分大小写,但有些命令区分大小写,如GLOB和glob在SQLite语句中具有不同的含义。

Comments

  SQLite注释是额外的说明,您可以将其添加到SQLite代码中以提高其可读性,并且它们可以显示在任何位置,但它们不能嵌套。

  SQL注释以两个连续的“-”字符( ASCII 0x2d )开头,并扩展到下一个换行符( ASCII 0x0a )并包括下一个换行符( ASCII 0x0a )或直到输入结束,以先到者为准。

  您也可以使用C风格的注解,以" / * "开头,延伸至下一个" * / "字元对并包括下一个" * / "字元对,或延伸至输入结尾,以先到者为准。c风格的注释可以跨越多行。

sqlite> .help -- This is a single line comment

SQLite语句

  所有SQLite语句都以任何关键字开始,如SELECT, INSERT, UPDATE, DELETE, ALTER, DROP,等。所有语句以分号(;) 结尾.

  SQLite分析语句

 ANALYZE;
  or
  ANALYZE database_name;
  or
  ANALYZE database_name.table_name;

SQLite AND/OR子句

  SELECT column1, column2....columnN
  FROM table_name
  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;
  or
  BEGIN EXCLUSIVE TRANSACTION;

SQLite BETWEEN子句

  SELECT column1, column2....columnN
  FROM table_name
  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 );
  or
  CREATE VIRTUAL TABLE database_name.table_name USING fts3( );

SQLite COMMIT TRANSACTION 语句

  COMMIT;

SQLite COUNT 子句

  SELECT COUNT(column_name)
  FROM table_name
  WHERE CONDITION;

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 table_name
  WHERE column_name EXISTS (SELECT * FROM   table_name );

SQLite EXPLAIN 语句

 EXPLAIN INSERT statement...;
  or 
  EXPLAIN QUERY PLAN SELECT statement...;

SQLite GLOB 子句

  SELECT column1, column2....columnN
  FROM table_name
  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 table_name
  WHERE column_name IN (val-1, val-2,...val-N);

SQLite Like 子句

 SELECT column1, column2....columnN
  FROM table_name
  WHERE column_name LIKE { PATTERN };

SQLite NOT IN 子句

  SELECT column1, column2....columnN
  FROM table_name
  WHERE column_name NOT IN (val-1, val-2,...val-N);

SQLite ORDER BY 子句

  SELECT column1, column2....columnN
  FROM table_name
  WHERE CONDITION
ORDER BY column_name {ASC|DESC};

SQLite PRAGMA语句

 PRAGMA pragma_name;

  For example:

  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;
  or
  ROLLBACK TO SAVEPOINT savepoint_name;

SQLite SAVEPOINT 语句

  SAVEPOINT savepoint_name;

SQLite SELECT 语句

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

SQLite UPDATE 语句

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

SQLite VACUUM 语句

 VACUUM;
  SQLite WHERE Clause
  SELECT column1, column2....columnN
  FROM table_name
  WHERE CONDITION;