1. 简单查询(列查询)
简单查询的结果中包含所有的条目(行),依次展示每条数据,唯一能做的是限制表中出现的列。
语法如下:MELECT 限制列
FROM 表格(emp) 数据来源
DISTINCT表示去掉重复行的数据
*表示查询所有的列,如果不想查询所有列,则编写具体的列名称。
【例子】查询所有雇员的编号(empno)、姓名(ename)、职位(job)、基本工资(sal)。
SELECT empno,ename,job,sal
FROM emp;
2. 限定查询
限定查询是在简单查询的基础上限制显示的条数(行数),其语法格式如下。
语法如下:MELECT 限制列
FROM 表格(emp) 数据来源
WHERE 限定条件
2.1 关系运算
关系运算是最简单的运算符号,包括:
>、<、>=、<=、!=、<>(不等于)、==
【例子】查询公司工资高于2000的员工信息。
SELECT * FROM emp WHERE sal>2000;
2.2 取值范围运算
取值范围运算使用BETWEEN...AND...
可以表示两个数的范围区间,这个区间是闭区间,包含两端。
【例子】查询所有在1981年雇佣的雇员信息。
分析:1981年1月1日-1981年12月31日
SELECT * FROM emp
WHERE hiredate BETWEEN '1981-01-01' AND '1981-12-31';
2.3 基数范围运算
基数范围运算使用IN关键字,表示符合给定的多个数字之一。
【例子】查询出雇员编号为7369、7566、7839、8899(不在)的雇员信息。
SELECT * FROM emp WHERE empno IN (7369,7566,7839,8899);
2.4 模糊查询
模糊查询可以制定查询的格式,无需进行完整的内容匹配,主要使用LIKE关键字,配合两个符号进行标记。
- _
英文下划线,表示任意一个字符。
- %
百分号,表示任意多个(0,1,2,......,n)字符。
【例子】查询所有姓名是A开头的雇员信息。
SELECT * FROM emp WHERE ename LIKE 'A%';
2.5 空判断
NULL是一种特殊的数值,使用IS NULL来进行判断。
在数据库中,反转逻辑结果使用NOT关键字,IS NULL的反转格式有两种:
- NOT IS NULL
- IS NOT NULL
【例子】查询不领取佣金(comm)的雇员信息。
SELECT * FROM emp WHERE comm IS NULL;
2.6 逻辑运算
计算机中都有逻辑运算:与或非。
与:所有的条件都满足,结果才满足,在数据库中与使用AND表示。
或:只要满足一个条件,结果就满足,在数据库中或使用OR表示。
非:结果反转,在数据库中非使用NOT表示。
【例子】查询所有工资高于1300的销售信息。
分析:需要同时满足职位是销售 且 工资大于1300
SELECT * FROM emp WHERE job='SALESMAN' AND sal>1300;
3. 查询排序
SQLiteSpy提供了一键排序的功能,只需要点击表名就可以切换顺序或倒序排序的方式。
语法如下:MELECT 列(别名),列(别名) 限制列
FROM 表格(emp) 数据来源
WHERE 限定条件
ORDER BY - 字段 - ASC升序/DESC降序 数据排序
两种排序的方式:
- 升序 ASC
- 降序 DESC
【例子】查询所有雇员的信息,要求按照工资从高到低排序。
分析:只要是排序题,排序永远是最后一步。
SELECT * FROM emp ORDER BY sal DESC;
4. 分页查询
为了更好地显示大量的数据,可以一次性只展示一部分数据,采用多页的形式,这种查询就是分页查询。
SQLite中使用LIMIT子句与OFFSET子句限制查询的返回数量,实现分页查询,语法格式如下。
语法如下:MELECT 列(别名),列(别名) 限制列
FROM 表格(emp) 数据来源
LIMIT(no of rows) OFFSET(row num)
其中LIMIT表示结果的数量,OFFSET表示丢弃前几条记录,可以视情况使用。
【例子】
1. 查询前五个雇员的信息。
SELECT * FROM emp LIMIT 5;
2. 查询工资薪水最高的三个雇员信息。
分析:授课过程中不会把分页查询加入到最基础的子句顺序中,但是实际上其执行顺序在ORDER BY之后,所有分页查询题可以先不考虑分页的问题。
此题可以先变为“查询所有人的信息,按照工资降序排布”
SELECT * FROM emp ORDER BY sal DESC;
最后,筛选出前三个数据。
SELECT * FROM emp ORDER BY sal DESC LIMIT 3;
3. 查询公司前一半雇佣(早期雇佣)的雇员信息。
SELECT * FROM emp ORDER BY hiredate ASC LIMIT 7;
此题能做出的前提是已知14人,如果对总人数未知,则需要先获得总人数。总人数的获取在后续课程中会介绍相关的函数。
4. 查询公司薪金第四名到第八名的雇员信息。
--查询公司所有雇员的信息,按照薪金从高到底排序。
SELECT * FROM emp ORDER BY sal DESC;
--保留五个人
SELECT * FROM emp ORDER BY sal DESC LIMIT 5;
--向后移动三个人
SELECT * FROM emp ORDER BY sal DESC LIMIT 5 OFFSET 3;
真正要使用分页查询可以基于以下的公式:
设每页显示的条数为n,当前页码为m,得分页查询公式为:
SELECT * FROM 表名 LIMIT n OFFSET (m-1)*n;
【例子】每页显示6条数据,查询第二页的内容。
分析:n=6,m=2
SELECT * FROM emp LIMIT 6 OFFSET 6;
—————————— —————
版权声明:本文为CSDN博主「qq_40503722」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40503722/article/details/129756996