【Oracle】查询基本使用
【摘要】 【Oracle】查询基本使用
- select 1+1; 在Oracle等于报错 ,在MYSQL中输出结果是2
- dual : oracle中的虚表 ,伪表, 主要是用来补齐语法结构
1. 查询语法
select *|列名 from 表名
select * from emp;
2. 别名用法
- 在查询的结果列中可以使用别名
select 列名 别名,列名 别名,... from emp;
select ename 姓名, sal 工资 from emp;
- 别名中,有没有双引号的区别就在于别名中有没有特殊的符号或者关键字
select ename "姓 名", sal 工资 from emp;
3. 消除重复的数据
select distinct *|列名, ... from emp;
select job from emp;
- 单列去除重复
select distinct job from emp;
- 多列去除重复,使用
distinct
可以消除重复的行,如果查询多列的必须保证多列都重复才能去掉重复的 - 多列去除重复: 每一列都一样才能够算作是重复的
select job,deptno from emp;
select distinct job,deptno from emp;
4. nvl
函数
- 查询员工年薪 = 月薪* 12
select sal*12 from emp;
- 查询员工年薪+奖金
select sal*12 + comm from emp;
- 注意:
null
值 , 代表不确定的、不可预知的内容 , 不可以做四则运算 - 解决方法:
nvl
函数 : 如果参数1为null
,就返回参数2
select sal*12 + nvl(comm,0) from emp;
5. 查询中四则运算
select 1+1 from dual;
6. 字符串的拼接
- java :
+
号拼接 - Oracle 特有的连接符:
||
拼接 - 查询员工姓名
select ename from emp;
select '姓名' || ename from emp;
-
在Oracle 中 ,双引号主要是别名的时候使用, 单引号是使用的值, 是字符
-
concat(str1,str2)
函数, 在mysql和Oracle中都有 -
使用函数拼接
select concat('姓名',ename) from emp;
7. 空值
- 空值是无效的,未指定的,未知的或不可预知的值
- 空值不是空格或者0。
- 注意:
包含null
的表达式都为null
空值永远不等于空值
8. 条件查询
-
条件查询 : [where后面的写法]
-
关系运算符: > >= = < <= != <>
-
逻辑运算符: and or not
-
其它运算符:
like 模糊查询
in(set) 在某个集合内
between…and… 在某个区间内
is null 判断为空
is not null 判断不为空 -
查询每月能得到奖金的员工信息
select * from emp where comm is not null;
- 查询工资在1500–3000之间的员工信息
select * from emp where sal>=1500 and sal<=3000;
select * from emp where sal between 1500 and 3000;
- 查询名字在某个范围的员工信息 (‘JONES’,‘SCOTT’,‘FORD’) ,使用关键字
in
select * from emp where ename in ('JONES','SCOTT','FORD');
9. 模糊查询
- 模糊查询: like
- %:可以匹配任意长度的内容
- _:可以匹配一个长度的内容
- 如果有特殊字符,需要使用
escape
转义 - 查询员工姓名第三个字符是
O
的员工信息
select * from emp where ename like '__O%';
- 查询名字中带有“
M”
的雇员
select * from emp where ename like '%M%';
- 查询员工姓名中,包含
%
的员工信息,escape
告诉Oracle,\
是转义字符
select * from emp where ename like '%\%%' escape '\';
select * from emp where ename like '%#%%' escape '#';
10. 排序
- 升序:asc
- 降序:desc
- 查询员工信息,按照奖金由高到低排序
select * from emp order by comm desc;
- 发现前面的空值的排在前面,因为空值默认是排在前面的
select * from emp order by comm desc nulls first;
- 可以修改下排在最后面
select * from emp order by comm desc nulls last;
- 查询部门编号和工资, 部门编号升序排序,工资降序排序
select deptno, sal from emp order by deptno asc, sal desc;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)