Oracle之限定查询

news/2024/12/26 19:37:29/

文章目录

    • 1. 查询出工资大于`1000`的所有雇员信息.
    • 2. 查询出姓名是Smith的雇员信息
    • 3. 查询出工资在1000~1500之间的所有非销售人员的编号、姓名、职位、工资
    • 4. 查询出所有不是办事员(CLERK)的员工信息
    • 4. 查询所有是办事员的员工信息
    • 5. 查询出职位是办事员(CLERK)或销售人员(SALESMAN)的信息
    • 6. 查询出工资在1000~1500(包含有 1000 和 1500)的所有雇员信息

  • SELECT子句来控制可以显示的列信息。但是在很多的情况下可能并不需要查询出全部的数据,需要对要使用的数据行进行筛选,此时就可以采用限定查询,也就是说限定查询主要是控制行的。
  • 限定查询的语法如下:
SELECT [DISTINCT] * | 列名称 [别名] , 列名称 [别名] ,... | 数据计算
①FROM 数据表 [别名][WHERE 限定条件(s)];
  • 在进行限定查询的时候首先还是需要根据FROM.确定要使用的数据来源,而后利用一些条件(关系运算),从所有的数据行里面筛选出从而实现最终的数据行的筛查,如果要是有多个条件进行判断也可以利用逻辑运算(与操作、或操作、非操作)进行整合:
  • 在WHERE子句里面常用的几种判断符:关系运算(>、<、>=、<=、=、<>、!=)BETWEEN…AND、IN、LIKE、IS NULL

1. 查询出工资大于1000的所有雇员信息.

  • 现在需要设置的是一个条件,也就是说这个之后只有满足此条件之后才可以显示对应的数据行信息:
select * 
from emp
where sal>1000;

在这里插入图片描述

2. 查询出姓名是Smith的雇员信息

  • 在Oracle中数据内容是区分大小写的
  • ename字段表示的是员工姓名,那么在ename设置对应的条件:
select * 
from emp
where ename='SMITH';

在这里插入图片描述

  • 如果小写就查询不出:
    在这里插入图片描述

3. 查询出工资在1000~1500之间的所有非销售人员的编号、姓名、职位、工资

  • 现在很明显一共有三个条件:
  1. 工资大于等于1000: sal>=1000;
  2. 工资小于等于1500: sal<=1500;
  3. 职位是非销售:job!='SALESMAN';
  • 现在为止只有三个条件同时满足了才可以显示出对应的信息内容,所以使用AND进行操作连接
select empno,ename,job,sal
from emp
where sal>=1000 and sal<=1500 and job!='SALESMAN' ;

在这里插入图片描述

4. 查询出所有不是办事员(CLERK)的员工信息

select *
from emp
where job<>'CLERK'

在这里插入图片描述

  • 也可以这样写
select *
from emp
where job!='CLERK';

在这里插入图片描述

4. 查询所有是办事员的员工信息

  • job!='CLERK'表示不是办事员,加上 not 取反就是办事员了
select *
from emp
where not job!='CLERK';
  • 建议这样写
select *
from emp
where job='CLERK';

在这里插入图片描述

  • 虽然两个查询结果是相同的,但是第一个查询的时间复杂度会高,因为做了关系运算和逻辑运算,而第二个查询只做了一个关系运算

5. 查询出职位是办事员(CLERK)或销售人员(SALESMAN)的信息

  • 这个时候依然要采用两个判断条件: job='CLERK'、job='SALESMAN',这两个条件有一个满足就可以,所以使用 or
select * 
from emp
where job='CLERK' or job='SALESMAN';

在这里插入图片描述

  • 那么除了以上的这些基础的运算符之外,在进行限定查询的时候还可以使用以下的几种运算符:
  1. 范围查询:BETWEEN 最小值... AND 最大值;
    • 是带有边界值的范围;
    • 可以使用在各种数据类型上;

6. 查询出工资在1000~1500(包含有 1000 和 1500)的所有雇员信息

select * 
from emp
where sal>=1000 and sal<=1500;
select * 
from emp
where sal between 1000 and 1500;

  • 如果这个时候采用的是两个关系运算进行处理,那么要进行两次的筛选运算,
  • 而如果使用了BETWEEN…AND则使用一次运算,所以性能会更好。

http://www.ppmy.cn/news/1558334.html

相关文章

Linux:code:network:devinet_sysctl_forward;IN_DEV_FORWARD

文章目录 简介sysctl 设置使用,arp_process间接使用IN_DEV_RX_REDIRECTSdev_disable_lro简介 最近在看Linux里的forwarding的功能。顺便在这里总结一下。有些详细代码逻辑,如果可以记录一下,会好一点。 sysctl 设置 这个函数在查看的时候需要注意的问题:变量名起的有点简…

Ubuntu国内安装Gradle

1.简介 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置&#xff0c;也增加了基于Kotlin语言的kotlin-based DSL&#xff0c;抛弃了基于XML的各种繁琐配置。 2.环境 LInux 发行版本&#xff1a…

【项目介绍】基于机器学习的低空小、微无人机识别技术

文章目录 1.项目介绍2.数据预处理3.特征选取4.模型训练参考文献 1.项目介绍 对于现代雷达探测系统而言&#xff0c;无人机和飞鸟同属于低空小、微特征的一类典型目标&#xff0c;而面对比较复杂的环境&#xff0c;如何有效区分两者类型并完成识别是当下急迫且重要的难题。常规…

whisper.cpp: Android端测试 -- Android端手机部署音频大模型

whisper.cpp: Android端测试 1.环境需要2.构建项目3.Android测试 1.环境需要 以下是经实验验证可行的环境参考&#xff0c;也可尝试其他版本。 &#xff08;1&#xff09;PC&#xff1a;Ubuntu 22.04.4 &#xff08;2&#xff09;硬件设备&#xff1a;Android 手机 &#x…

网站使用站群服务器都有哪些好处?

站群服务器主要是通过集中的资源管理和高效的分布式架构&#xff0c;支持多个网站的稳定运行&#xff0c;是专门用于托管多个独立网站的服务器系统&#xff0c;站群服务器通常还拥有着大量的独立IP地址&#xff0c;可以分配给不同的网站。 当网站使用站群服务器时能带来哪些好处…

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。()

问题&#xff1a; PS C:\Users\EDY\Desktop\vscodeTest> pip pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保 路径正确&#xff0c;然后再试一次。 所在位置 行:1 字符: 1 pip …

深度分析 es multi_match 中most_fields、best_fields、cross_fields区别

文章目录 1. multi_match 查询的类型1.1 best_fields&#xff08;默认&#xff09;1.2 most_fields1.3 cross_fields 2. 不同类型的示例查询示例数据&#xff1a; 3. 示例 1: 使用 best_fields查询&#xff1a;说明&#xff1a; 4. 示例 2: 使用 most_fields查询&#xff1a;说…

kkfileview代理配置,Vue对接kkfileview实现图片word、excel、pdf预览

kkfileview部署 官网&#xff1a;https://kkfileview.keking.cn/zh-cn/docs/production.html 这个是官网部署网址&#xff0c;这里推荐大家使用docker镜像部署&#xff0c;因为我是直接找运维部署的&#xff0c;所以这里我就不多说明了&#xff0c;主要说下nginx代理配置&am…