Oracle 查询语句回顾练习(上



一.建表与插入数据

代码如下(示例):



create table Emp(
Ename varchar2(30),
Empno number(5),
Deptno number(5),
Job varchar2(20),
Hiredate Date,
Comm number(6,2),
Sal number(6,2)
);
create table Dept(    
Dname varchar2(30),
Deptno number(5),
Loc varchar2(50)
);
alter table Emp
 add constraint pk_empinfo primary key(Empno);
 alter table Dept
 add constraint pk_deptinfo primary key(Deptno);
 insert into emp(Ename,Empno,Deptno,Job,Comm,Sal) 
values('刘涛',10001,10,'办事员',500,2000)
insert into emp(Ename,Empno,Deptno,Job,Comm,Sal) 
values('吴昊',10002,10,'办事员',650,2200)
insert into emp(Ename,Empno,Deptno,Job,Comm,Sal) 
values('唐丹丹',10003,20,'办事员',650,2200)
insert into emp(Ename,Empno,Deptno,Job,Comm,Sal) 
values('李阳杨',20001,20,'经理',980,3200)
	insert into dept(Dname,Deptno,Loc) values('市场部',10,'辽宁大连')
insert into dept(Dname,Deptno,Loc) values('公关部',20,'辽宁沈阳')

二.查询语句

1.1) 选择部门30中的雇员

select ename from emp where deptno=20;
  1. 列出所有办事员的姓名、编号和部门
select empno,ename,dname from emp left join dept on emp.deptno=dept.deptno;

/* 3) 找出佣金高于薪金的雇员 */

select ename from emp where comm>sal;

/*4) 找出佣金高于薪金60%的雇员 */

select ename from emp where comm<(0.6*sal);

/5) 找出部门10中所有经理和部门20中的所有办事员的详细资料/

select * from emp where (job='经理' and deptno=10or (job='办事员' and deptno=20);

/* 6) 找出部门10中所有经理、部门20中所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料 */

select * from emp where (job='经理' and deptno=10or (job='办事员' and deptno=20)or(job!='办事员' and job!='经理' and sal>=2000);

/* 7) 找出收取佣金的雇员的不同工作 */

select distinct job from emp where comm is not null;

/* 8) 找出不收取佣金或收取的佣金低于100的雇员 */

select ename from emp where comm<100 or comm is null;
---
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值