Oracle SELECT示例

为了方便大家更加了解和掌握Oracle Select语句,下面为大家带来一些示例代码。
1. 查询单个列的数据
要从客户(customers)表中获取客户名称(name)列,请使用以下语句:
2. 查询多个列的数据

要从多个列查询数据,请指定一个以逗号分隔的列名称列表。
3. 查询表中所有列的数据
以下示例将检索customers表的所有列中的数据,列出所有列的名称,如下所示:

Oracle Order By用法详解

在Oracle中,ORDER BY子句可以用来对一列或多列的结果集按升序或降序进行排序。本文,将为大家带来ORDER BY子句的具体用法。

Oracle ORDER BY子句基本用法

在Oracle中,表中是以非指定顺序存储行数据记录的,它不管行插入数据库的顺序如何。要按列以升序或降序查询行记录,必须明确指示Oracle数据库要如何去排序。
例如,您可能希望按名称的字母顺序列出所有客户,或者按照从最低到最高信用限额的顺序显示所有客户。
要对数据进行排序,我们可以将ORDER BY子句添加到SELECT语句中,参考以下语法:
SELECT
column_1,
column_2,
column_3,
...
FROM
table_name
ORDER BY
column_1 [ASC | DESC] [NULLS FIRST | NULLS LAST],
column_1 [ASC | DESC] [NULLS FIRST | NULLS LAST],
要按列排序结果集,可以在ORDER BY子句之后列出该列。
按照列名是一个排序顺序,可以是:
  • ASC表示按升序排序
  • DESC表示按降序排序
默认情况下,无论是否指定ASC,ORDER BY子句都按升序对行进行排序。如果要按降序对行进行排序,请明确使用DESC。
NULLS FIRST在非NULL值之前放置NULL值,NULLS LAST在非NULL值之后放置NULL值。
ORDER BY子句可以按多列对数据进行排序,每列可能有不同的排序顺序。
请注意,ORDER BY子句总是SELECT语句中的最后一个子句。

1. 按列排序行示例

要按照字母顺序按升序排列客户名称,请使用以下语句:
要按字母顺序降序排列客户名称,请在ORDER BY子句中的列名之后显式使用DESC,如下所示:

2. 按多个列排序行示例

要对多列进行排序,可以用逗号分隔ORDER BY子句中的每列。
在上面的这个结果中:
首先,按job进行升序排序。
其次,如果job相同,按ename 降序排列

3. 按列位置排序行示例

不需要指定用于排序数据的列名称。如果您愿意,可以使用ORDER BY子句中列的位置。
请参考下语句:
SELECT name, credit_limit,address
FROM customers
ORDER BY 2 DESC, 1;
在这个例子中,name列的位置是1,credit_limit列的位置是2。相当于以下查询语句:
SELECT name, credit_limit,address
FROM customers
ORDER BY credit_limit DESC, name;

4.用NULL值排序行的示例

当使用非NULL值对混合NULL进行排序时,Oracle允许指定哪个应该首先出现。
要放置NULL值在后面,可以使用NULLS LAST,如下面的语句所示:

5. 按函数或表达式排序数据

ORDER BY子句可在一列上应用一个函数,例如字符串函数,数学函数等,并按函数的结果对数据进行排序。
例如,以下语句使用ORDER BY子句中的UPPER()函数来区分客户名称的大小写:
SQL> select empno,ename,comm from emp order by upper(ename);

Oracle Distinct用法

SELECT DISTINCT可以用来过滤结果集中的重复行,确保SELECT子句中返回指定的一列或多列的值是唯一的。本文将为大家带来SELECT DISTINCT的具体用法。

Oracle SELECT DISTINCT用法

SELECT DISTINCT语句的语法如下:
SELECT DISTINCT
column_1
FROM
table_name;
DISTINCT子句只能在SELECT语句中使用。
请注意,DISTINCT不是SQL标准的UNIQUE的同义词。总是使用DISTINCT而不使用UNIQUE是一个好的习惯。

Oracle DISTINCT示例

下面来看看如何使用SELECT DISTINCT来看看它是如何工作的一些例子。
1. Oracle DISTINCT在一列上应用的例子
以下示例检索所有联系人的名字:
2. Oracle DISTINCT应用多列示例
在此示例中,job,ename列的值都用于评估结果集中行的唯一性。
3. Oracle DISTINCT和NULL
DISTINCT将NULL值视为重复值。如果使用SELECT DISTINCT语句从具有多个NULL值的列中查询数据,则结果集只包含一个NULL值。
正如上图所看到的,只返回一个NULL值。

Oracle Where子句用法

Oracle WHERE子句简介

WHERE子句指定SELECT语句返回符合搜索条件的行记录。下面说明了WHERE子句的语法:
SELECT
column_1,
column_2,
...
FROM
table_name
WHERE
search_condition
ORDER BY
column_1,
column_2;
WHERE子句出现在FROM子句之后但在ORDER BY子句之前。在WHERE关键字之后是search_condition - 它定义了返回行记录必须满足的条件。
除了SELECT语句之外,还可以使用DELETE或UPDATE语句中的WHERE子句来指定要更新或删除的行记录。

