【Oracle】查询和运算符

来源:互联网 发布:linux怎么安装输入法 编辑:程序博客网 时间:2024/05/16 18:32

基本查询 - select

  • 查询所有数据
    select * from 表;

  • 查询指定列数据
    select 表名.列1,表名.列2 from 表名;

  • 查询且不包含重复数据 – distinct(去掉重复列)
    select distinct 列 from 表名;

    //查询公司设置了哪些岗位     select distinct * from emp;

聚合函数

  • 聚合函数配合分组
    先分组,再统计,聚合函数前后要加列,必须对要加的列分组
//查询每个岗位上的员工人数select job,count(*) from emp group by job;
//查询每个部分上的员工人数select dept.dname,dept.demptno,count(*) from emp inner join dept on emp.deptno = dept.no group by dept.no,dept.dname
  • case … end的用法
case    when 列 条件1 then 结果1    when 列 条件2 then 结果2    else 其他结果 end
列:select case    when sal>=1 and sal<=2000 then '蓝领'    when sal>=2001 and sal<=4000 then '白领'    else '金领'    end as "级别"(注:as可以加上字符,空格,下划线)  from emp;

运算符

  • 连接运算符 –||
    select empno || ename as 编号姓名列 from emp;

  • 加法运算符 – +
    select empno+deptno from emp;


伪列 (每张表都有伪列,系统生成的列)

  • rownum
    返回查询结果集的序列,不是固定的值
    < <= (注:用作查询语句后面作条件判断)

  • rownum的特点
    a. rownum先对结果集进行序列,如果加上order by 伪列则不会序列
    b. rownum并不是和值固定对应的

select rownum,emp.* from emp where rownum=5

c. rowid(它的值和列是固定一一对应的地址)

 - select rowid,emp.* from emp where empno = 7400; - select rowid,emp.* from emp where rowid='AAAMGZAAE';

排序

  • 语法
order byasc(升序) / desc(降序)
  • 单例排序
//查询员工信息,按部门编号降序排序select * from emp order by deptno desc;//查询员工信息,按薪水排序select * from emp order by sal desc;
  • 多列排序
//查询员工信息,按部门降序排序,且薪水高的排前面select * from emp order by demptno,sal desc;
0 0
原创粉丝点击