数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle基本查询过滤排序示例解析


发布日期:2018年05月16日
 
Oracle基本查询过滤排序示例解析
以下是对Oracle中的基本查询过滤排序示例进行了详细的分析介绍需要的朋友可以参考下

基本查询

复制代码 代码如下:
查询所有员工的信息
select * from emp;
设置行宽
set linesize ;
设置列宽为四个数字的宽度
col empno for ;
设置列宽a表示字符串共八位长度
col ename for a
设置pageSize每页显示条记录
set pagesize ;
sql中支持算数表达式注意如果一个表达式中含有空值则整个表达式为空
select empnoenamesalsal*commsal*+comm from emp;
使用滤空函数如果comm为空将以代替
select empnoenamesalsal*commsal*+nvl(comm) from emp;
使用别名的三种方式别名中有无双引号的区别带双引号的可以包含空格和特殊字符不带双引号的则不能
select empno as "员工编号"ename "姓名"sal 月薪commsal*+nvl(comm)年收入 from emp;
关于disctinct相同记录只取一次
select distinct deptno from emp;
当disctinct跟多个值时当deptno和job均一样时才认为是相同记录
select distinct deptnojob from emp;
连接符的使用
select ename ||的薪水是||sal from emp;


注意
SQL 语言大小写不敏感
SQL 可以写在一行或者多行
关键字不能被缩写也不能分行
各子句一般要分行写
使用缩进提高语句的可读性

过滤和排序

复制代码 代码如下:
查询系统参数
select * from v$nls_parameters;
修改日期格式
alter session set NLS_DATE_FORMAT=yyyymmdd;
隐士方式转换日期会影响性能
select * from emp where hiredate=;
显示方式转换日期
select * from emp where hiredate=to_date(yyyymmdd);
比较运算符查询工资大于小于的员工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 empnoenamesalsal* from emp order by sal*;
order by后面可以跟别名
select empnoenamesalsal* 年薪 from emp order by 年薪;
order by后面可以跟序号
select empnoenamesalsal* from emp order by ;
order by作用于多列先按照第一列排序然后按照第二列排
select * from emp order by deptnosal;
order by作用于多列降序需要每列均有desc
select * from emp order by deptno descsal desc
将空值排到最后
select * from emp order by comm desc nulls last;
屏蔽/开启反馈信息
set feedback off/set feedback on


排序的规则
可以按照select语句中的列名排序
可以按照别名列名排序
可以按照select语句中的列名的顺序值排序
如果要按照多列进行排序则规则是先按照第一列排序如果相同则按照第二列排序以此类推

上一篇:CentOS 6.3 Linux系统下安装Oracle 10g R2

下一篇:Oracle数据库基本常用命令汇总