oracle習題帶答案__oracle

來源:互聯網
上載者:User

題目:已知公司的員工表EMP(EID, ENAME, BDATE, SEX, CITY),

部門表DEPT(DID, DNAME, DCITY),

工作表WORK(EID,DID,STARTDATE,SALARY)。各個欄位說明如下:

EID——員工編號,最多6個字元。例如A00001(主鍵)

ENAME——員工姓名,最多10個字元。例如SMITH

BDATE——出生日期,日期型

SEX——員工性別,單個字元。F或者M

CITY——員工居住的城市,最多20個字元。例如:上海

DID——部門編號,最多3個字元。例如 A01 (主鍵)

DNAME——部門名稱,最多20個字元。例如:研發部門

DCITY——部門所在的城市,最多20個字元。例如:上海

STARTDATE——員工到部門上班的日期,日期型

SALARY——員工的工資。整型。

請使用ORACLE的sql*plus 完成下列的操作

1、 建立表EMP,DEPT,WORK,並定義表的主鍵和外鍵。

2、 向每個表中插入適當的資料。例如:插入三條部門的資料,分別為每個部門插入兩條員工資料

3、 查詢“研發”部門的所有員工的基本資料

4、 查詢擁有最多的員工的部門的基本資料(要求只取出一個部門的資訊),如果有多個部門人數一樣,那麼取出部門編號最小的那個部門的基本資料。

5、 顯示部門人數大於5的每個部門的編號,名稱,人數

6、 顯示部門人數大於5的每個部門的最高工資,最低工資

7、 列出員工編號以字母P至S開頭的所有員工的基本資料

8、 刪除年齡超過60歲的員工

9、 為工齡超過10年的職工增加10%的工資

答案如下:

create table emp1(
eid number(6),
ename varchar2(20),
bdate date,
sex   char(2),
city varchar2(20)
);

create table dept1(
did number(6),
dname varchar2(20),
dcity varchar2(20)
);

create table work1(
eid number(6),
did number(6),
startdate date,
salary integer
);

1.
alter table emp1
add constraint emp1_eid_pk primary key(eid);

alter table dept1
add constraint dept1_did_pk primary key (did);

alter table work1
add constraint work1_eid_fk foreign key(eid) references emp1(eid);

alter table work1
add constraint work1_did_fk foreign key (did) references dept1(did);

2.
往emp1 表添加資料
insert into emp1 (eid,ename, bdate)
select empno, ename, hiredate
from emp;

update emp1
set (sex,city) =('男','北京'); ( 這種寫法是錯誤的,只有利用子查詢更新表,可以這樣)

update emp1
set sex='男' , city='北京';

往dept1表添加資料

insert into dept1(did,dname)
select deptno,dname
from dept;

update dept1
set dcity='北京';

/把其中的一個部門改成開發,為了後面練慣用
update dept1
set dname='developer'
where did=10;

往work1表添加資料

insert into work1 (eid,did,startdate,salary)
values(7369,10, '', 2500);

insert into work1 (eid,did,startdate,salary)
values(7499,10, '', 2501);

insert into work1 (eid,did,startdate,salary)
values(7521,10, '', 2500);

3.
select emp1.eid, emp1.ename,dept1.dname,work1.salary
from emp1,dept1,work1
where emp1.eid=work1.eid
and dept1.did=work1.did;

4.

select max(e.renshu), d.did 
from (select did,count(eid) renshu
              from work1 
              group by did)e,dept1 d
where d.did=e.did
group by d.did;

5.

select e.*, d.did, d.dname, d.dcity
from (select did,count(eid)
              from work1 
              group by did
              having count(eid)>5)e,dept1 d
where d.did=e.did;

6.

select max(salary), min(salary)
from work1
having count(eid)>2 
group by did;

7.

select ename

from emp1

where ename like 'S%'

or ename like 'P%' ;

8.

delete from emp1

where months_between( sysdate, bdate)/12>60;

9.

update work1

set salary= salary*1.1

where months_between( sysdate ,startdate)/12>10;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.