SQLite基础:单表操作

发布于:2024-08-08 ⋅ 阅读:(65) ⋅ 点赞:(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;

网站公告

今日签到

点亮在社区的每一天
去签到