一,数值查询
1.简单查询
执行语句 SELECT ....... FROM ..;
在文件后 空格 新名称 即为改名
消除重复项,在SELECT后增加DISTINCT
DISTINCT表示去掉重复行的数据
2.限定查询
关系运算是最简单的运算符号,包括: >、<、>=、<=、!=、<>(不等于)、==
取值范围运算使用
BETWEEN...AND... 可以表示两个数的范围区间,这个区间是闭区间,包含两端。
基数范围运算
基数范围运算使用IN关键字,表示符合给定的多个数字之一。
如果一个数据没有,可以使用NULL表示,IN给的待选数据中不允许出现NULL,NULL是一种特殊的数据状态,需要使用专用语句进行判断。
模糊查询
模糊查询可以制定查询的格式,无需进行完整的内容匹配,主要使用LIKE关键字,配合两个符号进行标记。
LIKE (不区分大小写)
_ 英文下划线 ,表示任意一个字符
% 百分号 表示任意多个(0、1、2....)字符
GOLB(区分大小写)
?问号代表一个单一的数字或字符。
*星号代表零个、一个或多个数字或字符。。
空判断
NULL是一种特殊的数值,使用IS NULL来进行判断。
在数据库中,反转逻辑结果使用NOT关键字,IS NULL的反转格式有两种:
● NOT IS NULL(注意NOT 的位置)
SELECT*FROM emp WHERE NOT comm IS NULL;
● IS NOT NULL
逻辑运算
计算机中都有逻辑运算:与或非。
与:所有的条件都满足,结果才满足,在数据库中与使用AND表示。
或:只要满足一个条件,结果就满足,在数据库中或使用OR表示。
非:结果反转,在数据库中非使用NOT表示。
【练习】
3. 查询排序
SQLiteSpy提供了一键排序的功能,只需要点击表名就可以切换顺序或倒序排序的方式。
因为以后数据库是在代码中操作的,因此仍然需要学习语法规则,查询排序的语法结构如下所示。
两种排序的方式:
● 升序 ASC
● 降序 DESC
【例子】查询所有雇员的信息,要求按照工资从高到低排序。
分析:只要是排序题,排序永远是最后一步。
Plain Text复制代码
SELECT * FROM emp ORDER BY sal DESC;
可以看到有的人工资是一样,排序支持多个字段排序,如果第一字段值相同,则使用第二字段值的排序规则。
【例子】查询所有雇员的信息,要求按照工资从高到低排序,如果工资相同,则按照雇佣日期从早到晚排序。
【练习】
查询所有雇员的信息,结果按照年薪(基本工资x12)排序,年薪越高的越靠前
SELECT * INCOM FROM EMP ORDER BY (SAL*12) DESC;
注意 : SELECT中出现了 * ,之后不允许写其他列名。
查询所有柜员的信息,同时按照工资从高到低排序。
SELECT * FROM EMP WHERE JOB='CLERK' ORDER BY SAL DESC;
查询所有20部门的雇员信息,要求按照雇员日期从晚到早排序。
SELECT * FROM EMP WHERE DEPTNO=20 ORDER BY HIREDATE DESC;
查询所有10部门和30部门的雇员信息,要求按照雇员编号降序排序。
SELECT * FROM EMPWHERE DEPTNO=10 OR DEPTNO=30 ORDER BY EMPNO DESC;
4.分页查询
1.为了更好地显示大量的数据,可以一次性只展示一部分数据,采用多页的形式,这种查询就是分页查询。
SQLite中使用LIMIT子句与OFFSET子句限制查询的返回数量,实现分页查询,语法格式如下。
其中LIMIT表示结果的数量,OFFSET表示丢弃前几条记录,可以视情况使用。
查询工资薪水最高的三个雇员信息
SELECT*FROM emp ORDERBY sal DESCLIMIT3;
分析:授课过程中不会把分页查询加入到最基础的子句顺序中,但是实际上其执行顺序在ORDER BY之后,所有分页查询题可以先不考虑分页的问题。
查询公司最早雇佣的三个人的信息。
SELECT * FROM emp ORDER BY hiredate LIMIT 3;
查询公司工资第6-10名的雇员信息。
真正要使用分页查询可以基于以下的公式:
设每页显示的条数为n,当前页码为m,得分页查询公式为:
SELECT * FROM 表名 LIMIT n OFFSET (m-1)*n;