Oracle学习笔记(三)——限定查询

本文详细介绍了Oracle数据库中进行限定查询的各种方法,包括关系运算符、逻辑运算符、范围运算符、空判断以及模糊查询。通过实例展示了如何使用BETWEEN、LIKE、IN等操作符筛选数据,并强调了查询顺序和NULL值的处理。文章旨在帮助读者全面理解并熟练运用Oracle的限定查询功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle学习笔记(三)——限定查询

对数据行的筛选/掌握限定查询符号的使用

语法结构:
SELECT [DISTINCT] * | 列名称 [别名],列名称 [别名],列名称[别名]…(第三个执行,针对数据的筛选操作)
FROM 表名称 [别名](第一个执行,确定数据来源)
WHERE 过滤条件(第二个执行,确定满足条件的数据行)

限定查询符号:

关系运算符:>、<、>=、<=、<>(!=);
逻辑运算符:AND、OR、NOT;
范围运算符:BETWEEN…AND;
谓词范围:IN、NOT IN;
空判断:IS NULL、IS NOT NULL;
模糊查询:LIKE;

关系运算符:大小关系比较操作。

范例:查询基本工资高于1500的雇员的信息

SELECT *
FROM emp
WHERE SAL>1500;

范例:查询smith的基本信息(数据区分大小写)

SELECT *
FROM emp
WHERE ENAME=’SMITH’;

范例:查询工资5000的雇员信息(=可以在数字上使用,也可以在字符串上使用)

SELECT *
FROM emp
WHERE sal=5000;

范例:查询职位不是销售人员的编号姓名职位(<>)

SELECT empno,ename,job
FROM emp
WHERE job!='SALESMAN';

逻辑运算符:与连接,或连接

范例:查询出工资范围在1500~3000之间的雇员信息

SELECT *
FROM emp
WHERE sal>=1500 AND SAL<=3000;

范例:查询工资大于2000或者职位是办事员所有雇员信息

SELECT *
FROM emp
WHERE sal>=2000 OR JOB='CLERK';

范例:查询所有工资小于2000的雇员信息

SELECT *
FROM emp
WHERE sal<2000;
SELECT *
FROM emp
WHERE NOT sal>=2000;

范围运算符:between and;
BETWEEN 最小值(数字,日期,字符串也可以,字符串按照首字母)AND 最大值(此语句包含最大最小值)

范例:查询工资在1500~2000之间的雇员信息

SELECT *
FROM emp
WHERE  SAL BETWEEN 1500 AND 2000;

范例:查询所有在1981年雇佣的雇员

SELECT *
FROM emp
WHERE  HIREDATE BETWEEN '01-1月-1981' AND '31-12月-1981';

空判断,空在数字列上不表示0

对于NULL的判断不能用关系运算符,只能用IS NULL或者IS NOT NULL

范例:查询所有领取佣金的雇员信息(佣金存在,不为空)

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

谓词范围
IN操作符类似于BETWEEN AND (给了一个大范围),IN(指定的可选范围)IN操作最简短。

范例:查询出雇员编号是7369、7566、7788、9999的雇员信息

SELECE *
FROM emp
WHERE EMPNO=7369 OR EMPNO=7566 OR EMPNO=7788 OR EMPNO=9999;
SELECE *
FROM emp
WHERE EMPNO IN(7369,7566,7788,9999);

NOT IN判断的时候如果范围里包含NULL,那么不会有结果返回。
(如果查询所有的数据行几乎是判了一个程序的死刑)
NOT IN NULL即为查询不为空,查询全部

模糊查询
LIKE(输入关键字查找)在使用LIKE时候可以用两个通配符

说明一:LIKE可以应用在各种数据类型上。
说明二:如果不设置关键字,表示查询全部。

范例:查询姓名是以A开头的雇员信息

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

范例:查询姓名第二个字母是A的雇员信息

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

范例:查询姓名任意位置包含A的雇员信息

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

(限定查询)总结

  1. 执行顺序:FROM(表)WHERE(行)SELECT(列)。
  2. SELECT中定义的别名无法在WHERE子句中使用。
  3. 要求完整掌握各个限定查询符号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值