以下是对Oracle中的基本查询过滤排序示例进行了详细的分析介绍
需要的朋友可以参考下
基本查询
复制代码 代码如下:
查询所有员工的信息
select * from emp;
设置行宽
set linesize
;
设置列宽为四个数字的宽度
col empno for
;
设置列宽
a表示字符串共八位长度
col ename for a
设置pageSize每页显示
条记录
set pagesize
;
sql中支持算数表达式
注意
如果一个表达式中含有空值
则整个表达式为空
select empno
ename
sal
sal*
comm
sal*
+comm from emp;
使用滤空函数如果comm为空将以
代替
select empno
ename
sal
sal*
comm
sal*
+nvl(comm
) from emp;
使用别名的三种方式
别名中有无双引号的区别
带双引号的可以包含空格和特殊字符
不带双引号的则不能
select empno as "员工编号"
ename "姓名"
sal 月薪
comm
sal*
+nvl(comm
)年收入 from emp;
关于disctinct
相同记录只取一次
select distinct deptno from emp;
当disctinct跟多个值时
当deptno和job均一样时
才认为是相同记录
select distinct deptno
job from emp;
连接符的使用
select ename ||
的薪水是
||sal from emp;
注意
SQL 语言大小写不敏感
SQL 可以写在一行或者多行
关键字不能被缩写也不能分行
各子句一般要分行写
使用缩进提高语句的可读性
过滤和排序
复制代码 代码如下:
查询系统参数
select * from v$nls_parameters;
修改日期格式
alter session set NLS_DATE_FORMAT=
yyyy
mm
dd
;
隐士方式转换日期
会影响性能
select * from emp where hiredate=
;
显示方式转换日期
select * from emp where hiredate=to_date(
yyyy
mm
dd
);
比较运算符
查询工资大于
小于
的员工
between and含边界
select * from emp where sal>=
and sal<=
;
select * from emp where sal between
and
;
in: 在集合中
查询
号部门和
号部门的员工
select * from emp where deptno=
or deptno=
;
select * from emp where deptno in (
);
模糊查询:查询名字以S打头的员工
select * from emp where ename like
S%
;
查询名字有四个字的员工
要求四个下划线
select * from emp where ename like
____
;
查询姓名中含义下划线的员工
_下划线为特殊字符需要转义
escape 声明转义
select * from emp where ename like
%\_%
escape
\
;
查询奖金不为空的员工
select * from emp where comm is not null;
查询员工信息
按照月薪排序
select * from emp order by sal;
a命令
追加命令
将上边改为降序排序
a desc
查询员工信息
按照年薪排序
select empno
ename
sal
sal*
from emp order by sal*
;
order by后面可以跟别名
select empno
ename
sal
sal*
年薪 from emp order by 年薪;
order by后面可以跟序号
select empno
ename
sal
sal*
from emp order by
;
order by作用于多列
先按照第一列排序
然后按照第二列排
select * from emp order by deptno
sal;
order by作用于多列
降序需要每列均有desc
select * from emp order by deptno desc
sal desc
将空值排到最后
select * from emp order by comm desc nulls last;
屏蔽/开启反馈信息
set feedback off/set feedback on
排序的规则
可以按照select语句中的列名排序
可以按照别名列名排序
可以按照select语句中的列名的顺序值排序
如果要按照多列进行排序则规则是先按照第一列排序如果相同则按照第二列排序以此类推