SQLite基础:单表操作

avatar
作者
猴君
阅读量:0

文章目录

1. 插入查询

INSERT INTO 语句有两种基本语法:

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN); 

此处,column1、column2、column3、…columnN 指定表中必须插入数据的列的名称。

如果要向表中的所有列添加值,则无需在 SQlite 查询中指定列名称。但是您应该确保值的顺序与表中列的顺序相同。

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN); 

2. SELECT查询

在 SQLite 数据库中,SELECT 语句用于从表中获取数据。当我们创建一个表并向其中插入一些数据时,我们必须在需要时获取数据。这就是使用选择查询的原因。
查看输出

SELECT * FROM STUDENT; 

3. UPDATE更新查询

在 SQLite 中,UPDATE 查询用于修改表中的现有记录。它与 WHERE 子句一起使用以选择特定行,否则所有行都将被更新。

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

实例:

UPDATE STUDENT SET ADDRESS = 'Noida' WHERE ID = 1; 

如果不使用 WHERE 子句,它将修改 STUDENT 表中的所有地址:

UPDATE STUDENT SET ADDRESS = 'Noida'; 

4. 删除查询

在 SQLite 中,DELETE 查询用于从表中删除现有记录。您可以使用它与 WHERE 子句或不使用 WHERE子句。WHERE 子句用于删除特定记录(选定行),否则将删除所有记录。

DELETE FROM table_name WHERE [conditions....................];; 

注意:我们可以在“WHERE”子句中使用 N 个“AND”或“OR”运算符。

DELETE FROM STUDENT WHERE ID = 4; 

如果要删除表中的所有记录,请不要使用 WHERE 子句。

DELETE FROM STUDENT; 

5. WHERE 子句

SQLite WHERE 子句通常与 SELECT、UPDATE 和 DELETE 语句一起使用,以在您从一个表或多个表中获取数据时指定条件。
如果条件满足或为真,则从表中返回特定值。您将使用 WHERE 子句来过滤记录并仅获取必要的记录。
WHERE 子句还用于过滤记录并仅获取特定数据。

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

Note:使用 WHERE 子句和几个比较和逻辑运算符。比如 >、<、=、LIKE、NOT 等。
选择年龄大于或等于 25 且费用大于或等于 10000.00 的学生

SELECT * FROM STUDENT WHERE AGE >= 25 AND FEES >= 10000.00; 

从 STUDENT 表中选择学生,其中姓名以“A”开头与“A”之后的内容无关。

SELECT * FROM STUDENT WHERE NAME LIKE 'A%'; 

从 STUDENT 表中选择年龄为 25 或 27 的所有学生。

SELECT * FROM STUDENT WHERE AGE IN ( 25, 27 ); 

从 STUDENT 表中选择年龄既不是 25 也不是 27 的所有学生。

SELECT * FROM STUDENT WHERE AGE NOT IN ( 25, 27 ); 

6. AND 运算符

SQLite AND 运算符通常与 SELECT、UPDATE 和 DELETE 语句一起使用以组合多个条件。它是一个连接运算符,它在同一 SQLite 语句中与不同的运算符进行多次比较。
它总是与 WHERE 子句一起使用。

SELECT column1, column2, columnN FROM table_name WHERE [condition1] AND [condition2]...AND [conditionN]; 

从“学生”表中选择年龄大于或等于 25 且费用大于或等于 20000.00 的所有学生

SELECT * FROM STUDENT WHERE AGE >= 25 AND FEES >= 15000; 

7. OR 运算符

SQLite OR 运算符通常与 SELECT、UPDATE 和 DELETE 语句一起使用以组合多个条件。OR 运算符始终与 WHERE 子句一起使用,如果两个条件中的任何一个为真,则假定完整条件为真。

SELECT column1, column2, columnN FROM table_name WHERE [condition1] OR [condition2]...OR [conditionN] 

从“学生”表中选择所有学生,其中年龄大于或等于 25 岁或费用大于或等于 15000.00

SELECT * FROM STUDENT WHERE AGE >= 25 OR FEES >= 15000; 

8. LIKE 子句(运算符)

LIKE 运算符用于使用通配符将文本值与模式进行匹配。在搜索表达式与模式表达式匹配的情况
下,LIKE 运算符将返回 true,即 1。
有两个通配符与 LIKE 运算符结合使用:

  • 百分号 (%)
  • 下划线 (_)
    百分号代表零、一或多个数字或字符。下划线代表单个数字或字符。
