oracle操作题——试卷题

  • 一、创建一个新用户john,密码为john123。其默认表空间为users,分配表空间配额为20m(5分)
  • 二、给该用户授予connect和rescource两个角色(3分)
  • 三、以该用户身份连接数据库。(2分)
  • 四、在该用户方案下建立新表,表要求和约束要求如下:表结构中数据类型根据数据值自定义。(10分)
  • 五、根据要求写命令(每小题2分)
    • 1. 将john方案下的仓库表中面积大于300的记录复制成新表仓库1
    • 2. 向仓库1中插入一条记录(wh5,济南,420)
    • 3. 删除仓库1中,仓库号为wh4的记录
    • 4. 对仓库1表按面积建立索引,索引名为area_index
    • 5. 根据仓库表和职工表建立一个视图view1,通过它可以查询北京和上海的仓库职工的工资总和
    • 6. 创建一个角色role1,通过该角色将仓库1表的增删改查权限授予所有用户。
    • 7. 自定义一个异常,根据职工的员工号查询该职工的工资,如果工资小于1200,则抛出异常信息:“你的工资太低了!”
    • 8. 查看john用户的所有表
  • 六、用sql命令完成下面的查询(每小题3分)
    • 1. 从职工表中检索所有工资值,要求结果中没有重复值,并按工资降序排列。
    • 2. 检索工资多于1230元的职工号。
    • 3. 检索哪些仓库有工资多于1210元的职工。
    • 4. 给出在仓库“wh1”或“wh2”工作,并且工资少于1250元的职工号。
    • 5. 找出工资多于1230元的职工号和他们所在的城市。
    • 6. 哪些城市至少有一个仓库的职工工资为1250元。
    • 7. 查询所有职工的工资都多于1210元的仓库的信息。
    • 8. 找出和职工e4挣同样工资的所有职工。
    • 9. 检索出工资在1220元到1240元范围内的职工信息。
    • 10. 求在wh2仓库工作的职工的最高工资值。
    • 11. 检索没有职工的仓库的信息
    • 12. 求至少有两个职工的每个仓库的平均工资。
  • 七、PL/SQL编程
    • (一) 利用case语句,根据grade变量的值ABCD分别输出“优秀”、“良好”、“合格”、“不合格”(4分)
    • (二) 使用whie循环编程计算,输出n!,n值从键盘录入(5分)
    • (三) 编写存储过程,输出在仓库wh1工作的职工信息,并调用该过程。过程名自定。(6分)
    • (四)编写存储过程,统计职工表中各部门的平均工资,并只显示平均工资超过1230元的仓库信息。调用此过程。过程名自定(6分)
    • (五) 已有表example,要求创建一个序列myseq,再创建一个触发器,可以自动为example主键赋值,并进行测试。(7分)
  • 八、标准答案

一、创建一个新用户john,密码为john123。其默认表空间为users,分配表空间配额为20m(5分)

create user c##john identified by john123 default tablespace users quote 20M on users;

二、给该用户授予connect和rescource两个角色(3分)

grant connect,resource to c##john;

三、以该用户身份连接数据库。(2分)

conn c##john/john123

四、在该用户方案下建立新表,表要求和约束要求如下:表结构中数据类型根据数据值自定义。(10分)

create table  cangku(ckid varchar2(10) constraint pk_id primary key,city varchar2(10),area varchar2(10) constraint ck_area check(area<=1000)
);create table zhigong(ckid varchar2(10) constraint fk_id references cangku(ck_id),zhgid varchar2(10) constraint pk_zhgid primary key,sal number constraint ck_sal check(sal between 1200 and 2000)
);

五、根据要求写命令(每小题2分)

1. 将john方案下的仓库表中面积大于300的记录复制成新表仓库1

create table cangku1 as select * from cangku where area>3000;

2. 向仓库1中插入一条记录(wh5,济南,420)

insert into cnagku1 values('wh5','济南',420);

3. 删除仓库1中,仓库号为wh4的记录

delete from cangku1 where ckid='wh4';

