DQL数据查询语句举例

--SELECT 列名 FROM 表名;
select sal+300,ename,deptno from emp;
--加入运算符
select (2-2)*3 from dual;
--关于空值的处理,空值和数值运算的结果还是空值
--列出员工每月的总收入(工资+奖金)
select ename,sal+comm from emp;

--列的别名
select ename 姓名,sal 工资 from emp;

--引号强制执行原始大小写
select ename 姓名,sal 工资 from ‘emp’;

--拼接字符串
select ename||'先生' as 姓名,sal 工资 from emp;

--去除重复行
--列出现有员工的部门编号
--使用了distinct关键字的列,必须放在查询列表的前面
select distinct deptno 部门编号,sum(sal) from emp group by deptno;

--where子句过滤查询结果
--select 列名,[表达式]  from 表名  where 表达式
--使用and,or关键字连接不同条件
select ename,sal from emp where sal>2000 OR job='CLERK';

--between 比较:a between  20 and 30
--等价于   a>=20 and a<=30
select sal from emp where sal between 1300 and 1600;

--日期类型
select hiredate from emp;

--空值的比较一定为假
--找出奖金低于100的员工
select ename,comm from emp where comm<800;

--is null
--筛选空值
select ename,comm from emp where comm is null;

--in 
--筛选提供的数据中存在的
select empno,ename,sal from emp where empno in (6000,7000,8000,7566,7698);

--like
--模糊筛选,%代表0至任意个字符,_代表一个任意字符
select ename from emp where ename like '__LL%';

--单引号转义,两个换一个
select 'hello ''world''' from dual;

--排序子句 order by
--默认升序排列,降序 在后面加上desc关键字
--where在前,order by在后
--order by不是where的一部分,不要用and连接,或者用逗号隔开
select sal s,empno from emp order by 1;
select sal from emp where sal>1500 order by sal;

--rownum伪列:查询生成结果集时,自动生成的序号
--在排序之前生成
--rownum的作用:获取值的一部分(分页查询)
--mysql limit,sqlserver top
--只能取小于值,不能取大于值
select rownum,ename,sal from emp where rownum<6 order by sal ;

--rowid伪列
--数据插入时生成的,永久保存在数据库中,唯一的
select rowid,ename,sal from emp where sal>1000;


你可能感兴趣的:(Oracle回顾)