文章目录
- 1. 插入查询
- 2. SELECT查询
- 3. UPDATE更新查询
- 4. 删除查询
- 5. WHERE 子句
- 6. AND 运算符
- 7. OR 运算符
- 8. LIKE 子句(运算符)
- 9. GLOB子句(运算符)
- 10. LIMIT 限制
- 11. ORDER BY 子句
- 12. GROUP BY 子句
- 13. HAVING 子句
- 14. DISTINCT 子句
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;