第二章 单表查询

本文介绍了SQL查询的基础知识,包括简单查询用于获取所有行和指定列,使用DISTINCT去除重复数据,以及通过WHERE子句进行限定查询,如关系运算、BETWEEN、IN、LIKE、ISNULL等。还涉及了查询排序、分页查询的概念和实现方法,如ORDERBY进行升序或降序排列,LIMIT和OFFSET实现数据分页。
摘要由CSDN通过智能技术生成

一个表中进行数据查询


简单查询(列查询)

概念

简单查询结果包含所有的条目(行),依次展示每条数据,限制表中出现的列。
image.png

语法结构

image.png

说明

其中[]表示可选填内容
DISTINCT表示去掉重复行的数据
*表示查询所有的列,如果不想查询所有列,则编写具体的列名称。

例子

1

SELECT empno,ename,job,sal FROM emp;

image.png

select empno,ename,sal*12 from emp;

更改显示的字段名称

SELECT empno 编号,ename 姓名,sal*12 年薪 FROM emp;

image.pngimage.png

2

SELECT job FROM emp;

image.png
使用DISTINCT消除重复条目

SELECT DISTINCT job FROM emp;

image.png

注意

所有内容都重复才算重复项

限定查询

概念

限定查询在简单查询基础上限制显示条数(行数)

格式

image.png
主要通过where子句限制行数,支持六种运算

运算

关系运算

包括

、<、>=、<=、!=、<>(不等于)、==

例子
1
SELECT * FROM emp WHERE sal>2000;

image.png

2
SELECT * FROM emp WHERE ename='SMITH';

image.png

3
SELECT * FROM emp WHERE job !='SALESMAN';

image.png

说明

文本用双引号和单引号引起来,数据库建议用单引号

取值范围运算

概念

可以表示两个数的范围区间(闭区间)

关键字

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';

image.png

说明

可用于确定数值范围或者时间范围内的数据
时间范围只确定年月日,时间默认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%';

image.png

2

SELECT * FROM emp WHERE ename LIKE '%A%';

image.png

空判断

概念

判断是否为空

关键字

IS NULL
NOT IS NULL
IS NOT NULL

例子

1

SELECT * FROM emp WHERE comm IS NULL;

image.png

2

SELECT * FROM emp WHERE comm IS NOT NULL;
SELECT * FROM emp WHERE NOT comm IS NULL;

image.png

逻辑运算

关键字

所有条件都满足,结果满足,用“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提供一键排序,点击表名切换排序方式


语法格式

image.png

排序方式

升序

ASC(ascend )

降序

DESC(descend)

例子

1

SELECT * FROM emp ORDER BY sal DESC;

image.png

说明

多个字段排序中,如果第一字段值相同,则使用第二字段值的排序规则。

分页查询

概念

为了更好地显示大量的数据,可一次性只展示一部分数据,采用多页的形式

关键字

LIMIT
表示结果的数量
OFFSET
表示丢弃前几条记录

语法格式

image.png

例子

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值