4. 对仓库1表按面积建立索引,索引名为area_index

create index area_index on cangku1(area);

5. 根据仓库表和职工表建立一个视图view1,通过它可以查询北京和上海的仓库职工的工资总和

create or replace view view1 as select sum(sal) from zhigong where ck_id in(select ck_id from cangku where city in('北京','上海'));create or replace view view1 as select sum(sal) from zhigong where ckid in(select ckid from cangku where city='北京' or city='上海');

6. 创建一个角色role1,通过该角色将仓库1表的增删改查权限授予所有用户。

system/root
create role role1;
grant all on cangku1 to role1;
grant role1 to public;

7. 自定义一个异常,根据职工的员工号查询该职工的工资,如果工资小于1200,则抛出异常信息:“你的工资太低了!”

declaremyexception exception;vno zhigong.zhgid%type := &no;vsal zhigong.sal%type;
beginselect sal into vsal from zhigong where zhgid=vno;if v_sal<1200 thenraise myexceptionend if;exceptionwhen myexception thendbms_output.put_line('你的工资太低了');
end;

8. 查看john用户的所有表

select table_name, tablespace_name, status from user_tables;

六、用sql命令完成下面的查询(每小题3分)

1. 从职工表中检索所有工资值,要求结果中没有重复值,并按工资降序排列。

select distinct sal from zhigong order by sal desc;

2. 检索工资多于1230元的职工号。

select zhgid from zhigong where sal>1230;

3. 检索哪些仓库有工资多于1210元的职工。

select ckid,zhgid,sal from zhigong where sal>1210;

4. 给出在仓库“wh1”或“wh2”工作,并且工资少于1250元的职工号。

select zhgid from zhigong where ckid in('wh1','wh2') and sal<1250;

5. 找出工资多于1230元的职工号和他们所在的城市。

select zhgid,city from zhigong z,cangku c where z.ckid=c.ckid and sal>1230;

6. 哪些城市至少有一个仓库的职工工资为1250元。

select city from zhigong z,cangu c where z.ckid=c.ckid and sal=1250;

7. 查询所有职工的工资都多于1210元的仓库的信息。

select * from cangku where ckid in (select ckid from zhigong group by ckid having min(sal)>1210);

8. 找出和职工e4挣同样工资的所有职工。

select * from zhigong where sal=(select sal from zhigong where zhgid='e4');

9. 检索出工资在1220元到1240元范围内的职工信息。

select * from zhigong where sal between 1220 and 1240;

10. 求在wh2仓库工作的职工的最高工资值。

select max(sal) from zhigong where ckid='wh2';

11. 检索没有职工的仓库的信息

select * from cangku where ckid not in(select ckid from zhigong);

12. 求至少有两个职工的每个仓库的平均工资。

select ckid,avg(sal) from zhigong group bu ckid having count(zhgid)>=2;

七、PL/SQL编程

(一) 利用case语句,根据grade变量的值ABCD分别输出“优秀”、“良好”、“合格”、“不合格”(4分)

declarevgrade char(1):='&no';
begincase vgradewhen 'A' then dbms_output.put_line('优秀');when 'B' then dbms_output.put_line('良好');when 'C' then dbms_output.put_line('合格');when 'D' then dbms_output.put_line('不合格');   elsedbms_output.put_line('输入不符合要求');end case;
end;

(二) 使用whie循环编程计算,输出n!,n值从键盘录入(5分)

declarevn number := &n;result vn%type :=1;
beginwhile vn>=1 loopresult := result*vn;vn := vn-1;end loop;dbms_output.put_line(vn||'的阶层为:'||result);
end;

(三) 编写存储过程,输出在仓库wh1工作的职工信息,并调用该过程。过程名自定。(6分)

create or replace procedure mydure
iscursor mycur is select * from zhigong where ckid='wh1';
beginfor my in mycur loopdbms_output.put_line(my.ckid|| '    ' ||my.zhgid|| '   ' ||my.sal);end loop;
end;beginmydure();
end;

