第二章 作业2

一、简单查询
1、查询出EMP 表中含有几个工作岗位。(用DISTINCT 去除重复记录)
select distinct job from emp;
2、找出不收取奖金或收取奖金少于100 的员工。
select * from emp where comm is null or comm < 100;
3、找出部门10中所有经理(MANAGER),部门20 中所有办事员(CLERK)
以及既不是经理又不是办事员(CLERK)但其薪金大于或等于2000
的所有员工的详细资料。
select e.* from emp e where ((e.deptno = 10 and e.job = ‘MANAGER’) or (e.deptno = 20 and e.job = ‘CLERK’))
or
(e.job != ‘MANAGER’ and e.job = ‘CLERK’and sal >=2000);

二、插入数据
1、(1) 把员工信息插入员工表,编号:1000,姓名:张三,薪水:3200。
insert into emp (empno,ename,sal) values (‘1000’,’张三’,’3200’);
(2) 把员工信息插入员工表,编号:1001,姓名:李四,薪水:3500,雇
用日期:1992-02-23。
Insert into emp (empno,ename,hiredate,sal) values (‘1001’,’李四’,to_date(‘1992-02-23’,’YYYY/MM/DD’),’3500’);
–(3) 把员工信息插入员工表,编号:1002,姓名:王五,薪水:3600,雇
用日期:系统当前日期。
insert into emp (empno,ename,hiredate,sal) values (‘1002’,’王五’,to_date(to_char(‘sysdate’,’YYYY/MM/DD’)),’3600’);

(4) 新创建一个表EMP1,同时把EMP 表中的部门为20 的所有员工数据
插入到EMP1 表中。
create table emp1 as select * from emp where deptno = 20;
select * from emp1;
2、 创建表 员工表EMP10
字段如下:

使用SQL 语句插入如下数据, :
create table emp10 (eno number,ename varchar2(20),age number,sex varchar2(2),deptno number);
select * from emp10;

(1) 在eno 字段上创建主键约束。
alter table emp10 add constraint PK_emp10 primary key(eno);
(2) 在ename 字段上创建非空约束。
alter table emp10 modify (ename not null);
(3) 创建检查约束判断age 在18 到60 岁之间的男性或者age 在18 到55
岁之间的女性。
alter table emp10 add constraint CK_emp10_age
CHECK((age between 18 and 60 and sex = ‘男’)or (age between 18 and 55 and sex = ‘女’));
(4) 创建和 emp10 表字段相同的emp10_bak 表,将emp10_bak 表的deptno
字段与dept 表的deptno 字段创建外键约束。
create table emp10_bak as select * from emp10 where 1=2;
Alter table emp10_bak add Constraint FK_dept_deptno foreign key(deptno) references dept(deptno);

猜你喜欢

转载自blog.csdn.net/weixin_42800008/article/details/81220364