数据库--数值查询

文章介绍了SQL查询中的基本操作,包括使用DISTINCT去除重复项,BETWEEN和IN进行范围查询,LIKE进行模糊查询,ISNULL处理NULL值,以及如何利用AND、OR和NOT进行逻辑运算。此外,还讲解了ORDERBY用于排序,LIMIT和OFFSET实现分页查询的方法。
摘要由CSDN通过智能技术生成

一,数值查询
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;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值