【SQL 筛选】基于SQLite

SQL编写规则

  1. 关键字大写,非关键字小写。SQL 是 不区分大小写 的,但推荐关键字 大写,从而与表名、列名等信息区分开来;
  2. 一条子句占据一行,过长可换行。SQL 是 忽略空格与换行 的,但我们推荐一条子句占据一行(若子句过长也可根据情况换行),使代码结构更清晰;
  3. 一条完整的 SQL 语句后,需要加上一个英文分号 ;,表明语句的结束。
  4. SQL 中可以用两个中划线 -- 在代码中添加 注释,注释中的内容 不会被执行

1、SELECT语句--从指定数据表中选择若干字段

  • SELECT name(字段名)
  • FROM staff;(表名)


数据库管理软件在运行 SQL 语句时,会 忽略 所有多余空白字符,比如空格、换行等等。也就是说,SQL 语句可以写成长长的一行,也可以分散着写在多行里。

-- 写法一:
SELECT name FROM staff;

-- 写法二:
SELECT name
FROM staff;

-- 写法三:
SELECT
name
FROM
staff;

1、运用 SELECT ... FROM ... 子句,让 SQLite 把 staff 数据表中的 name 列挑选出来:

SELECT name FROM staff;

2、如果从 staff 数据表中选择出 nameage 和 hire_date 这三列的话,只需要把这三列的名字作为待选字段,依次写在 SELECT 关键字后面,列名与列名之间用英文逗号 , 隔开即可。

提示:为了方便阅读,逗号 , 后最好加上一个空格。最后一个列名后面不可以加逗号

SELECT name, age, hire_date

FROM staff;

3、那如果想选择一张数据表中的 所有列 该怎么办?

SELECT *

FROM staff;

第一行中的符号 * 表示“所有” 的含义。这种选择所有列的方法,不需要指定列名,因此实际应用中,我们常常用该方法快速认识一张陌生的数据表。

 2、DISTINCT

那该如何在目前查询结果的基础上,把那些重复出现的部门名剔除掉呢?

这就需要一个新的关键字——DISTINCT 关键字来帮忙了。单词 distinct 本身就有“独特”的含义,放到 SQL 中,DISTINCT关键字表明在选择时,只保留 首次 出现的组合,在位置上,则需要紧紧跟在 SELECT 关键字之后。

当我们指定用 DISTINCT 模式进行选择时,那么 SQLite 会把首次出现的 部门、职位组合 记录下来,剔除掉重复的组合

3、WHERE子句--按给定条件筛选数据

  • SELECT 字段名
  • FROM 表名
  • WHERE 筛选条件;

WHERE 子句跟在 FROM子句之后

SELECT   event_name, site, event_type
FROM     events
WHERE    event_name = '蓝莓音乐节';
  1. 这条语句的含义是:在 events 表中,找到名为“蓝莓音乐节”的演出,并返回对应行中 event_namesiteevent_type 这三列的数据。
  2. 这里的筛选条件:event_name = '蓝莓音乐节',意思是 event_name 列的值与 '蓝莓音乐节' 相等。

4、BETWEEN 操作符--筛选所有在给定连续范围内的值

  • WHERE 受条件约束的字段 (eg:price)
  • BETWEEN 范围最小值 AND 范围最大值(构成了连续的数值范围)
--数值筛选:筛选出 price 列的值大于等于 100,小于等于 200 的行
--AND 左右的两个数字构成了一个连续的数值区间,作为查询范围
SELECT  *
FROM    events
WHERE   price BETWEEN 100 AND 200;

--日期筛选:在 events 表中筛选出所有 10 月期间的演出,并返回所有列的信息
SELECT  *
FROM    events
WHERE   event_time BETWEEN '2021-10-01' AND '2021-10-31';

5、LIKE操作符--按搜索模式筛选文本

  • WHERE 受条件约束的字段(eg:venue)
  • LIKE "北京-%'; (文本搜索模式)
--文本筛选
SELECT  *
FROM    events
WHERE   site LIKE '北京-%';

--筛选所有在 event_name 列的文本中包含“派大星”三个字的行
--并返回 event_name、event_time、site 和 price 四列的信息
SELECT  event_name, event_time, site, price
FROM    events
WHERE   event_name LIKE '%派大星%';

--高级筛选

--AND 操作符
--从 events 表中筛选出所有价格小于 300 元的音乐会。
SELECT  *
FROM    events
WHERE   event_type = '音乐会' AND price < 300;

--OR 操作符
--筛选出 events 表中 2021 年 10 月或 12 月的所有演出
SELECT  *
FROM    events
WHERE   event_time BETWEEN '2021-10-01' AND '2021-10-31'
   OR   event_time BETWEEN '2021-12-01' AND '2021-12-31';

--NOT 操作符
--筛选出 events 表中 不在 北京举办的演出
SELECT  *
FROM    events
WHERE   NOT site LIKE '北京-%';

 

6、IN操作符--筛选所有在给定离散范围内的值

  • WHERE 受条件约束的字段(eg:price)
  • IN (100, 200, 300);(不同的值用逗号隔开,允许值的范围用括号包裹)

--从 events 表中,筛选出在 北京-糖果大楼、上海-人民体育场 和 广州-蓓蕾剧院 举办的演出
SELECT  *
FROM    events
WHERE   site IN ('北京-糖果大楼', '上海-人民体育场', '广州-蓓蕾剧院');

 用 NOT 与 IN 操作符一起,组成 NOT IN,用于筛选出某一列的值不在某个范围内的数据。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于安卓的学生选课系统使用SQLite数据库作为本地存储的技术需求。以下是一些与SQLite相关的技术需求: 1. SQLite数据库集成:学生选课系统需要将SQLite数据库集成到安卓应用中,以便存储和管理学生、课程和选课相关的数据。可以使用SQLite提供的API进行数据库的创建、表的设计以及数据的增删改查操作。 2. 数据库设计与管理:需要设计和管理数据库表结构,包括学生信息表、课程信息表、选课记录表等。可以使用SQLite的数据定义语言(DDL)来创建和维护表结构,确保数据的一致性和完整性。 3. 数据库操作:学生选课系统需要实现对SQLite数据库的各种操作,包括插入新的学生信息、查询课程信息、更新选课记录等。可以使用SQLite提供的数据操作语言(DML)和数据控制语言(DCL)来完成这些操作。 4. 数据库连接与事务管理:在安卓应用中,需要建立与SQLite数据库的连接,并实现事务管理,以确保数据的完整性和一致性。可以使用SQLiteOpenHelper类来管理数据库连接和版本控制,使用事务来处理复杂的数据操作。 5. 数据库查询与过滤:学生选课系统可能需要根据不同的条件对数据库进行查询和过滤,以获取特定的学生信息或课程信息。可以使用SQLite的查询语言(SQL)来编写查询语句,并通过索引和条件筛选来优化查询性能。 6. 数据库备份与恢复:为了确保数据的安全性和可靠性,学生选课系统可以实现数据库的备份和恢复功能。可以使用SQLite提供的备份和恢复API,将数据库的备份保存到本地或云端,并在需要时进行恢复。 综上所述,基于安卓的学生选课系统使用SQLite作为本地存储的技术需求包括数据库集成、数据库设计与管理、数据库操作、数据库连接与事务管理、数据库查询与过滤以及数据库备份与恢复等方面。这些技术需求可以帮助实现安卓应用与SQLite数据库的交互,实现学生选课系统的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值