oracle常见查询语句总结select sum(字段)
from 表名 where 条件 group by 字段
例子1.
select [distinct] *| [as] [列别名],列名称 [as] [列别名]from 表名称 [表别名]
[where 条件(s)]
[order by 排序的字段 | 列索引号 asc|desc,排序的字段2 asc|desc ...]...;
执行顺序:
1、先执行from子句,确定要检索数据的来源
2、执行where子句,使用限定符对数据进行过滤
3、执行select子句,确定要检索出的数据列
4、执行order by子句排序
distinct:去除重复的列,当查询两条记录的所有的列都相同时才会去除重复代码示例:
--查询emp表中的数据
SELECT * FROM emp;
--查询出公司员工编号,姓名,工作
select empno,ename,job from emp;
--起别名
select job as jobs from emp;
--去除重复的行记录
select distinct job as jobs from emp;
--查询出年工资,每天的工资
select empno,ename,sal*12 Annual_salary,sal/30 day_salaryfrom emp;
2、select子句后面编写常量
1、字符串常量:使用"’"声明,如:“se”
2、数字常量:直接输出数字,如:4532
3、日期:
4、单引号:(’)
--增加货币单位的常量
select empno as 雇员编号,ename as 雇员姓名,(sal+200)*12+5000 as 年薪,'¥' 货币 from emp;
--连接符||的使用
select '编号:' || empno||' 的雇员姓名是:'||ename 雇员信息 from emp;
3、限定查询
限定查询的实例
--工资高于1200的所有与员工的信息
select * from emp where sal >1200;
-
--查询出所有业务员(CLEARK)雇员的信息
select * from emp where job='CLERK'
--查询出10部门中的激励或者20部门中业务员的信息
select * from emp
where (deptno=20 and job='CLEARK') OR (deptno=10 and job='MANAGER')
--查询出在1981年雇佣的全部雇员信息
select *from empwhere
hiredate between '01-1月-1981' and '31-12月-1981'
--查询出佣金不为空的信息
select *from emp
where comm is not null;select * from empwhere not comm is null;
--in的指定范围的查询
select * from empwhere empno in(7369,7788,7566);
--现在查询除了7369,7788,7566之外的雇员的信息
select * from empwhere empno not in(7369,7788,7566);
4、模糊查询like,not like
百分号(%):可匹配任意类型和长度(可以匹配0位,1位或多位长度)的字符
下划线(_):匹配单个任意字符,通常来限制表达式的字符长度
实例:--查询出雇员姓名以S开头的所有雇员的信息
select * from empwhere ename like 'S%'
--查询出第二个字母是M的全部雇员信息
select * from empwhere ename like '_M%'
-- 查询出姓名中任意位置包含字母F的雇员信息
select * from empwhere ename like '%F%'
--找出10部门中所有的经理(MANAGER),部门20中所有的业务员(CLEARK),既不是经理又不是业务员但薪金大于2000元的所有员工的详细资料并且要求这些雇员的西宁中包含字母S或字母K
select * from empwhere
((deptno=10 and job='MANAGER')or (deptno=20 and job='CLERK')
or (job not in ('MANAGER','CLEARK')
and sal >2000))and(ename like '%S%' or ename like '%K%')
5、对结果进行排序
--排序的查询语句
select empno,ename,sal,job from emporder by 3 desc
--order by sal desc
-
-按照工资由高到低排序,工资相等的话按照雇佣日期由早到晚进行排序
select * from emporder by sal desc,hiredate asc;
6.Alias(列的别名)
:紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号“”,以便在别名中包含空格或特殊的字符并区分大小写。||(关键字,连接符):把列与列,列与字符连接在一起,用 ‘||’表示,可以用来‘合成’列。character(字符串):字符串可以是 SELECT 列表中的一个字符,数字,日期,日期和字符只能在单引号中出现,每当返回一行时,字符串被输出一次。SELECT UserID||'Character'||TableID AS "Alias" FROM TABLE