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;
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;
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;
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%';
select * from emp where ename like '%M%';
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;