专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

条件查询和排序(Oraclr) 如何设置查询条件?如何在条件中运用逻辑运算符?

ins518 2024-11-06 18:40:03 技术文章 11 ℃ 0 评论
  • Oracle简介

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

  • 使用where语句对结果进行过滤

1.比较运算符

2.其他比较运算符

3.逻辑运算符

  • Where语句示例

1.非空和空的限制

>>>示例:查询每月能得到奖金的雇员

分析:只要字段中存在内容表示不为空,如果不存在内容就是null,

语法:列名 IS NOT NULL

为空 列名 IS NULL

>>>范例:查询工资大于1500并且有奖金领取的雇员

分析:多个查询条件同时满足之间使用‘AND’

>>>范例:查询工资大于1500或者有奖金的雇员

分析:多个查询条件或满足,条件之间使用“OR”

>>>范例:查询工资不大于1500和没有奖金的人

语法:NOT(查询条件)

2.范围限制

>>>范例:基本工资大于1500但是小于3000的全部雇员

分析:sal>1500, sal<3000

>>>范例:查询1981-1-1到1981-12-31号入职的雇员

分析:between and 不仅可以使用在数值之间,也可以用在日期的区间

>>>范例:查询雇员名字叫smith的雇员

在oracle中的查询条件中查询条件的值是区分大小写的

>>>范例:查询雇员编号是7369,7499,7521的雇员编号的具体信息

如果使用之前的做法可以使用OR关键字

实际上,此时指定了查询范围,那么sql可以使用IN关键字

语法: 列名 IN (值1,值2,....)

列名 NOT IN (值1, 值2,...)

其中的值不仅可以是数值类型也可以是字符串

>>>范例:查询雇员姓名是’SMITH’,’ALLEN’,’WARD’的雇员具体信息

  • 模糊查询

在常用的站点中经常会有模糊查询,即:输入一个关键字,把符合的内容全部的查询出来,在sql中使用LIKE语句完成。

在LIKE中主要使用以下两种通配符

“%”:可以匹配任意长度的内容

“_”:可以匹配一个长度的内容

>>>范例:查询出所有雇员姓名中第二个字符包含“M”的雇员

>>>在LIKE中如果没有关键字表示查询全部

>>>查询名字中带有“M”的雇员

在oracle中不等号的用法可以有两种形式“<>”和“!=”

>>>范例:查询雇员编号不是7369的雇员信息

  • 使用order by对结果排序

1.排序的语法

在sql中可以使用ORDER BY对查询结果进行排序

语法:SELECT * |列名 FROM 表名 {WEHRE 查询条件} ORDER BY 列名1 ASC|DESC,列名2...ASC|DESC

范例:查询雇员的工资从低到高

分析:ORDER BY 列名 默认的排序规则是升序排列,可以不指定ASC,如果按着降序排列必须指定DESC

如果存在多个排序字段可以用逗号分隔

注意ORDER BY语句要放在sql的最后执行。

2.排序中的空值问题

当排序时有可能存在null时就会产生问题,我们可以用 nulls first , nulls last来指定null值显示的位置。

--查询雇员的工资从低到高

select * from emp order by sal nulls first;

select * from emp order by sal desc nulls last ;

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表