Oracle WHERE示例

1. 通过使用简单的相等运算符来查询行记录
2. 使用比较运算符选择行记录
编号 运算符 描述
1 = 等于
2 !=,<> 不等于
3 > 大于
4 < 小于
5 >= 大于或等于
6 <= 小于或等于
7 IN 等于值列表中的任何值
8 ANY/SOME/ALL 将值与列表或子查询进行比较。它必须以另一个运算符(例如:=><)作为前缀。
9 NOT IN 不等于值列表中的任何值
10 [NOT] BETWEEN n AND m 相当于[Not] >= n 且 <= y
11 [NOT] EXISTS 如果子查询返回至少一行,则返回true
12 IS [NOT] NULL 测试NULL的值
选择包含值的行作为字符串的一部分

SQL> select * from emp where ename like 'SCO%';
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7788 SCOTT      ANALYST    7566 1987/4/19     3000.00               20

Oracle And or子句

Oracle AND是一个逻辑运算符,可以用来组合两个或更多的布尔表达式。本文就将为大家带来Oracle AND的使用方法。
Oracle AND运算符语法
AND运算符是一个逻辑运算符,它组合了布尔表达式,如果两个表达式都为真,则返回true。 如果其中一个表达式为假,则AND运算符返回false。
AND运算符的语法如下所示:
expression_1 AND expression_2
1. Oracle AND结合两个布尔表达式的例子
以下示例查找具有客户编号为2的那些状态为挂起(Pending)的订单:
SELECT order_id, customer_id, status, TO_CHAR(order_date,'YYYY-MM-DD') AS order_date
FROM orders
WHERE  status = 'Pending'  AND customer_id = 2
ORDER BY order_date;
2. Oracle AND结合两个以上的布尔表达式的例子
可以使用多个AND运算符来组合布尔表达式。
参考以下查询语句:
SELECT
order_id,
customer_id,
status,
TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date
FROM
orders
WHERE
status = 'Shipped'
AND salesman_id = 60
AND EXTRACT(YEAR FROM order_date) = 2017
ORDER BY
order_date;
3. Oracle AND与OR运算符结合示例
可以将AND运算符与其他逻辑运算符(如OR和NOT)组合,以形成一个条件。
SELECT
order_id,
customer_id,
status,
salesman_id,
TO_CHAR(order_date, 'YYYY-MM-DD') AS order_date
FROM
orders
WHERE
(status = 'Canceled' OR status = 'Pending')
AND customer_id = 44
ORDER BY
order_date;

Oracle Fetch子句

FETCH子句在Oracle中可以用来限制查询返回的行数,本教程将教大家如何使用FETCH子句。
Oracle FETCH子句语法
以下说明了行限制子句的语法:
[ OFFSET offset ROWS]
FETCH  NEXT [  row_count | percent PERCENT  ] ROWS  [ ONLY | WITH TIES ]
OFFSET子句
OFFSET子句指定在行限制开始之前要跳过行数。OFFSET子句是可选的。 如果跳过它,则偏移量为0,行限制从第一行开始计算。
偏移量必须是一个数字或一个表达式,其值为一个数字。偏移量遵守以下规则:
如果偏移量是负值,则将其视为0。
如果偏移量为NULL或大于查询返回的行数,则不返回任何行。
如果偏移量包含一个分数,则分数部分被截断。
FETCH子句
FETCH子句指定要返回的行数或百分比。
为了语义清晰的目的,您可以使用关键字ROW而不是ROWS,FIRST而不是NEXT。 例如,以下子句的行为和产生的结果相同:
FETCH NEXT 1 ROWS
FETCH FIRST 1 ROW
ONLY | WITH TIES选项
仅返回FETCH NEXT(或FIRST)后的行数或行数的百分比。
WITH TIES返回与最后一行相同的排序键。请注意,如果使用WITH TIES,则必须在查询中指定一个ORDER BY子句。如果不这样做,查询将不会返回额外的行。

Oracle FETCH子句实例

1. 获取前N行记录的示例
以下语句返回库存量最高的前10个产品:
-- 以下查询语句仅能在Oracle 12c以上版本执行
SELECT
product_name,
quantity
FROM
inventories
INNER JOIN products
USING(product_id)
ORDER BY
quantity DESC 
FETCH NEXT 5 ROWS ONLY;
2. WITH TIES示例
以下查询使用WITH TIES选项的行限制子句:
-- 以下查询语句仅能在Oracle 12c以上版本执行
SELECT
product_name,
quantity
FROM
inventories
INNER JOIN products
USING(product_id)
ORDER BY
quantity DESC 
FETCH NEXT 10 ROWS WITH TIES;
即使查询请求了10行数据,因为它具有WITH TIES选项,查询还返回了另外两行。 请注意,这两个附加行在quantity列的值与第10行quantity列的值相同。

Oracle In子句

