设为首页 收藏本站
查看: 833|回复: 0

[经验分享] ORACLE数据库的相关习题

[复制链接]

尚未签到

发表于 2016-8-10 07:33:53 | 显示全部楼层 |阅读模式
  一、选择题:
  1. 以下不是数据库特点的是:
  A. 高速数据传输 B. 较高的数据独立性
  C. 较小的数据冗余 D. 多用户数据共享
  2.SQL语言中用来创建、删除及修改数据库对象的部分被称为:
  A. 数据库控制语言(DCL) B. 数据库定义语言(DDL)
  C. 数据库操纵语言(DML)  D. 数据库事务处理语言
  3、以下语句的作用是:
  SELECT ename,sal FROM emp
  WHERE sal<(SELECT min(sal) FROM emp) + 1000;
  A. 显示工资低于1000元的雇员信息
  B. 将雇员工资小于1000元的工资增加1000后显示
  C. 显示超过最低工资1000元的雇员信息
  D. 显示不超过最低工资1000元的雇员信息
  4、表的主键特点中,说法错误的是:
  A. 一个表只能定义一个主键(可以有多个外键
  B. 主键可以定义在表级或列级
  C. 主键的每一列都必须非空
  D. 主键的每一列都必须惟一
  5. 用来存放可变长度字符串的函数是:
  A. CHAR B. VARCHAR2
  C. NUMBER D. BOOLEAN
  6、在程序中正确的变量定义语句是:
  A. emp_record emp.ename%ROWTYPE
  B. emp_record emp%ROWTYPE
  C. v_ename emp%TYPE
  D. v_ename ename%TYPE
  7、以下表达式的结果非空的是:
  A. NULL||NULL  B. 'NULL'||NULL
  C. 3+NULL  D. (5>NULL)
  8、在程序中必须书写的语句是:
  A. SET SERVEROUTPUT ON B. DECLARE
  C. BEGIN  D. EXCEPTION
  9、有关游标的论述,正确的是:
  A. 隐式游标属性%FOUND代表操作成功
  B. 显式游标的名称为SQL
  C. 隐式游标也能返回多行查询结果
  D. 可以为UPDATE语句定义一个显式游标
  10. 下列有关触发器和存储过程的描述,正确的是:
  A. 两者都可以传递参数
  B. 两者都可以被其他程序调用
  C. 两种模块中都可以包含数据库事务语句
  D. 两者创建的系统权限不同
  ABDDBBBCDD
  二、填空题:
  1、数据库系统的发展经历了 层次 模型、 网状 模型及 关系 模型几个阶段。当今应用最普遍的是 关系数据库管理系统。
  2、.如果要求学生关系S(SNO,NAME,SEX,AGE)中存储的学生信息满足下列条件:男生(SEX=‘F’)的年龄在15-60岁之间,女生(SEX=‘M’)的年龄在15-55岁之间。那么在关系S的定义中加入的检查子句正确的是
   Check(sex = ‘F’ and (age>=15and age<=60)) or (sex =’M’ and (age>=15and age<=55))
  3、.在SQL语言中,用于测试列值非空的语句是(B )
  A. IS NOT EMPTY B.IS NOT NULL
  C. NOT UNIQUE D.NOT EXISTS
  4、.针对数据库系统,写出下面英文缩写的中文名称或含义:
  C/S:___客服端与服务器__________ DML:__数据操作语言___________。
  5、SELECT ename, job,sal FROM emp WHERE sal>=3000;
  该查询语句的功能
  6、显示部门10和部门20中工资小于1500的雇员。
   Select *from emp where (depno =10 or deptno =20 )and sal <1500
  7、显示姓名以“S”开头的雇员信息。
   select * from emp where ename like'S%’
  8、查询比SCOTT工资高的雇员名字和工资。
   Select ename.sal from emp where sal>(select sal from emp where ename =’ SCOTT’);
  三、编程题:(10*4)
  1、查询和SCOTT同一部门且比他工资低的雇员名字和工资。
  Select ename ,sal from emp where deptono =(select deptno from emp where ename = ‘scott’)and sal<(slect sal from emp where ename =’scott);
  2、向dept表中插入一条部门信息:部门编号(deptno)为60,部门名称(dname)为“经理部”,部门所在地(loc)“南阳市”
  Insert into dept(deptno,dname,loc) values(60,’ 经理部’,’ 南阳市’);
  3、编写给雇员增加工资的存储过程CHANGE_SALARY,通过IN类型的参数传递要增加工资的雇员编号和增加的工资额。
  Create or replace procedure change_salay(v_empno in number,v_sal in number)
  As
  Begin
  Update emp set sal = sal+v_sal where empno = v_empno;
  End;
  
  
  
  编写给雇员增加工资的存储过程CHANGE_SALARY,通过IN类型的参数传递要增加工资的雇员编号和增加的工资额。
  步骤1:登录SCOTT账户。
  步骤2:在SQL*Plus输入区中输入以下存储过程并执行:
  CREATE OR REPLACE PROCEDURE CHANGE_SALARY(P_EMPNO IN NUMBER DEFAULT 7788,P_RAISE NUMBER DEFAULT 10)
  AS
  V_ENAME VARCHAR2(10);
  V_SAL NUMBER(5);
  BEGIN
  SELECT ENAME,SAL INTO V_ENAME,V_SAL FROM EMP WHERE EMPNO=P_EMPNO;
  UPDATE EMP SET SAL=SAL+P_RAISE WHERE EMPNO=P_EMPNO;
  DBMS_OUTPUT.PUT_LINE('雇员'||V_ENAME||'的工资被改为'||TO_CHAR(V_SAL+P_RAISE));
  COMMIT;
  EXCEPTION
  WHEN OTHERS THEN
  DBMS_OUTPUT.PUT_LINE('发生错误,修改失败!');
  ROLLBACK;
  END;
  
  4.创建一个通过雇员编号返回雇员名称的函数GET_EMP_NAME。
  
  Create or replace function get_emp_name(v_empno number)
  Return varchar2
  As
  V_ename varchar2(20);
  Begin
  Select ename into v_ename from emp where empno = v_empno;
  Return v_ename;
  End;
  
  
  
  
  
  创建一个通过雇员编号返回雇员名称的函数GET_EMP_NAME。
  步骤1:登录SCOTT账户。
  步骤2:在SQL*Plus输入区中输入以下存储函数并编译:
  CREATE OR REPLACE FUNCTION GET_EMP_NAME(P_EMPNO NUMBER DEFAULT 7788)
  RETURN VARCHAR2
  AS
  V_ENAME VARCHAR2(10);
  BEGIN
  SELECT ENAME INTO V_ENAME FROM EMP WHERE EMPNO=P_EMPNO;
  RETURN(V_ENAME);
  EXCEPTION
  WHEN NO_DATA_FOUND THEN
  DBMS_OUTPUT.PUT_LINE('没有该编号雇员!');
  RETURN (NULL);
  WHEN TOO_MANY_ROWS THEN
  DBMS_OUTPUT.PUT_LINE('有重复雇员编号!');
  RETURN (NULL);
  WHEN OTHERS THEN
  DBMS_OUTPUT.PUT_LINE('发生其他错误!');
  RETURN (NULL);
  END;
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-255678-1-1.html 上篇帖子: ORACLE中bulk collect的用法 下篇帖子: 一次访问ORACLE数据字典的优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表