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 语句有两种基本语法,如下所示:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);
column1为列名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