SQLite语句(二):INSERT DELETE UPDATE SELECT

一、INSERT语句

SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。

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

在这里,column1, column2,...columnN 是要插入数据的表中的列的名称。

如果要为表中的所有列添加值,也可以不需要在 SQLite 查询中指定列名称。但要确保值的顺序与列在表中的顺序一致。语法如下:

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
复制代码
二、DELETE语句

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

DELETE FROM <表名> [WHERE 条件表达式]
复制代码

示例:

-- 删除Id小于10的数据记录
DELETE FROM Student WHERE Id<10;
复制代码
三、UPDATE语句

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

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

示例:

-- 将Id在(10,100)的Age加1
UPDATE Student SET Age= Age+1 WHERE Id>10 AND Id<100
复制代码
四、SELECT语句

SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。 SQLite 的 SELECT 语句的基本语法如下:

SELECT column1, column2, columnN FROM table_name;
复制代码

SELECT语句可以与WHERE,ORDER BY等子句结合使用。语法如下:

SELECT [ALL | DISTINCT] <目标列表达式>[,<目标列表达式>]…
  FROM <表名或视图名>[,<表名或视图名>]…
  [WHERE <条件表达式>]
  [GROUP BY <列名> [HAVING <条件表达式>]]
  [ORDER BY <列名> [ASC|DESC]…]
复制代码

SQL查询语句的顺序:SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。其中SELECT、FROM是必须的,HAVING子句只能与GROUP BY搭配使用

下图表明了SELECT语句的处理过程:

DISTINCT

DISTINCT 关键字同 SELECT 语句一起使用,可以去除所有重复记录,只返回唯一项。 有时候,数据表中可能会有重复的记录。在检索这些记录的时候,应该只取回唯一的记录,而不是重复的。

使用 DISTINCT 关键字去除查询结果中的重复记录的基本语法如下所示:

SELECT DISTINCT column1, column2,.....columnN 
FROM table_name
WHERE [condition]
复制代码

示例:

SELECT DISTINCT SALARY FROM CUSTOMERS
 ORDER BY SALARY
--去除(SALARY 字段)重复记录。
复制代码
WHERE

WHERE 子句用于有条件地从单个表中取回数据或者将多个表进行合并。 如果条件满足,则查询只返回表中满足条件的值。你可以用 WHERE 子句来过滤查询结果,只获取必要的记录。 WHERE 子句不仅可以用于 SELECT 语句,还可以用于 UPDATE、DELETE 等语句。

SELECT [ALL | DISTINCT] <目标列表达式>[,<目标列表达式>]…
FROM <表名或视图名>[,<表名或视图名>]…
WHERE <条件表达式>
复制代码

在指定条件时,可以使用关系运算符和逻辑运算符,例如 >、<、=、LIKE、NOT 等。

示例:

SELECT ID, NAME, SALARY 
FROM CUSTOMERS
WHERE SALARY > 2000;
复制代码
LIKE

LIKE 子句通过通配符来将一个值同其他相似的值作比较。可以同 LIKE 运算符一起使用的通配符有两个:

  • 百分号(%)
  • 下划线(_)

百分号代表零个、一个或者多个字符。下划线则代表单个数字或者字符。两个符号可以一起使用。

示例:

Glob

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

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

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

示例:

LIMIT和OFFSET

LIMIT和OFFSET限定结果集的大小和范围。LIMIT指定返回记录的最大数量,OFFSET指定偏移的记录数。 LIMIT和OFFSET一起使用时,可以用逗号代替OFFSET关键字。

SELECT * FROM students LIMIT 10 OFFSET 2;
-- 从第二条记录开始选取10条记录
复制代码
GROUP BY

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

示例: 假设有下图的一张表company:

执行语句:

SELECT name, SUM(salary) FROM company GROUP BY name
复制代码

得到如下结果:

HAVING

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

在一个查询中,HAVING 子句必须放在 GROUP BY 子句之后,必须放在 ORDER BY 子句之前。

示例: 还是company,执行语句:

SELECT * FROM company GROUP BY name HAVING count(name) > 2;
复制代码

结果如下:

ORDER BY

SQLite 的ORDER BY子句是用来基于一个或多个列按升序或降序顺序排列数据。 当要对查询结果排序时,使用ORDER BY子句。

SELECT * FROM students ORDER BY age desc;
复制代码

按照age将查询结果降序排列。默认是asc(升序)。

转载于:https://juejin.im/post/5a9a1e48f265da23884c822b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值