# Oracle 常用查询语句
设置每行显示的记录长度
set LINESIZE 300;
设置每页显示的记录长度
set PAGESIZE 30;
简单查询语句
select [distinct] * | 列名称 [as] [列别名],列名称 [as] [列别名]…
from 表名称 [表别名];
执行顺序:
- 执行from子句,确定要检索的数据来源
- 执行select子句,确定要检索的数据列
在简单查询语句中,也可以使用各种四则运算“+、-、*、/”进行数学计算的操作,按照“先乘除,后加减”的顺序
关于常量输出
- 字符串常量:直接使用’'声明,如:‘mldn’
- 数字常量:直接输出数字,例如1234
- 日期:按照给定的字符串格式编写
- 单引号:直接使用4个“’”表示,例如’’’’,表示一个“’”。
- 使用||完成字符串的连接。
例:select ‘编号是:’||empno||‘的雇员姓名是:’||’,基本工资是:’||sal 雇员信息 from emp;
限定查询
select [distinct] * | 列名称 [as] [列别名],列名称 [as] [列别名]…
from 表名称 [表别名]
[where 条件[表别名]];
在编写where 子句判断条件时,可以同时指定多个判断条件的连接,连接主要通过逻辑运算符实现,逻辑运算符有三种:
- 与(and):连接多个条件,多个条件同时满足时才返回TRUE,有一个条件不满足,结果就是FALSE
- 或(or):连接多个条件,多个条件只要有一个返回TRUE,结果就是TRUE,如果多个条件返回的都是FALSE,则结果才是FALSE
- 非(NOT):求反操作,可以将TRUE变FALSE,FALSE变TRUE
实现一:
select * from emp where job !=‘clerk’ and sal>2000;
select * from emp where job <>‘clerk’ and sal>2000;
实现二:
select * from emp where not (job=‘clerk’ or sal <= 2000);
关系运算符:
、<、>=、<=、=、!=、<>,进行大小或相等的比较,不等于有两种!=和<>
判断null:
is null、is not null,判断某一列的内容是否为null
范围查询:
between 最小值 and 最大值,在一个指定范围中进行查找,查找结果为“最小值<=内容<=最大值”
列表范围查询:
in,通过in可以指定一个查询的范围
注意:在not in 操作符列表不能有null
模糊查询:
like,可以对指定的字段进行模糊查询
对结果排序
select [distinct] * | 列名称 [as] [列别名],列名称 [as] [列别名]…
from 表名称 [表别名]
[where 条件[表别名]]
[order by 排序的字段 | 列索引序号 asc|desc,排序字段2 asc|desc…];
语句执行顺序:
- 执行from子句,确定要检索的数据来源
- 执行where子句,使用限定符对数据行进行过滤
- 执行select子句,确定要检索出的数据列
- 执行order by子句
因为order by 子句是在select 子句之后执行的,所以在order by 子句中可以使用select 子句查询列所定义的别名。