(四)编写存储过程,统计职工表中各部门的平均工资,并只显示平均工资超过1230元的仓库信息。调用此过程。过程名自定(6分)

create or replace procedure mydure
iscursor mycur is select ckid,avg(sal) from zhigong group by ckid having avg(sal)>1230;
beginfor my in mycur loopdbms_output.put_line(my.ckid || '     ' || my.avg(sal));end loop;
end;beginmydure();
end;

(五) 已有表example,要求创建一个序列myseq,再创建一个触发器,可以自动为example主键赋值,并进行测试。(7分)

表:create table example(id number(2) primary key,ename varchar2(20),address varchar2(30));
序列要求:初始值为1,增量为1,无最大值,不循环,没有缓冲区。

create sequence myseq start with 1 increment by 1 nocycle nocache;create table example(id number(2) primary key,ename varchar2(20),address varchar2(30)
);create or replace trigger mytrig before insert on example for each row
beginif :new.id is null thenselect myseq.nextval into :new.id from dual;end if;
end;insert into example(ename,address) values('张三','北京时代胡同');

八、标准答案


--一、
CREATE user john identified by john123 DEFAULT tablespace users quota 20m on users;--二、
grant connect,resource to john;--三、
conn john/john123--四、
create table cangku(ckid char(3) primary key,city varchar2(10),area number(3) check (area<=1000));
create table zhigong(ckid char(3) references cangku(ckid),zhgid char(2),sal number(4) check (sal>=1200 and sal<=2000));
insert into cangku values('wh1','北京',370);
insert into cangku values('wh2','上海',500);
insert into cangku values('wh3','广州',200);
insert into cangku values('wh4','武汉',400);
insert into zhigong values('wh2','e1',1220);
insert into zhigong values('wh1','e3',1210);
insert into zhigong values('wh2','e4',1250);
insert into zhigong values('wh3','e6',1230);
insert into zhigong values('wh1','e7',1250);--五、
--1.
create table cangku1 as select * from cangku where area>300;
--2.
insert into cangku1 values('wh5','济南',420);
--3.
delete from cangku1 where ckid='wh4';
--4.
create index area_index on cangku1(area);
--5.
create or replace view view1 as select sum(sal) from zhigong where ckid in(select ckid from cangku where city='北京' or city='上海');
--6. 连接system
create role role1;
grant all on john.cangku1 to role1;
grant role1 to public;--7.
DECLAREsal_exception EXCEPTION;v_no zhigong.zhgid% TYPE:='&no';v_sal zhigong.sal%type;
beginselect sal into v_sal from zhigong where zhgid= v_no;if v_sal<1200 THENraise sal_exception;end if;EXCEPTIONwhen sal_exception THENdbms_output.put_line('你的工资太低了');
end;--8.
select table_name, tablespace_name, status from user_tables;--六、用sql命令完成下面的查询
--1.    从职工表中检索所有工资值,要求结果中没有重复值,并按工资降序排列。
select distinct sal from zhigong order by sal desc;
--2.    检索工资多于1230元的职工号。
select zhgid from zhigong where sal>1230;
--3.    检索哪些仓库有工资多于1210元的职工。
select ckid, zhgid,sal from zhigong where sal>1210;
--4.    给出在仓库“wh1”或“wh2”工作,并且工资少于1250元的职工号。
select zhgid from zhigong where sal<1250 and ckid in('wh1','wh2');
--5.    找出工资多于1230元的职工号和他们所在的城市。
select zhgid,city from cangku c, zhigong z where c.ckid= z.ckid and sal>1230;
--6.    哪些城市至少有一个仓库的职工工资为1250元。
select c.ckid,city from cangku c, zhigong z where c.ckid= z.ckid and sal=1250;
--7.    查询所有职工的工资都多于1210元的仓库的信息。
select * from cangku c where 1210<all(select sal from zhigong where c.ckid=ckid) and ckid in (select ckid from zhigong);
--8.    找出和职工e4挣同样工资的所有职工。
select * from zhigong where sal=(select sal from zhigong where zhgid='e4');
--9.    检索出工资在1220元到1240元范围内的职工信息。
select * from zhigong where sal between 1220 and 1240;
--10.   求在wh2仓库工作的职工的最高工资值。
select zhgid,sal from zhigong where ckid='wh2' and sal=(select max(sal) from zhigong where ckid='wh2');
--11.   检索没有职工的仓库的信息
select * from cangku where ckid not in(select ckid from zhigong);
--12.   求至少有两个职工的每个仓库的平均工资。
select ckid,avg(sal) from zhigong group by ckid having count(zhgid)>=2;--七、PL/SQL编程
--(一)
set serveroutput on
declaregrade char:='&no';
BEGINcase gradeWHEN 'A' THENdbms_output.put_line('优秀');WHEN 'B' THENdbms_output.put_line('良好');WHEN 'C' THENdbms_output.put_line('合格');WHEN 'D' THENdbms_output.put_line('不合格');ELSEdbms_output.put_line('输入不符合要求');END CASE;
end;--(二)
declarev_no int:=&no;v_jch int:=1;i int:=1;
beginwhile i<=v_no loopv_jch:= v_jch*i;i:=i+1;end LOOP;dbms_output.put_line(v_no||'的阶乘是:'||v_jch);
end;--(三)
--创建过程
create or REPLACE procedure zhg_proc
asCURSOR mycursor is select * from zhigong where ckid='wh1';rec_zhigong zhigong%rowtype;
beginopen mycursor;loopFETCH mycursor into rec_zhigong;exit when mycursor%notfound;dbms_output.put_line(rec_zhigong.ckid||' '||rec_zhigong.zhgid||' '|| rec_zhigong.sal);END LOOP;close mycursor;
end;
--调用过程
set serveroutput on
beginzhg_proc();
end;--(四)
create or replace procedure zhig_proc
ascursor ckcur is select ckid,avg(sal) avgsal from zhigong group by ckid having avg(sal)>1230;rec_zhig ckcur%rowtype;
beginopen ckcur;loop FETCH ckcur into rec_zhig;exit when ckcur%notfound;dbms_output.put_line(rec_zhig.ckid||' ' || rec_zhig.avgsal);END LOOP;close ckcur;
end;
--调用过程
set serveroutput on
beginzhig_proc();
end;--(五)
--创建表:
create table example(id number(2) primary key,ename varchar2(20),address varchar2(30));
--创建序列:
create sequence myseq start with 1 increment by 1 nomaxvalue nocycle nocache;
--创建触发器:
create or REPLACE trigger exam_trig
before insert on example
for each row
beginif new.id is nullselect myseq.nextval into :new.id from dual;end if;
end;
--测试:
insert into example(ename, address) values('aaa','nanjing');
select * from example;

