Oracle之限定查询

server/2024/12/28 5:00:09/

文章目录

    • 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/server/153815.html

相关文章

微信小程序-基于Vant Weapp UI 组件库的Area 省市区选择

Area 省市区选择&#xff0c;省市区选择组件通常与 弹出层 组件配合使用。 areaList 格式 areaList 为对象结构&#xff0c;包含 province_list、city_list、county_list 三个 key。 每项以地区码作为 key&#xff0c;省市区名字作为 value。地区码为 6 位数字&#xff0c;前两…

微涉全栈(react,axios,node,mysql)

纯小白从前端跨域发起axios get请求获取数据 如果有兴趣欢迎往下看&#xff1a; //nodejs部分 const express require(express) const app express() const mysql require(mysql2) // 创建一个数据库连接 const connection mysql.createConnection({host: localhost,use…

【每日学点鸿蒙知识】图片控件对齐、上架的应用无法拉起应用详情页、RotateOptions配置、签名配置问题、弹框背景色

1、HarmonyOS 异步接口是否会启动一个子线程来执行其中的逻辑&#xff1f; 异步机制ArkTS仅在单线程&#xff08;主线程&#xff09;上执行任务&#xff0c;其异步机制与JavaScript一致&#xff0c;都是通过宿主环境提供的线程实现&#xff08;napi&#xff0c;其接口与nodejs…

【Android Studio】创建新项目遇到的一些问题

1.Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. 这个问题的原因是我在使用 distributionUrlhttps\://services.gradle.org/distributions/gradle-7.0.2-bin.zip出现的&#xff0c;表示项目正在使用已弃用的 Gradle 功能&am…

运维相关知识科普

运维相关知识科普参考文章 一、运维究竟是什么 在当今数字化蓬勃发展的浪潮下&#xff0c;运维作为保障各类线上服务及产品顺畅运行的关键力量&#xff0c;其重要性不言而喻。运维&#xff0c;简言之&#xff0c;就是运用一系列专业的步骤与方法&#xff0c;对线上服务和产品…

视频汇聚融合云平台Liveweb一站式解决视频资源管理痛点

随着5G技术的广泛应用&#xff0c;各领域都在通信技术加持下通过海量终端设备收集了大量视频、图像等物联网数据&#xff0c;并通过人工智能、大数据、视频监控等技术方式来让我们的世界更安全、更高效。然而&#xff0c;随着数字化建设和生产经营管理活动的长期开展&#xff0…

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

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

2024年12月大语言模型最新对比:GPT-4、Claude 3、文心一言等详细评测

前言 随着人工智能技术的快速发展&#xff0c;大语言模型(LLM)已经成为了技术领域最热门的话题。本文将详细对比目前主流的大语言模型&#xff0c;帮助大家选择最适合的工具。 一、OpenAI GPT系列 1. GPT-4 核心优势&#xff1a; 多模态理解能力强 逻辑推理能力出色 创造…