Sqlite3 常用语句 - shujucn/ioscoding GitHub Wiki

Creat Table

CREATE TABLE 语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型

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

Delete table

DROP TABLE 语句用来删除表定义及其所有相关数据、索引、触发器、约束和该表的权限规范。一但一个表使用此命令被删除,表中所有信息也将永远丢失。

DROP TABLE database_name.table_name;

Insert

INSERT INTO 语句用于向数据库的某个表中添加新的数据行。 INSERT INTO 语句有两种基本语法,如下所示:

  1. INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN); column1为列名
  2. INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

SELCT

SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。 使用方法:

1  SELECT column1, column2, columnN FROM table_name;
2 SELECT * FROM table_name;

SQLite 算术运算符

假设变量 a=10,变量 b=20,则:

运算符 描述 实例
+ 加法 - 把运算符两边的值相加 a + b 将得到 30
- 减法 - 左操作数减去右操作数 a - b 将得到 -10
* 乘法 - 把运算符两边的值相乘 a * b 将得到 200
/ 除法 - 左操作数除以右操作数 b / a 将得到 2
% 取模 - 左操作数除以右操作数后得到的余数 b % a will give 0

SQLite 表达式

SELECT column1, column2, columnN FROM table_name WHERE [CONTION | EXPRESSION];

WHERE

WHERE 子句用于指定从一个表或多个表中获取数据的条件。如果满足给定的条件,即为真(true)时,则从表中返回特定的值。您可以使用WHERE子句来过滤记录,只获取需要的记录。WHERE子句不仅可用在SELECT语句中,它也可用在 UPDATE、DELETE 语句中

SELECT column1, column2, columnN 
FROM table_name 
WHERE [condition]

AND/OR

AND 和 OR 运算符用于编译多个条件来缩小在 SQLite 语句中所选的数据。

  • AND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。使用 AND 运算符时,只有当所有条件都为真(true)时,整个条件为真(true)。例如,只有当 condition1 和 condition2 都为真(true)时,[condition1] AND [condition2] 为真(true)
  • OR 运算符也用于结合一个 SQL 语句的 WHERE 子句中的多个条件。使用 OR 运算符时,只要当条件中任何一个为真(true)时,整 个条件为真(true)。例如,只要当 condition1 或 condition2 有一个为真(true)时,[condition1] OR [condition2] 为真(true)。

Update

UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。 带有 WHERE 子句的 UPDATE 查询的基本语法如下:

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

Delete

DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查询来删除选定行,否则所有的记录都会被删除。下面的语句table所有记录都会被删除。

DELETE FROM table_name

带有 WHERE 子句的 DELETE 查询的基本语法如下:

DELETE FROM table_name
WHERE [condition];

可以使用 AND 或 OR 运算符来结合 N 个数量的条件。

Like

LIKE 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1。这里有两个通配符与 LIKE 运算符一起使用:

  • 百分号 (%)
  • 下划线 () 百分号(%)代表零个、一个或多个数字或字符。下划线()代表一个单一的数字或字符。这些符号可以被组合使用。

SELECT FROM table_name WHERE column LIKE 'XXXX%'

`or `

`SELECT FROM table_name`
`WHERE column LIKE '%XXXX%'`

`or`

`SELECT FROM table_name`
`WHERE column LIKE 'XXXX_'`

`or`

`SELECT FROM table_name`
`WHERE column LIKE '_XXXX'`

`or`

`SELECT FROM table_name`
`WHERE column LIKE '_XXXX_'`

例如:

语句 描述
WHERE SALARY LIKE '200%' 查找以 200 开头的任意值
WHERE SALARY LIKE '%200%' 查找任意位置包含 200 的任意值
WHERE SALARY LIKE '_00%' 查找第二位和第三位为 00 的任意值
WHERE SALARY LIKE '2_%_%' 查找以 2 开头,且长度至少为 3 个字符的任意值
WHERE SALARY LIKE '%2' 查找以 2 结尾的任意值
WHERE SALARY LIKE '_2%3' 查找第二位为 2,且以 3 结尾的任意值
WHERE SALARY LIKE '2___3' 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值

Glob

GLOB 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,GLOB 运算符将返回真(true),也就是 1。与 LIKE 运算符不同的是,GLOB 是大小写敏感的,对于下面的通配符,它遵循 UNIX 的语法。

  • 星号 (*)
  • 问号 (?)

星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用。

  • 和 ? 的基本语法如下:

SELECT FROM table_name WHERE column GLOB 'XXXX*'

`or `

`SELECT FROM table_name`
`WHERE column GLOB '*XXXX*'`

`or`

`SELECT FROM table_name`
`WHERE column GLOB 'XXXX?'`

`or`

`SELECT FROM table_name`
`WHERE column GLOB '?XXXX'`

`or`

`SELECT FROM table_name`
`WHERE column GLOB '?XXXX?'`

`or`

`SELECT FROM table_name`
`WHERE column GLOB '????'`

您可以使用 AND 或 OR 运算符来结合 N 个数量的条件。在这里,XXXX 可以是任何数字或字符串值。 实例。 下面一些实例演示了 带有 '*' 和 '?' 运算符的 GLOB 子句不同的地方:

语句 描述
WHERE SALARY GLOB '200*' 查找以 200 开头的任意值
WHERE SALARY GLOB '200' 查找任意位置包含 200 的任意值
WHERE SALARY GLOB '?00*' 查找第二位和第三位为 00 的任意值
WHERE SALARY GLOB '2??' 查找以 2 开头,且长度至少为 3 个字符的任意值
WHERE SALARY GLOB '*2' 查找以 2 结尾的任意值
WHERE SALARY GLOB '?2*3' 查找第二位为 2,且以 3 结尾的任意值
WHERE SALARY GLOB '2???3' 查找长度为 5 位数,且以 2 开头以 3 结尾的任意值

LIMIT

LIMIT 子句用于限制由 SELECT 语句返回的数据数量

ELECT column1, column2, columnN FROM table_name LIMIT [no of rows]

ORDER BY

ORDER BY子句是用来基于一个或多个列按升序或降序顺序排列数据.

SELECT column-list FROM table_name [WHERE condition] [ORDER BY column1, column2, .. columnN] [ASC | DESC];

GROUP BY

GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组。 在 SELECT 语句中,GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前。

SELECT column-list FROM table_name WHERE [ conditions ] GROUP BY column1, column2....columnN ORDER BY column1, column2....columnN

HAVING

HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。 WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。 下面是 HAVING 子句在 SELECT 查询中的位置:

SELECT FROM WHERE GROUP BY HAVING ORDER BY

在一个查询中,HAVING 子句必须放在 GROUP BY 子句之后,必须放在 ORDER BY 子句之前。下面是包含 HAVING 子句的 SELECT 语句的语法:

SELECT column1, column2 FROM table1, table2 WHERE [ conditions ] GROUP BY column1, column2 HAVING [ conditions ] ORDER BY column1, column2