Oracle 表基本查询 - where \ like \ order by(四)

  表基本查询用 PL/SQL 的 scott 用户自带的四个表,选用两个表进行练习。

  • 雇员表 emp


    emp表
  • 部门表 dept


    dept表

一、简单查询

  • 查看表结构
desc dept;
  • 查看所有列 ( 如果是大量数据,不推荐使用此查询命令 )
select * from dept;
  • 查询指定列 ( 如果是大量数据,推荐使用此查询命令 )
select userId from users;
  • 打开显示操作时间
set timing on;
  • 复制多个数据
create table users(userid varchar2(20),username varchar2(30),userpssvarchar2(30));//先创建一个users表
insert into users values('a001','哈哈哈哈哈啊飒飒','qwert12345');//插入一条数据
insert into users values(userid,username,userpss) select * from users;//复制刚刚插入的数据,可以多次复制
  • 查看多少行数据
select count (*) from users;
  • 取消重复行
select distinct deptno,job from emp;  //取消deptno 和 Job 所出现的重复行
  • 查询 SMITH 的薪水,工作,所在部门。
    (oracle对类大小写有区分,对sql语句不区分)
select sal,job,deptno from emp where ename = 'SMITH';
  • 显示每个雇员的年工资
select sal*12,ename from emp;
  • 使用列的别名
select sal*12 "年工资",ename from emp;
  • 处理 null 值,使用 nvl
    员工 12 个月的总共的工资+奖金(因为奖金有些人会出现空值)
select sal*12+nvl(comm,0)*12 "年工资",ename,comm from emp;

二、where语句

  • 显示工资高于 3000 的员工
select ename,sal from emp where sal>3000;
  • 显示入职日期,在某年某月入职得员工
select ename,hiredate from emp where hiredate>='1-1月-1980';
  • 显示多条件时,用and来连接条件,比如:显示工资到 2000 到 2500 之间得员工。
select ename,sal from emp where sal>=2000 and sal<2500;

三、like 操作符

% :表示任意0个到多个字符
_ :表示任意单个字符

  • 显示首字母为 S 的员工,工资
select ename,sal from emp where ename like 'S%';
  • 显示第三个字符为 O 的所有员工,工资
select ename,sal from emp where ename like '__O%';

四、where语句中 in 表达

  • 显示员工 empno 中 7499,7521,7788,7900员工的情况
select * from emp where empno in (7499,7521,7788,7900);

五、is null 语句

  • 显示没有上级的雇员信息
select * from emp where MGR is null;

六、逻辑符号

或:or
和:and

  • 查询工资高于 500 或是岗位为 MANGER 的雇员,同时还要满足他们的姓名首字母为大写的 J
select * from emp where (sal>500 or job='MANGER') and ename like 'J%';

七、order by 语句

升序,由低到高:order by 默认排序 或 asc
降序,由高到低:desc

  • 按照雇员的工资由低到高显示雇员的信息
select * from emp order by sal;
  • 按照部门号升序,工资降序显示雇员信息
select * from emp order by deptno asc,sal desc;
  • 按照部门号升序,工资降序显示雇员信息,同时按照入职时间降序
select * from emp order by deptno,sal desc,hiredate desc;
  • 使用列的别名进行排序
select ename,sal*12 as "年薪" from emp order by "年薪";
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。