oracle操作题——试卷题相关推荐

  1. 某高校计算机系举办了一场,国家二级MS+OFFICE高级应用机试(操作题)-试卷25

    国家二级MS OFFICE高级应用机试(操作题)-试卷25 (总分:6.00,做题时间:90分钟) 一. Word字处理软件的使用(总题数:1,分数:2.00) 1.请在"答题"菜 ...

  2. Oracle(11g)数据库教程之十:Oracle操作题 (复习课)

    Oracle(11g)数据库教程之十:Oracle操作题 (复习课) 操作题 Sutdent表的定义 字段名 字段描述 数据类型 主键 非空 Id 学号 INT(10) 是 是 Name 姓名 VAR ...

  3. 一级计算机上字处理题的替换题步骤,一级计算机练习题计算机一级计算机基础及+MS+OFFICE+应用(操作题)-试卷6...

    计算机一级计算机基础及 MS OFFICE 应用(操作题)-试卷6 (总分:14.00,做题时间:90分钟) 一.基本操作题(总题数:1,分数:2.00) 1.1.在考生文件夹下CCTVA文件夹中新建 ...

  4. 计算机统考多媒体技术操作题,2020年9月网络教育统考《计算机应用基础》多媒体技术模拟题试卷操作题...

    2020年9月网络教育统考<计算机应用基础>多媒体技术模拟题试卷操作题 操作题: 1.在考生文件夹中,有一个"Test.rar"压缩文件,其中包括"Test1 ...

  5. 计算机表格应用试卷,2020年7月网络教育统考《计算机应用基础》电子表格模拟题试卷操作题...

    2020年7月网络教育统考<计算机应用基础>电子表格模拟题试卷操作题 操作题: 1.打开考生文件夹下的Excel工作簿"EXCEL考题6.xlsx",在Sheet1工作 ...

  6. 计算机网络统考outlook操作视频,2020年9月网络教育统考《计算机应用基础》Outlook模拟题试卷...

    网络教育统考一般都需要考计算机应用基础. 大学英语等科目,其中计算机应用基础考试分很多题型,比如Outlook.基础知识.计算机安全等等,现在我们提供Outlook的模拟试卷,学生们可以根据题目进行复 ...

  7. 计算机表格应用试卷,2020年9月网络教育统考《计算机应用基础》电子表格模拟题试卷操作题...

    网络教育统考一般都需要考计算机应用基础. 大学英语等科目,其中计算机应用基础考试分很多题型,比如电子表格.基础知识.计算机安全等等,现在我们提供电子表格操作题的模拟试卷,学生们可以根据题目进行复习,多 ...

  8. 一级计算机赵州桥,一级计算机练习题计算机一级计算机基础及+MS+OFFICE+应用(操作题)-试卷8...

    计算机一级计算机基础及 MS OFFICE 应用(操作题)-试卷8 (总分:14.00,做题时间:90分钟) 一.基本操作题(总题数:1,分数:2.00) 1.1.将考生文件夹下的LOBA文件夹中的T ...

  9. 2020年9月计算机应用基础统考真题,2020年9月网络教育统考《计算机应用基础》电子表格模拟题试卷操作题...

    网络教育统考一般都需要考计算机应用基础. 大学英语等科目,其中计算机应用基础考试分很多题型,比如电子表格.基础知识.计算机安全等等,现在我们提供电子表格操作题的模拟试卷,学生们可以根据题目进行复习,多 ...