陈述描述
Where FEES like ‘200%’它将查找以 200 开头的任何值。
Where FEES like ‘%200%’它将查找在任何位置具有 200 的任何值。
Where FEES like ‘_00%’它将找到任何在第二个和第三个位置具有 00 的值。
Where FEES like ‘2%%’它将查找任何以 2 开头且长度至少为 3 个字符的值。
Where FEES like ‘%2’它将找到任何以 2 结尾的值
Where FEES like ‘_2%3’它将找到任何在第二个位置有 2 并以 3 结尾的值
Where FEES like ‘2___3’它将查找以 2 开头并以 3 结尾的五位数字中的任何值

9. GLOB子句(运算符)

SQLite GLOB 运算符使用通配符仅将文本值与模式匹配。当搜索表达式与模式表达式匹配时,GLOB 运算符将返回 true,即 1。
GLOB 运算符遵循 UNIX 的语法来指定以下通配符。

  • 星号 (*):此符号代表零个或多个数字或字符
  • 问号 (?):此符号代表单个数字或字符。
陈述描述
WHERE FEES GLOB ‘200*’查找任何以 200 开头的值
WHERE FEES GLOB ‘200’查找在任何位置具有 200 的任何值
WHERE FEES GLOB ‘?00*’查找第二个和第三个位置为 00 的任何值
WHERE FEES GLOB ‘2??’查找任何以 2 开头且长度至少为 3 个字符的值
WHERE FEES GLOB’*2’查找任何以 2 结尾的值
WHERE FEES GLOB ‘?2*3’查找第二个位置为 2 并以 3 结尾的任何值
WHERE FEES GLOB ‘2???3’查找以 2 开头并以 3 结尾的五位数字中的任何值
SELECT * FROM STUDENT WHERE FEES GLOB '2*'; 

10. LIMIT 限制

SQLite LIMIT 子句用于限制 SELECT 命令从表中获取的数据量,比如5个。
LIMIT 子句也可以与 OFFSET 子句一起使用。

SELECT column1, column2, columnN FROM table_name LIMIT [no of rows]  SELECT column1, column2, columnN FROM table_name LIMIT [no of rows] OFFSET [row num] 

OFFSET 用于不从表中检索偏移记录。它用于某些情况下,我们必须从某个点开始检索记录:
选择3条形式表“学生”从3开始第三的位置。

SELECT * FROM STUDENT LIMIT 3 OFFSET 2; 

11. ORDER BY 子句

SQLite ORDER BY 子句用于根据一列或多列以升序或降序对获取的数据进行排序。
可以在 ORDER BY 子句中使用一列或多列。您使用的列必须出现在列列表中。

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

从“STUDENT”中选择所有记录,其中 FEES 按升序排列:

SELECT * FROM STUDENT ORDER BY FEES ASC; 

从“STUDENT”表中获取所有数据,并按 NAME 和 FEES 对结果进行降序排序:

SELECT * FROM STUDENT ORDER BY NAME, FEES DESC; 

相对第一项进行排序,然后在单个序列中再排序。

12. GROUP BY 子句

SQLite GROUP BY 子句与 SELECT 语句一起使用以将相同的相同元素协作成组。
GROUP BY 子句与 SELECT 语句中的 WHERE 子句一起使用,并位于 ORDER BY 子句之前。

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

使用 GROUP BY 查询了解每个学生的 FEES 总额:

SELECT NAME, SUM(FEES) FROM STUDENT GROUP BY NAME; 

13. HAVING 子句

SQLite HAVING 子句用于指定过滤哪些组结果出现在最终结果中的条件。
WHERE 子句在选定的列上放置条件,而 HAVING 子句在由 GROUP BY 子句创建的组上放置条件。

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

显示名称计数小于 2 的所有记录:

SELECT * FROM STUDENT GROUP BY NAME HAVING COUNT(NAME) < 2; 

14. DISTINCT 子句

SQLite DISTINCT 子句与 SELECT 语句一起使用以消除所有重复记录并仅获取唯一记录。
当表中有多个重复记录时使用它。

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

从“STUDENT”中选择 NAME:

SELECT DISTINCT NAME FROM STUDENT; 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!