oracle数据库学习03

本文介绍了Oracle数据库中进行限定查询的基本语法和操作,包括使用WHERE子句进行条件筛选,如范围查询、判断NULL、IN与NOT IN操作,以及LIKE进行模糊查询。举例展示了不同查询场景,如查询特定工资范围、部门职位等。

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

限定查询

当数据量过大,全部数据无法直接查看,这时需针对所需数据进行筛选,而筛选就是限定查询的功能。

限定查询的语法格式:

SELECT [DISTINCT] * | 列名称 [AS] [列别名] FROM 表名称
[ WHERE 条件(s)];

编写where 子句判断条件时,可以同时指定多个判断条件的连接,而连接主要通过逻辑运算符实现,逻辑运算符有 **与(AND) 、或(OR) 、非(NOT)**三种

1. 统计出基本工资高于1500的全部员工信息
SELECT * FROM emp WHERE sal > 1500;

对于SQL语法而言,具备三个子句

第一步:执行FROM子句,来控制数据来源;
第二步:执行WHERE子句,使用限定符进行数据行的过滤
第三步:执行SELECT子句,确定要显示的数据列。

对数据进行限定查询

2. 查询所有不是办事员的雇员信息

 1. SELECT  *   FROM emp WHERE job <> 'CLERK'
 2. SELECT  *   FROM emp  WHERE job!='CLERK';

3.查询工资范围在1500-3000的全部雇员信息

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

4. 查询10部门中的经理或者20部门的业务员的信息

 SELECT  *   FROM  emp WHERE (deptno = 10 AND job = 'MANAGER') OR (deptno = 20 AND job = 'CLERK');

5.查询不是办事员的且基本工资大于2000的全部雇员信息

 1. SELECT * FROM emp WHERE job != 'CLERK'  AND sal >2000
 2.  SELECT * FROM emp WHERE NOT(job = 'CLERK'  OR  sal <= 2000);2. SELECT * FROM emp WHERE NOT(job = 'CLERK'  OR  sal <= 2000);

范围查询

3.查询工资范围在1500-3000的全部雇员信息

 SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000 ;

6.查询在1981 年 雇佣的全部雇员信息

SELECT * FROM emp WHERE hiredate BETWEEN '01-1月 -81' AND ‘31-12月 -81’;

判断内容是否为null : IS NULL、IS NOT NULL

语法 :
判断为NULL : 字段 | 值 IS NULL;
判断不为NULL : 字段| 值 IS NOT NULL (NOT 字段 | 值 IS NULL)

7.询收取佣金的员工的不同工作

SELECT  DIETINCT job FROM emp WHERE comm IS NOT NULL;

列表范围查询: IN 、 NOT IN

在指定数据范围内: 字段 | 值 IN (值,…)
不在指定数据范围内: 字段 | 值 NOT IN (值,…)

LIKE 模糊查询

语法
满足模糊查询: 字段 | 值 LIKE 匹配标记
不满足模糊查询: 字段 | 值 NOT LIKE 匹配标记

如果想对某一列进行模糊查询,可以使用LIKE 子句完成,通过LIKE 可以进行关键字的模糊查询,在LIKE 子句中有两个通配符
百分号(%):可匹配任意类型和长度的字符,如果是中文则使用两个百分号(%%);
下划线(_):可匹配单个任意字符,常用来限制表达式的字符长度;

8.查询雇员姓名是以S靠头的全部雇员信息

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

9.查询雇员姓名第二个字母是M 的全部雇员信息

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

10.查询雇员姓名长度为6或者超过6个的雇员信息

SELECT  *  FROM  emp   WHERE enmae LIKE '______%';(6个下划线)

11.(集合以上知识)查询10部门中的经理或者20部门的业务员,既不是经理又不是业务员但其佣金大于或等于2000的所有员工的详细资料,并且要求这些雇员的姓名之中包含字母S或字母K

SELECT *  FROM emp 
WHERE ((deptno = 10 AND job = 'MANAGER' ) OR (deptno = 20 AND  job = 'CLERK') 
             OR (job NOT  IN ('MANAGER','CLERK') AND sal >=2000))  AND (ename LIKE '%S%' OR ename LIKE '%K%');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值