最新文章

  1. Java学习笔记11
  2. tensorboard ckpt pb 模型的输出节点_PyTorch 1.1.0发布,官方支持TensorBoard,还有更多性能提升!...
  3. c# 正则表达式 html标签,C#匹配HTML标签,正则表达式谁会?
  4. java中抽象类继承抽象类_Java中的抽象类用示例解释
  5. 基于界面自动化测试框架的发展
  6. php fpm 平滑重启,nginx、php-fpm平滑重启和重载配置
  7. 190521每日一句
  8. 最大公约数与最小公倍数求法 C语言版
  9. Python 爬取拉钩网工作岗位
  10. Linux下查看电脑配置信息
  11. 管理储存组和邮箱数据库
  12. 学习笔记:使用requests+Beautiful4爬取优美图库
  13. Android游戏开发+实战开发教程视频
  14. qml 文本框获取焦点
  15. 计算机设备选型的基本原则,设备选型的概念和选型依据
  16. 计算机由硬件和软件组成
  17. Arthas-thread命令定位线程死锁
  18. C字符串操作strlen/strnlen_s详解
  19. python数据集_【Python数据分析实战】divorce数据集
  20. 动态规划+状态压缩思路解决旅行者问题

热门文章

  1. 计算机网络实验35步骤,计算机网络模拟器实验报告(1).(35页)-原创力文档
  2. 基于springboot在线考试报名系统 毕业设计-附源码031706
  3. kotlin “${ }”是什么意思?
  4. 考据党伤不起 - 东京首都大学发表《新世纪福音战士: Q》解说
  5. 怎么退出python
  6. 1060显卡支持dx12吗_GTX1660和GTX1060哪个性价比高?GTX1060和GTX1660显卡区别对比
  7. 网络工程师速记100条知识点
  8. Matlab中switch_case_otherwise语句详解
  9. Android使用SO库时要注意的一些问题
  10. GMT 时间格式转换到 TDateTime (Delphi)