一个表中进行数据查询
简单查询(列查询)
概念
简单查询结果包含所有的条目(行),依次展示每条数据,限制表中出现的列。
语法结构
说明
其中[]表示可选填内容
DISTINCT表示去掉重复行的数据
*表示查询所有的列,如果不想查询所有列,则编写具体的列名称。
例子
1
SELECT empno,ename,job,sal FROM emp;
select empno,ename,sal*12 from emp;
更改显示的字段名称
SELECT empno 编号,ename 姓名,sal*12 年薪 FROM emp;
→
2
SELECT job FROM emp;
使用DISTINCT消除重复条目
SELECT DISTINCT job FROM emp;
注意
所有内容都重复才算重复项
限定查询
概念
限定查询在简单查询基础上限制显示条数(行数)
格式
主要通过where子句限制行数,支持六种运算
运算
关系运算
包括
、<、>=、<=、!=、<>(不等于)、==
例子
1
SELECT * FROM emp WHERE sal>2000;
2
SELECT * FROM emp WHERE ename='SMITH';
3
SELECT * FROM emp WHERE job !='SALESMAN';
说明
文本用双引号和单引号引起来,数据库建议用单引号
取值范围运算
概念
可以表示两个数的范围区间(闭区间)
关键字
BETWEEN…AND…
例子
1
SELECT ename,job FROM emp WHERE sal BETWEEN 1200 AND 3000;
2
select * from emp where hiredate between '1981-01-01' and '1981-12-31';
说明
可用于确定数值范围或者时间范围内的数据
时间范围只确定年月日,时间默认00:00:00
基数范围运算
概念
表示是否落在其中的一个选项中
关键字
IN()
NOT IN()
例子
SELECT * FROM emp WHERE empno IN (7369,7566,7839,8899);
SELECT * FROM emp WHERE empno NOT IN (7369,7566,7839,8899);
说明
如果一个数据没有,可用NULL表示,IN不可以用NULL当做参数
NULL是特殊状态,使用专门语句查询
模糊查询
概念
模糊查询制定查询格式,无需进行完整内容匹配
关键字
LIKE
_
英文下划线,表示任意一个字符。
%
百分号,表示任意多个(0,1,2,…,n)字符。
例子
1
SELECT * FROM emp WHERE ename LIKE '_A%';
2
SELECT * FROM emp WHERE ename LIKE '%A%';
空判断
概念
判断是否为空
关键字
IS NULL
NOT IS NULL
IS NOT NULL
例子
1
SELECT * FROM emp WHERE comm IS NULL;
2
SELECT * FROM emp WHERE comm IS NOT NULL;
SELECT * FROM emp WHERE NOT comm IS NULL;
逻辑运算
关键字
与
所有条件都满足,结果满足,用“and”表示
或
满足一个条件,结果满足,用“or”表示
非
结果反转,用“not”表示
例子
1
SELECT * FROM emp WHERE sal<1200 or sal>1300;
2
SELECT * FROM emp WHERE deptno=10 and job='MANAGER';
3
SELECT * FROM emp WHERE NOT job='CLERK';
查询排序
SQLiteSpy提供一键排序,点击表名切换排序方式
语法格式
排序方式
升序
ASC(ascend )
降序
DESC(descend)
例子
1
SELECT * FROM emp ORDER BY sal DESC;
说明
多个字段排序中,如果第一字段值相同,则使用第二字段值的排序规则。
分页查询
概念
为了更好地显示大量的数据,可一次性只展示一部分数据,采用多页的形式
关键字
LIMIT
表示结果的数量
OFFSET
表示丢弃前几条记录
语法格式
例子
1
--查询公司所有雇员的信息,按照薪金从高到底排序。
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;
例子
1
SELECT * FROM emp LIMIT 6 OFFSET 6;
2
select * from xianka limit 60 offset 11*60;