Oracle IN运算符可以用来确定值是否与列表或子查询中的任何值相匹配,本文就将为大家带来Oracle IN运算符的具体用法。
Oracle IN语法:
确定表达式是否与值列表匹配的Oracle IN运算符的语法如下所示:
expression [NOT] IN (v1,v2,...)
并且表达式的语法与子查询匹配:
expression [NOT] IN (subquery)
参数
在上面语法中,这里将介绍每个参数含义:
expression - 该表达式(expression)是任何有效的表达式,它可以是要匹配的表的列。
v1, v2, v3.. - IN运算符后面是逗号分隔值列表,用于测试匹配。所有值必须与表达式具有相同的数据类型。
subquery - 子查询返回一列的结果集以测试匹配。该列还必须具有与表达式相同的数据类型。
返回值
如果表达式(expression)的值等于值列表中的任何值或由子查询返回的结果集,则IN运算符返回true。 否则,它返回false。
NOT运算符否定IN运算符的结果。

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

Oracle 查询基础相关推荐

  1. Oracle 查询基础练习题 -hr

    hr用户下:  1.显示员工编号  first_name 工资  select employee_id,first_name,salary from employees; 2.显示员工的名字(firs ...

  2. 4、oracle数据库的查询基础

    ORACLE查询基础 介绍oracle下数据的查询时用到的一些运算符.关键字和函数. 1.运算符 在进行数据查询时,有的时候不只是查询字段值,还需要做一些数据处理的操作,这时候就用到了运算符 -- 算 ...

  3. oracle 数据库怎么查询,Oracle 数据库基础查询

    1.1文件存储 对数据的存储需求一直存在.数据保存的方式,经历了手工管理.文件管理,数据库管理阶段. 文件存储方式保存数据的弊端: 1.缺乏对数据的整体管理,数据不便修改: 2.不利于数据分析和共享; ...

  4. SSH:Oracle数据库基础

    2019独角兽企业重金招聘Python工程师标准>>> Oracle数据库基础 一:Oracle基础知识 Oracle数据库的主要特点 (1.)支持多用户,大事务量的事务处理 (2. ...

  5. Oracle数据库基础入门《二》Oracle内存结构

    Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...

  6. ORACLE的基础用法

    ORACLE的基础用法 转 自:http://blog.163.com/kelly_19831017/blog/static/6196787020083133348873/ sqlplus sys/o ...

  7. oracle 语句 在线测试,2017年Oracle数据库基础测试答案.doc

    . . word完美格式 2017年Oracle数据库基础测试答案 姓名 成绩 一.单项选择题(每题1分,共60分) 列出EMP表中,从事每个工种(JOB)的员工人数 A.select job fro ...

  8. MySql查询系统时间,SQLServer查询系统时间,Oracle查询系统时间

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. MySQL查询系统时间 第一种方法:select current_date: MySQL> s ...

  9. oracle数据库基础知识总结,oracle数据库基础知识学习笔记

    oracle数据库基础知识学习笔记 一.oracle数据库类型: Char:  字符型(最大长度2000,定长.不足时以空格补充) Varchar2:字符型 最大长度 4000,变长,实际长度由存储的 ...

最新文章

  1. 日常记录-Pandas Cookbook
  2. 终于恢复了珍惜多年的照片
  3. Android Binder 学习笔记
  4. Layui框架 中table解决日期格式问题
  5. 自动控制理论及matlab,自动控制理论及MATLAB实现
  6. 的注册表怎么才能删干净_洗鞋怎么清洗才能清洗干净?洗鞋店洗鞋怎么清洗的这么干净? 篇幅一...
  7. 不成为编程天才的5种贡献方式
  8. MobaXterm_Personal_20.1最简单方式链接阿里云服务器
  9. tcp的发送端一个小包就能打破对端的delay_ack么?
  10. python局域网大文件_[源码]Python简易http服务器(内网渗透大文件传输含下载命令)...
  11. AAuto如何设置定时器
  12. 2 追踪光线=》2.6 反射光线
  13. 深度学习(目标检测。图像分割等)图像标注工具汇总
  14. ArcGIS中创建数据要素模板,便捷数据采集
  15. java开发银行柜员业务绩效考核系统
  16. 电压比较器和运算放大器的区别
  17. iTunes更改备份保存路径
  18. 易到用车网:没有一辆车的租车公司
  19. html向下滚动条,《html》不显示滚动条,鼠标滑轮可以控制向下滚动是怎么回事?...
  20. 智慧档案室改造建设方案 - 一站式建设智慧档案馆建设方案

热门文章

  1. crontab文件在哪个目录_目录形式URL与文件形式URL哪个更有利于SEO
  2. matlab中rms代表什么_工业铝型材名称中夹杂的字母含义代表什么
  3. Map端的聚合操作Combiner
  4. HDFS API编程之副本系数
  5. c3p0 高并发mysql 连接sleep情况
  6. java中 == 与 equal 的区别
  7. 我花 1 分钟写了一段爬虫,帮助小姐姐解放了双手
  8. 小甲鱼python课件源代码_[Python基础] 小甲鱼零基础入门Python学习视频+全套源码课件 Python视频教程 96讲...
  9. 批量生成6位数字_分享一款可做各种流水号的条码生成软件
  10. 通过doi可以检索到文献_怎么查看中外文献的期号和卷号?