Oracle练习题分析
Oracle经典练习题及标准答案
![Oracle经典练习题及标准答案](https://img.taocdn.com/s3/m/784dbaee09a1284ac850ad02de80d4d8d15a0192.png)
Oracle经典练习题及标准答案oracle经典练习sql/*1、选择在部门30中员工的所有信息*/select * from scott.emp where deptno = '30'/*2、列出职位为(MANAGER)的员工的编号,姓名*/select empno, ename from scott.emp where job = 'MANAGER'/*3、找出奖金高于工资的员工*/select * from scott.emp where comm > sal/*4、找出每个员工奖金和工资的总和*/select ename, sal + nvl(comm, 0) from scott.emp/*5、找出部门10中的经理(MANAGER)和部门20中的普通员工(CLERK) */select *from scott.empwhere deptno = '10'and job = 'MANAGER'unionselect *from scott.empwhere job = 'CLERK'and deptno = '20'/*6、找出部门10中既不是经理也不是普通员工,而且工资大于等于2000的员工*/ select *from scott.empwhere job != 'MANAGER'and job != 'CLERK'and sal > 2000/*7、找出有奖金的员工的不同工作*/select distinct(job) from scott.emp where comm is not null /*8、找出没有奖金或者奖金低于500的员工*/select *from scott.empwhere comm is not nulland comm > 500/*9、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面*/select enamefrom scott.emporder by (months_between(sysdate, hiredate) / 12) descselect ename,hiredate from scott.emp order by hiredate/*10、找出每个月倒数第三天受雇的员工*/select * from scott.emp where hiredate = last_day(hiredate) - 2/*11、分别用case和decode函数列出员工所在的部门,deptno=10显示'部门10',deptno=20显示'部门20'deptno=30显示'部门30'deptno=40显示'部门40'否则为'其他部门'*/select ename,case deptnowhen 10 then'部门10'when 20 then'部门20'when 30 then'部门30'when 40 then'部门40'else'其他部门'end 工资情况from scott.empselect ename,decode(deptno,10,'部门10',20,'部门20',30,'部门30',40,'部门40','其他部门') 工资情况from scott.emp/*12、分组统计各部门下工资>500的员工的平均工资*/select avg(sal) from scott.emp where sal > 500 group by deptno/*13、统计各部门下平均工资大于500的部门*/select deptno from scott.emp group by deptno having avg(sal) > 500 /*14、算出部门30中得到最多奖金的员工奖金*/ select max(comm) from scott.emp where deptno = 30/*15、算出部门30中得到最多奖金的员工姓名*/select enamefrom scott.empwhere deptno = 30and comm = (select max(comm) from scott.emp where deptno = 30) /*16、算出每个职位的员工数和最低工资*/select count(ename), min(sal), job from scott.emp group by job/*17、列出员工表中每个部门的员工数,和部门no */select count(ename), deptno from scott.emp group by deptno/*18、得到工资大于自己部门平均工资的员工信息*/select *from scott.emp ewhere sal > (select avg(sal) from scott.emp where e.deptno = deptno)select *from scott.emp e1,(select avg(sal) sals, deptno from scott.emp group by deptno) e2where sal > salsand e1.deptno = e2.deptno/*19、分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金) */select avg(nvl(comm,0)), sum(sal + nvl(comm, 0))from scott.empgroup by deptno,job/*20、笛卡尔集*/select * from scott.emp, scott.dept/*21、显示员工ID,名字,直属主管ID,名字*/select empno,ename,mgr,(select ename from scott.emp e1 where e1.empno = e2.mgr) 直属主管名字from scott.emp e2/*22、DEPT表按照部门跟EMP表左关联*/select *fromscott.dept, scott.empwherescott.dept.deptno = scott.emp.deptno(+)/*23、使用此语句重复的内容不再显示了*/select distinct (job) from scott.emp/*24、重复的内容依然显示*/select *from scott.empUNION ALLselect * from scott.emp/*23和24题和22题是一样的*//*25、只显示了两个表中彼此重复的记录。
Oracle练习题讲解
![Oracle练习题讲解](https://img.taocdn.com/s3/m/365b8d1152ea551810a68760.png)
一、填空1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。
2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。
3.在需要滤除查询结果中重复的行时,必须使用关键字Distinct; 在需要返回查询结果中的所有行时,可以使用关键字ALL。
4.当进行模糊查询时,应使用关键字like和通配符问号(?)或百分号"%"。
5.Where子句可以接收From子句输出的数据,而HA VING子句则可以接收来自WHERE、FROM或GROUP BY子句的输入。
6.在SQL语句中,用于向表中插入数据的语句是Insert。
7.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用Select 语句。
8.使用Describe命令可以显示表的结构信息。
9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。
10.使用Save命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Run命令运行该文件。
11.一个模式只能够被一个数据库对象所拥有,其创建的所有模式对象都保存在自己的模式中。
12.根据约束的作用域,约束可以分为表级约束和列级约束两种。
列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的多个列。
13.填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID 的主键约束。
ALTER TABLE ClassAdd ____________ PK_LASS_ID (Constraint)PRIMARY KEY ________ (ID)14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman和DBcnmp15. Oracle提供了两种类型的权限:系统权限和对象权限。
oracle练习题及答案
![oracle练习题及答案](https://img.taocdn.com/s3/m/4968bb43a7c30c22590102020740be1e650ecce6.png)
oracle练习题及答案Oracle练习题及答案Oracle是一种强大的关系数据库管理系统,被广泛应用于企业级应用程序和数据管理中。
为了帮助大家更好地掌握Oracle数据库的知识,以下是一些Oracle练习题及答案,希望能够帮助大家更好地理解和掌握Oracle数据库的知识。
1. 什么是Oracle数据库?Oracle数据库是一种关系数据库管理系统,由美国Oracle公司开发。
它是一种高性能、可靠性高的数据库系统,被广泛应用于企业级应用程序和数据管理中。
2. Oracle数据库的特点有哪些?Oracle数据库具有以下特点:高性能、高可用性、可伸缩性、安全性高、灵活性强、易管理等。
3. 如何创建一个新的数据库用户?在Oracle数据库中,可以使用以下SQL语句来创建一个新的数据库用户:```CREATE USER username IDENTIFIED BY password;```4. 如何查看Oracle数据库中所有的表?可以使用以下SQL语句来查看Oracle数据库中所有的表:```SELECT table_name FROM user_tables;```5. 如何在Oracle数据库中插入一条新的记录?可以使用以下SQL语句来在Oracle数据库中插入一条新的记录:```INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);```6. 如何在Oracle数据库中更新一条记录?可以使用以下SQL语句来在Oracle数据库中更新一条记录:```UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;```7. 如何在Oracle数据库中删除一条记录?可以使用以下SQL语句来在Oracle数据库中删除一条记录:```DELETE FROM table_name WHERE condition;```通过以上Oracle练习题及答案的学习,相信大家对Oracle数据库有了更深入的了解。
Oracle基础(习题卷28)
![Oracle基础(习题卷28)](https://img.taocdn.com/s3/m/539cf6261fd9ad51f01dc281e53a580216fc50bb.png)
Oracle基础(习题卷28)说明:答案和解析在试卷最后第1部分:单项选择题,共60题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]数据库中用于恢复数据的重要文件是()A)备份文件B)恢复文件C)日志文件D)备注文件2.[单选题]在 Oracle 中,有一个名为 seq 的序列对象,以下语句能返回序列值但不会引起序列 值增加的是()。
A)select seq.ROWNUM from dual;B)select seq.ROWID from dual;C)select seq.CURRVAL from dual;D)select seq.NEXTVAL from dual;3.[单选题]查询员工工资信息时,结果按工资降序排列,正确的是A)ORDER BY 工资B)ORDER BY 工资 descC)ORDER BY 工资 ascD)ORDER BY 工资 dictinct4.[单选题]假设表包含3个字段NAMW、SEX、BIRTHMONTH,分别保存姓名、性别和出生年月这3类数据,应当为这类数据( )。
A)创建树索引B)创建位图索引C)分别创建树索引、位图索引、位图索引D)分别创建树索引、位图索引、树索引5.[单选题]Your production database uses file system storage. You want to move storage to Oracle Automatic StorageManagement (ASM). How would you achieve this?A)by using RMANB)by using Data PumpC)by using the Database Upgrade Assistant (DBUA)D)by using a transportable database6.[单选题]关于MySQL授权表的描述,错误的是( )A)通过flush privileges刷新授权表B)保存了明文密码C)可以insert授权表创建用户D)--skip-grant-tables参数,可以临时不加载授权表7.[单选题]()是Oracle 存储区中被单个用户进程所使用的内存区域,是用户进程私有的,不能共享。
Oracle练习day04(附答案及多种解法)
![Oracle练习day04(附答案及多种解法)](https://img.taocdn.com/s3/m/5babdd2e7dd184254b35eefdc8d376eeaeaa178d.png)
Oracle练习day04(附答案及多种解法)day01(附答案)(由于内容太过于简单上传没有被百度文库通过,于是和day04一起上传上来)1.查询职员表中工资大于1600的员工姓名和工资。
select ename,sal from emp where sal>1600;2.查询职员表中员工号为7369的员工的姓名和部门号码。
select ename,deptno from emp where empno=7369;3.选择职员表中工资不在4000到5000的员工的姓名和工资。
select ename,sal from emp where sal not between 4000 and 5000;4.选择职员表中在20和30号部门工作的员工姓名和部门号。
select ename,deptno from emp where deptno in(20,30);5.选择职员表中员工姓名的第三个字母是A的员工姓名。
select ename from emp where ename like '__A%';6.列出部门表中的部门名字和所在城市。
select dname,loc from dept;7.显示出职员表中的不重复的岗位job。
select distinct job from emp;8连接职员表中的职员名字、职位、薪水,列之间用逗号连接,列头显示成OUT_PUT(提示:使用连接符||、别名)。
select '姓名:' || ename || ',职位' || job || ',薪水' || sal OUT_PUT from emp9查询职员表emp中员工号、姓名、工资,以及工资提高百分之20%后的结果。
select empno,ename,sal,sal*1.2 sals from emp;10列出除了ACCOUNT部门还有哪些部门。
Oracle基础练习题及答案(多表查询1)(共5篇)
![Oracle基础练习题及答案(多表查询1)(共5篇)](https://img.taocdn.com/s3/m/412a143b77c66137ee06eff9aef8941ea66e4b5f.png)
Oracle基础练习题及答案(多表查询1)(共5篇)第一篇:Oracle基础练习题及答案(多表查询1)利用scott用户自带的四张表完成如下作业:1.列出至少有一个员工的所有部门select b.deptno,b.dname from emp a,dept b where a.deptno=b.deptno group by b.deptno,b.dname having count(*)>=1;2.列出薪金比SMITH高的所有员工select * from emp where sal>(select sal from emp where ename='SMITH');3.列出所有员工的姓名及其直接上级领导的姓名select a.ename,b.ename “leader” from emp a,emp b wherea.mgr=b.empno;4.列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称select a.empno,a.ename,a.hiredate,c.dname from emp a,emp b,dept c where a.mgr=b.empno and a.deptno=c.deptno anda.hiredate5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门select b.dname,a.* from emp a,dept b wherea.deptno(+)=b.deptno;6.列出所有CLERK(办事员)的姓名,及其部门名称,部门人数select aa.ename,aa.job,bb.dname,(select count(a.deptno)from emp a,dept b where a.deptno=b.deptno and b.dname=bb.dname group by a.deptno)from emp aa,dept bb where aa.deptno(+)=bb.deptno and aa.job='CLERK';7.列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数select a.job,min(sal),count(ename)from emp a,dept b wherea.deptno=b.deptno having min(sal)>1500 group by a.job;8.列出在部门SALES(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
oracle试题答案解释版
![oracle试题答案解释版](https://img.taocdn.com/s3/m/131a61f2fbb069dc5022aaea998fcc22bcd1432d.png)
oracle试题答案解释版要求20道判断、20道单选选择10道多选7道问答3道编程,再加20道填空一、单项选择题(每题1分,共20分)1、在Oracle中,一个用户拥有的所有数据库对象统称为(B)A)数据库B)模式C)表空间D)实例2、在Oracle中创建用户时,若未提及DEFAULTTABLESPACE关键字,则Oracle就将(D)表空间分配给用户作为默认表空间。
A)USERB)SYSC)DEFAULTD)SYSTEM3、在oracle中获取前10条的关键字是(D)A)topB)LimitC)firtD)rownum解释:top是qlerver数据库的关键字,limit是myql数据库的关键字,firt是informi某数据库的关键字4、在Oracle中,(B)操作符返回并集操作并不包括重复行A)InterectB)UnionC)UnionallD)Minu解释:Interect返回交集,union返回并集,不包括重复行,unionall返回并集,包括重复行,minu返回差集5、下面那个语句是错误的(D)A)createynonymdept_ynonforcott.deptB)createequencedept_equei ncrementby1C)alterequencedept_equeincrementby2D)dropdept_ynon6、oracle数据库中,通过(C)可以以最快的方式访问表中的一行。
A)主键B)唯一索引C)rowidD)全表扫描7、下面那个不是oracle程序设计中的循环语句(A)A)for…endforB)loop…endloopC)while…endloopD)for…endloop8、oracle存储结构正确的是(B)A)tablepace--egment--oblock--blockB)tablepace--egment--e某tent--blockC)tablepace--e某tent--egment--blockD)tablepace--e某tent--block–egment9、若tnname.ora文件中部分配置如下:某fhtdb=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hello)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=cce)))则表明:(C)A)Oracle服务器所在的主机名为DEDICATEDB)Oracle服务器所在的主机名为cceC)对应数据库的SID为cceD)对应数据库的SID为某fhtdb10、现在要启动数据库,那么下面哪一个启动语句是错误的(A)A)STRATUPNORMALB)STRATUPFORCEC)STRATUPNOMOUNTD)STARTUPMOUNT11、授予a用户在SCOTT.EMP表中SAL列的更新权限的语句是:(C)A)GRANTCHANGEONSCOTT.EMPTOSAB)GRANTUPDATEONSCOTT.EMP(SAL)TOSAC)GRANTUPDATE(SAL)ONSCOTT.E MPTOSAD)GRANTMODIFYONSCOTT.EMPTOSA12、一个表有百万以上数据,其中一个列经常被作为查询条件并且只有25个不同数据,适合使用(C)索引提高查询速度。
Oracle测试题(卷)+答案解析
![Oracle测试题(卷)+答案解析](https://img.taocdn.com/s3/m/2cdcb43b6fdb6f1aff00bed5b9f3f90f77c64d46.png)
Oracle测试题(卷)+答案解析1) PL/SQL块中可以使用下列()命令。
(选择两项)a) TRUNCATEb) DELETEc) SA VEPOINTd) ALTER TABLE2) 授予sa用户在SCOTT.EMP表中SAL列的更新权限的语句是(B)〔选择一项〕a) GRANT CHANGE ON SCOTT.EMP TO SAb) GRANT UPDA TE ON SCOTT.EMP(SAL) TO SAc) GRANT UPDA TE (SAL) ON SCOTT.EMP TO SAd) GRANT MODIFY ON SCOTT.EMP(SAL) TO SA3) EMP表有14条记录,则语句SELECT ‘Aptech’FROM EMP 的执行结果是(C)〔选择一项〕a) Aptechb) 无输出c) 14行Aptechd) 编译出错4) PL/SQL块中哪几部分是可选的()〔选择二项〕a) Declareb) Beginc) Exceptiond) Constant5) 在创建序列的过程中,下列()选项指定序列在达到最大值或最小值后,将继续从头开始生成值。
(选择一项)a) Cycleb) Nocyclec) Cached) Nocache6) 同义词有以下()用途。
(选择三项)a) 简化SQL 语句b) 隐藏对象的名称和所有者c) 提供对对象的公共访问d) 显示对象的名称和所有者7) Oracle中用来释放锁的语句有()〔选择二项〕a) commitb) Drop lockc) rollbackd) unlock8) 关于类型定义Number(9,2)说确的有()〔选择一项〕a) 整数部分9位,小数部分2位,共11位b) 整数部分7位,小数部分2位,共9位c) 整数部分6位,小数点一位,小数部分2位,共9位d) 以上说法均不正确9) 下列哪种Lob类型用来存储数据库以外的操作系统文件()〔选择一项〕a) CLOBb) BLOBc) CFILEd) BFILE10) Oracle中的三种系统文件分别是()〔选择三项〕a) 数据文件b) 归档文件c) 日志文件d) 控制文件11) 下列哪项不是Oracle中常用的分区方法?()〔选择一项〕a) 围分区b) 散列分区c) 列表分区d) 条件分区12) 查看Test中名称为P1的分区中的记录的查询语句为()〔选择一项〕a) Select * from Test Where PartitionName=’p1’b) Select * from Test(p1)c) Select * from Test Partition(p1);d) 以上均正确13) 创建序列时,若未指定Cycle选项,则当当前值大于MaxValue时将()〔选择一项〕a) 从MinValue重新开始循环b) 重复使用MaxValue 值c) 执行出错d) 使用随机值14) 下列哪项是创建索引组织表所必需的()〔选一项〕a) Primary Keyb) Order Byc) Group Byd) 以上均不是15) 若表的某字段值存在大量的重复,则基于该字段适合创建哪种索引?()〔选一项〕a) 标准索引b) 唯一索引c) 位图索引d) 分区索引16) 在PL/SQL块中定义一个名为PI值为3.14的Real型常量的语法是()〔选一项〕a) A.Pi Const Real=3.14;b) B.Pi Real Const =3.14;c) C.Constant Pi Real:=3.14d) D.Pi Constant Real:=3.1417) 22.当Select语句没有返回行时,将引发下列哪个异常?()[选择一项]a) A.No_rows_foundb) B.No_data_foundc) C.No_Data_rows_foundd) D.Invalid_Number18) Oracle中提供的两种游标是()〔选择二项〕a) A.隐式游标b) B.静态游标c) C.REF游标d) D.显式游标19) 若Emp表中有14条记录,则用户执行了以下操作,结果是:()〔选择一项〕Cursor mycur is Select * From emp;。
史上最全Oracle数据库基本操作练习试题[含答案解析]
![史上最全Oracle数据库基本操作练习试题[含答案解析]](https://img.taocdn.com/s3/m/27df85c0941ea76e58fa045b.png)
Oracle基本操作练习题使用表:员工表(emp):(empno NUMBER(4)notnull,--员工编号,表示唯一ename VARCHAR2(10),--员工姓名job VARCHAR2(9),--员工工作职位mgr NUMBER(4),--员工上级领导编号hiredate DATE,--员工入职日期sal NUMBER(7,2),--员工薪水comm NUMBER(7,2),--员工奖金deptno NUMBER(2)—员工部门编号)部门表(dept):(deptno NUMBER(2)notnull,--部门编号dname VARCHAR2(14),--部门名称loc VARCHAR2(13)—部门地址)说明:增删改较简单,这些练习都是针对数据查询,查询主要用到函数、运算符、模糊查询、排序、分组、多变关联、子查询、分页查询等。
建表脚本.txt建表脚本(根据需要使用):练习题:1.找出奖金高于薪水60%的员工信息。
SELECT * FROM emp WHERE comm>sal*0.6;2.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料。
SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20);3.统计各部门的薪水总和。
SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;4.找出部门10中所有理(MANAGER),部门20中所有办事员(CLERK)以及既不是经理又不是办事员但其薪水大于或等2000的所有员工的详细资料。
SELECT * FROM emp WHERE (JOB='MANAGER' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20) OR (JOB NOT IN('MANAGER','CLERK') AND SAL>2000);5.列出各种工作的最低工资。
oracle的习题及答案
![oracle的习题及答案](https://img.taocdn.com/s3/m/baea3515effdc8d376eeaeaad1f34693daef10be.png)
oracle的习题及答案1. 如何启动实例、如何装载数据库,如何打开数据库。
Startup nomount alter database mount alter database openStartup mountStartup2. 如何禁止用户的操作系统认证修改SQLNET.ora nts为none3. 如何控制用户不可以远程登陆。
Alter system set remote_login_passwordfile=noneScope=spfile;4. sys/sias@orcl as sysdba 中orcl的解析这里将用到sqlnet.ora文件,如果names.directory_path=(tnsnames,hostname),客户端首先会在tnsnames.ora文件中找到orcl的记录,如果没有相应的记录则尝试把orcl当做一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip,如果解析路径中没有hostname,客户端就只从tnsnames.ora查找orcl的记录。
5. 修改服务器端orcl 的监听端口。
可以用net manager修改或直接修改参数文件6. 创建密码文件。
host orapwd file=e:\orapwd.ora Password=nzg entries=30;7. 怎么样从spfile生成pfileCreate pfile=’d:\pfileorcl.ora’ from spfile;Create spfile=’e:\spfileorcl.or a’ from pfile=’d:\pfileorcl.ora’;8. 通过参数文件查看控制文件的位置Show parameter control_file; select name from v$controlfile;(在例程连接数据库后Mount可执行)。
可通过以下几个动态数据字典视图中获得有关控制文件的信息V$controlfile v$database V$controlfile_record_sectionSelect name from v$database; 显示数据库名称。
oracle 数据库练习及答案
![oracle 数据库练习及答案](https://img.taocdn.com/s3/m/ab0c218102d276a200292e3a.png)
9. 显示员工的详细资料,按姓名排序
SQL> select * from emp order by ename;
10. 显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面
? 列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的员工编号
select ename from emp where deptno=(select deptno from dept where dname='SALES');
? 列出薪金高于公司的平均薪金的所有员工
select * from emp where sal>(select avg(sal) from emp);
select ename , sal from emp where sal =any (select sal from emp where deptno=30);
? 列出薪金高于在部门30 工作的所有员工的平均薪金的员工姓名和薪金
select ename,sal from emp where sal>(select avg(sal) from emp where deptno=30);
? 列出所有“CLERK”(办事员)的姓名及其部门名称
select ename,dname from emp,dept where job='CLERK' and dept.deptno=emp.deptno;
? 列出最低薪金大于1500 的各种工作
史上最全Oracle数据库基本操作练习题(含答案)
![史上最全Oracle数据库基本操作练习题(含答案)](https://img.taocdn.com/s3/m/e859b836dc36a32d7375a417866fb84ae45cc3ac.png)
Oracle基本操作练习题使用表:员工表(emp):(empnoN UMBER(4)notnul l,--员工编号,表示唯一enameV ARCHA R2(10),--员工姓名job VARCHA R2(9),--员工工作职位mgrNUM BER(4),--员工上级领导编号hireda teDAT E,--员工入职日期salNUM BER(7,2),--员工薪水commNU MBER(7,2),--员工奖金deptno NUMBE R(2)—员工部门编号)部门表(dept):(deptno NUMBE R(2)notnul l,--部门编号dnameV ARCHA R2(14),--部门名称locVAR CHAR2(13)—部门地址)说明:增删改较简单,这些练习都是针对数据查询,查询主要用到函数、运算符、模糊查询、排序、分组、多变关联、子查询、分页查询等。
建表脚本.txt建表脚本(根据需要使用):练习题:1.找出奖金高于薪水60%的员工信息。
SELECT * FROM emp WHEREcomm>sal*0.6;2.找出部门10中所有经理(MANAGE R)和部门20中所有办事员(CLERK )的详细资料。
SELECT* FROM emp WHERE(JOB='MANAGE R' AND DEPTNO=10) OR (JOB='CLERK' AND DEPTNO=20);3.统计各部门的薪水总和。
SELECT deptno,SUM(sal) FROM emp GROUPBY deptno;4.找出部门10中所有理(M ANAGE R),部门20中所有办事员(C LERK 以及既不是经理又不是办事员但其薪水大于或等2000的所有员工的)详细资料。
oracle练习题及答案
![oracle练习题及答案](https://img.taocdn.com/s3/m/744521164693daef5ff73dd0.png)
o r a c l e练习题及答案(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--试题一一、填空题(每小题4分,共20分)1、数据库管理技术经历了___人工管理、文件系统、数据库系统__三个阶段2、数据库三级数据结构是:外模式、模式、内模式3、Oracle数据库中,SGA由_数据库缓冲区,重做日志缓冲区,共享池组成4、在Oracle数据库中,完正性约束类型有:Primay key约束。
Foreign key约束,Unique约束,check约束,not need约束5、PL/SQL中游标操作包括:声明游标,打开游标,提取游标,关闭游标二、正误判断题(每小题2分,共20分)1、数据库中存储的基本对象是数据(T)2、数据库系统的核心是DBMS(T)3、关系操作的特点是集合操作(T)4、关系代数中五种基本运算是并、差、选择、投影、连接(F)5、Oracle进程就是服务器进程(F)6、oraclet系统中SGA所有用户进程和服务器进程所共享(T)7、oracle数据库系统中数据块的大小与操作系统有关(T)8、oracle数据库系统中,启动数据库和第一步是启动一个数据库实例(T)9、PL/SQL中游标的数据是可以改变的(F)10、数据库概念模型主要用于数据库概念结构设计(T)三、简答题(每小题7分,共35分)1、何谓数据与程序的逻辑独立性和物理独立性2、试述关系代数中等值连接与自然连接的区别与联系3、何谓数据库,数据库设计一般分为哪些阶段4、简述Oracle逻辑数据库的组成5、试任举一例说明游标的使用方法五、设有雇员表emp(empno,ename,age,sal,tel,deptno),其中:empno-----编号,name------姓名,age -------年齡,sal-----工资,tel-----电话deptno-----部门号。
请按下列要求分别晨SQL*PLUS下编程。
Oracle测试题及答案
![Oracle测试题及答案](https://img.taocdn.com/s3/m/a27c94dcbe23482fb5da4c2f.png)
Oracle试题(数据库技术及应用)学号姓名分数(一) 按照题意写出SQL语句(45分每题3分)本题用到下面三个关系表:借书卡card(cno卡号,name姓名,class班级)图书books(bno书号,bname书名,author作者,price 单价,quantity库存册数) 借书记录borrow (cno借书卡号,bno书号,rdate还书日期)注:限定每人每种书只能借一本;库存册数随借书、还书而改变。
1.写出建立borrow表的SQL语句,要求定义主码完整性约束和引用完整性约束。
create table card(cno char(6) primary key,name varchar2(10),class varchar2(12));create table books(bno char(8) primary key,bname varchar2(50),author varchar2(10),price number(5,3),quantity number(4));create table borrow(cno char(6) references card(cno) on delete cascade,bno char(8) references books(bno) on delete cascade,rdate date,primary key(cno,bno));2.找出借书超过5本的读者,输出借书卡号及所借图书册数。
select cno,count(*) 册数from borrowgroup by cnohaving count(*)>5;3.查询借阅了“水浒”一书的读者,输出姓名及班级。
select name,classfrom cardwhere cno in (select cnofrom borrowwhere bno=(select bnofrom bookswhere bname='水浒'));4.查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
oracle试题及答案
![oracle试题及答案](https://img.taocdn.com/s3/m/77ce787542323968011ca300a6c30c225901f02c.png)
oracle试题及答案Oracle是一款广泛应用于企业和组织的关系型数据库管理系统。
它拥有强大的功能和灵活的架构,广受企业和数据库开发人员的青睐。
本文为大家整理了一些Oracle试题及答案,旨在帮助大家提升对Oracle数据库的理解和应用能力。
1. 试题:请简单解释什么是Oracle数据库。
答案:Oracle数据库是一种关系型数据库管理系统,由Oracle公司开发,用于存储和管理大量结构化数据。
它提供了数据存储、查询、事务处理、数据分析等功能,是目前业界最流行的企业级数据库之一。
2. 试题:Oracle数据库的特点有哪些?答案:Oracle数据库具有以下特点:a) 可靠性:通过事务处理和闪回技术确保数据的完整性和恢复性;b) 高性能:采用先进的查询优化和索引技术,提供快速的数据读写能力;c) 可扩展性:支持分布式和并行处理,适应不断增长的数据需求;d) 安全性:提供严格的访问控制和数据加密机制,确保数据的安全性;e) 灵活性:支持多种数据类型和数据模型,满足不同应用需求。
3. 试题:请解释Oracle数据库的体系结构。
答案:Oracle数据库的体系结构主要由实例和数据库两个关键组件构成。
a) 实例(Instance):实例是Oracle进程和内存结构的集合,负责连接管理、内存管理、故障恢复等。
每个运行的Oracle数据库都有一个相应的实例。
b) 数据库(Database):数据库是物理存储数据的容器,包含表空间、表、索引等逻辑和物理结构。
一个Oracle实例可以管理多个数据库。
4. 试题:如何创建一个Oracle数据库?答案:创建Oracle数据库的步骤如下:a) 安装Oracle数据库软件;b) 创建一个数据库实例;c) 设计数据库逻辑结构,包括表空间、表、索引等;d) 分配适当的存储空间;e) 配置数据库参数;f) 启动数据库实例,创建数据库。
5. 试题:如何在Oracle数据库中执行查询操作?答案:在Oracle数据库中执行查询操作通常使用SQL语句,如SELECT语句。
ORACLE期末考试试题及答案
![ORACLE期末考试试题及答案](https://img.taocdn.com/s3/m/9e4a5c65b42acfc789eb172ded630b1c59ee9ba2.png)
ORACLE期末考试试题及答案一、选择题(每题2分,共40分)1. ORACLE数据库系统属于以下哪一种数据库类型?A. 关系型数据库B. 层次型数据库C. 网状型数据库D. 对象-关系型数据库答案:A2. 在ORACLE中,以下哪个命令用来创建一个表?A. CREATE TABLEB. CREATE VIEWC. CREATE INDEXD. CREATE SEQUENCE答案:A3. 数据库的三级模式结构包括以下哪几个层次?A. 外模式、概念模式、内模式B. 概念模式、内模式、物理模式C. 外模式、内模式、物理模式D. 外模式、概念模式、物理模式答案:A4. 在ORACLE中,以下哪个命令用来删除一个表?A. DROP TABLEB. DELETE TABLEC. DROP VIEWD. DELETE VIEW答案:A5. 数据库事务的四个特性包括以下哪些?A. 原子性、一致性、隔离性、持久性B. 原子性、一致性、独立性、持久性C. 原子性、一致性、并发性、持久性D. 原子性、一致性、并发性、独立性答案:A6. 在ORACLE中,以下哪个命令用来修改表的结构?A. ALTER TABLEB. MODIFY TABLEC. UPDATE TABLED. ALTER VIEW答案:A7. 数据库的备份分为以下哪几种类型?A. 冷备份、热备份、逻辑备份B. 冷备份、热备份、物理备份C. 冷备份、热备份、完全备份D. 冷备份、热备份、增量备份答案:D8. 在ORACLE中,以下哪个命令用来创建一个索引?A. CREATE INDEXB. CREATE TABLEC. CREATE VIEWD. CREATE SEQUENCE答案:A9. 数据库的并发控制主要包括以下哪些方法?A. 乐观并发控制、悲观并发控制、时间戳并发控制B. 乐观并发控制、悲观并发控制、锁并发控制C. 乐观并发控制、悲观并发控制、令牌并发控制D. 乐观并发控制、悲观并发控制、版本并发控制答案:B10. 在ORACLE中,以下哪个命令用来创建一个序列?A. CREATE SEQUENCEB. CREATE TABLEC. CREATE VIEWD. CREATE INDEX答案:A二、填空题(每题2分,共20分)1. 在ORACLE中,使用______命令可以创建一个表。
oracle练习题及答案
![oracle练习题及答案](https://img.taocdn.com/s3/m/0e926950a31614791711cc7931b765ce05087abf.png)
oracle练习题及答案Oracle练习题及答案Oracle数据库是全球最受欢迎的关系型数据库管理系统之一,广泛应用于企业级应用程序开发和数据管理。
为了提高对Oracle数据库的理解和应用能力,下面将提供一些常见的Oracle练习题及其答案。
1. 查询表中的所有数据答案:使用SELECT语句可以查询表中的所有数据,例如:SELECT * FROM 表名;2. 查询表中的特定列数据答案:使用SELECT语句并指定需要查询的列名,例如:SELECT 列名1, 列名2 FROM 表名;3. 查询表中满足特定条件的数据答案:使用SELECT语句并使用WHERE子句来指定条件,例如:SELECT * FROM 表名 WHERE 列名 = 值;4. 对查询结果进行排序答案:使用SELECT语句并使用ORDER BY子句来指定排序的列和排序方式,例如:SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;5. 对查询结果进行分组答案:使用SELECT语句并使用GROUP BY子句来指定分组的列,例如:SELECT 列名1, 列名2 FROM 表名 GROUP BY 列名1;6. 查询表中的唯一数据答案:使用SELECT DISTINCT语句可以查询表中的唯一数据,例如:SELECT DISTINCT 列名 FROM 表名;7. 查询表中的前N条数据答案:使用SELECT语句并使用ROWNUM关键字来限制查询结果的行数,例如:SELECT * FROM 表名 WHERE ROWNUM <= N;8. 使用聚合函数进行数据统计答案:使用聚合函数如SUM、AVG、COUNT等可以对数据进行统计,例如:SELECT COUNT(*) FROM 表名;9. 进行多表查询答案:使用SELECT语句并使用JOIN关键字来连接多个表,例如:SELECT * FROM 表名1 JOIN 表名2 ON 表名1.列名 = 表名2.列名;10. 更新表中的数据答案:使用UPDATE语句可以更新表中的数据,例如:UPDATE 表名 SET 列名 = 值 WHERE 条件;11. 删除表中的数据答案:使用DELETE语句可以删除表中的数据,例如:DELETE FROM 表名 WHERE 条件;12. 创建新表答案:使用CREATE TABLE语句可以创建新表,例如:CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型, ...);13. 修改表结构答案:使用ALTER TABLE语句可以修改表的结构,例如:ALTER TABLE 表名 ADD 列名数据类型;14. 删除表答案:使用DROP TABLE语句可以删除表,例如:DROP TABLE 表名;以上是一些常见的Oracle练习题及其答案,希望能够帮助读者更好地理解和应用Oracle数据库。
oracle练习题及答案
![oracle练习题及答案](https://img.taocdn.com/s3/m/2e6025693069a45177232f60ddccda38376be1d0.png)
oracle练习题及答案Oracle练习题及答案Oracle是一种广泛使用的关系型数据库管理系统,它具有强大的数据处理和管理能力。
对于想要提升自己的数据库技能的人来说,练习题是一个非常有效的学习方法。
通过解答一系列的练习题,可以帮助我们更好地理解Oracle的使用和原理。
下面是一些常见的Oracle练习题及其答案,供大家参考。
1. 查询一个表中所有的数据答案:可以使用SELECT语句来查询一个表中的所有数据。
例如,假设我们有一个名为"employees"的表,可以使用以下语句来查询所有的数据:SELECT * FROM employees;2. 查询一个表中特定列的数据答案:如果我们只想查询一个表中特定列的数据,可以使用SELECT语句,并在其中指定要查询的列名。
例如,如果我们只想查询"employees"表中的"first_name"和"last_name"列,可以使用以下语句:SELECT first_name, last_name FROM employees;3. 查询满足特定条件的数据答案:如果我们只想查询满足特定条件的数据,可以在SELECT语句中使用WHERE子句来指定条件。
例如,如果我们只想查询"employees"表中工资大于5000的员工,可以使用以下语句:SELECT * FROM employees WHERE salary > 5000;4. 对查询结果进行排序答案:如果我们想对查询结果进行排序,可以在SELECT语句中使用ORDER BY子句,并指定要排序的列名。
例如,如果我们想按照"employees"表中的"last_name"列进行升序排序,可以使用以下语句:SELECT * FROM employees ORDER BY last_name ASC;5. 对查询结果进行分组答案:如果我们想对查询结果进行分组,可以在SELECT语句中使用GROUP BY 子句,并指定要分组的列名。
Oracle基础(习题卷8)
![Oracle基础(习题卷8)](https://img.taocdn.com/s3/m/abc67a2c1fb91a37f111f18583d049649b660e95.png)
Oracle基础(习题卷8)第1部分:单项选择题,共63题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]下列()不是一个角色A)CONNECTB)DBAC)RESOURCED)CREATE SESSION答案:D解析:2.[单选题]在以下命令中,一个使用哪一个来激活(开启)一个角色?( )A)SET ROLLB)ALTER USERC)CREATE ROLED)ALTER SYSTEM答案:A解析:3.[单选题]当一个段需要额外的磁盘空间时,应该增加哪一种数据库的逻辑组件?( )A)区段( extents)B)表空间C)数据库块D)操作系统块答案:A解析:4.[单选题]存储数据的逻辑单位,按大小依次为()。
A)表空间、数据块、区和段B)区、表空间、数据块和段C)段、区、表空间和数据块D)表空间、段、区和数据块答案:D解析:5.[单选题]A non-correlated subquery can be defined as . (Choose the best answer.)A)A set of one or more sequential queries in which generally the result of the inner query is used as the search value in the outer query.B)A set of sequential queries, all of which must return values from the same table.C)A set of sequential queries, all of which must always return a single value.D)A SELECT statement that can be embedded in a clause of another SELECT statement only.答案:A解析:C)alter system remove user brent cascade;D)drop user brent cascade;答案:D解析:7.[单选题]系统事件触发器共支持5种系统事件,下列()事件不会激发触发器。
Oracle精选面试题附答案及分析
![Oracle精选面试题附答案及分析](https://img.taocdn.com/s3/m/d384fbdb4a7302768f99394c.png)
Oracle 精选面试题显示10号部门的所有经理('MANAGER 和20号部门的所有职员('CLERK 的详细信息 答案: Select * from emp where deptno =10 and job='ANAGERor deptno=20 and job='clerk'; select * from emp where de ptno = 10 and job = 'MANAGER' or de ptno = 20 and job ='CLERK';显示姓名中没有’L'字的员工的详细信息或含有'SM'字的员工信息 答案:Select * from emp where en ame note like %L%or en ame like %SM%;select * from emp where en ame not like '%L%' or en ame like '%SM%';答案:select * from emp where to_char(hiredate,'yyyy') = '1982';答案:select * from emp where hiredatebetween to_date('1981-7-1','yyyy-mm-dd') and to_date('1982-1-1','yyyy-mm-dd') - 1;答案:1. 2. 3. 显示各个部门经理('MANAGER'的工资答案:select deptno,emn ame, salary from emp_wqq where job= 'MANAGER';4. 显示佣金(COMM )收入比工资(SAL 高的员工的详细信息答案:select * from emp where comm > sal;5. 把hiredate 列看做是员工的生日,求本月过生日的员工答案:select * from emp where to_char(hiredate, 'mm') = to_char(sysdate , 'mm'); 6. 把hiredate 列看做是员工的生日,求下月过生日的员工答案:select * from emp where to_char(hiredate, 'mm') = to_char(add_ mon ths(sysdate,1) , 'mm'); 7. 求1982年入职的员工8. 求1981年下半年入职的员工9. 求1981年各个月入职的的员工个数select count(*), to_char(trunc(hiredate,'month'),'yyyy-mm')from emp where to_char(hiredate,'yyyy')='1981'group by trunc(hiredate,'month')order by trunc(hiredate,'month');10.查询各个部门的平均工资答案:select deptno,avg(sal) from emp group by deptno;11.显示各种职位的最低工资答案:select job,min(sal) from emp group by job;12.按照入职日期由新到旧排列员工信息答案:select * from emp order by hiredate desc;13.查询员工的基本信息,附加其上级的姓名答案:select e.*, e2.ename from emp e, emp e2 where e.mgr = e2.empno;14.显示工资比'ALLEN高的所有员工的姓名和工资答案:select * from emp where sal > (select sal from emp where ename='ALLEN');15.显示与'SCOTT从事相同工作的员工的详细信息答案:select * from emp where job = (select * from emp where ename='SCOTT');16.显示销售部('SALES员工的姓名答案:select ename from emp e, dept d where e.deptno = d.deptno and d.dname='SALES';17.显示与30号部门'MARTIN员工工资相同的员工的姓名和工资答案:select ename, sal from empwhere sal = (select sal from emp where deptno=30 and ename='MARTIN');18.查询所有工资高于平均工资(平均工资包括所有员工)的销售人员('SALESMAN')答案:19. 显示所有职员的姓名及其所在部门的名称和工资答案:select ename, job, dname from emp e, dept d where e.deptno = d.deptno;20. 查询在研发部('RESEARCH )作员工的编号,姓名,工作部门,工作所在地答案:select empno,ename,dname,loc from emp e, dept dwhere e.deptno = d.deptno and danme='RESEARCH';21. 查询各个部门的名称和员工人数答案:select * from (select count(*) c, deptno from emp group by deptno) einner join dept d on e.deptno = d.deptno;22. 查询各个职位员工工资大于平均工资 (平均工资包括所有员工 )的人数和员工职位答案:select job, count(*) from emp where sal > (select avg(sal) from emp) group by job; 23. 查询工资相同的员工的工资和姓名答案:select * from emp e where (select count(*) from emp where sal = e.sal group by sal) > 1; 24. 查询工资最高的 3 名员工信息答案:select * from (select * from emp order by sal desc) where rownum <= 3;按工资进行排名 ,排名从 1 开始,工资相同排名相同 (如果两人并列第 1 则没有第 2 名,从第三名继续排)答案:select e.*, (select count(*) from emp where sal > e.sal)+1 rank from emp e order by rank;答案:select * from emp e where (select count(*) from emp where e.hiredate=hiredate)>1;答案:select deptno, max(sal) maxsal from emp group by deptno order by deptno;28. 查询每个部门 ,每种职位的最高工资答案:25. 26. 求入职日期相同的 (年月日相同 )的员工27. 查询每个部门的最高工资select deptno, job, max(sal) from emp group by deptno, job order by deptno, job;29. 查询每个员工的信息及工资级别答案:select e.*, sg.grade from emp e, salgrade sg where sal between losal and hisal;30. 查询工资最高的第6-10 名员工答案:select * from (select e.*,rownum rn from(select * from emp order by sal desc) ewhere rownum <=10)where rn > 5;31. 查询各部门工资最高的员工信息答案:select * from emp e where e.sal = (select max(sal) from emp where (deptno = e.deptno));32. 查询每个部门工资最高的前2 名员工答案:select * from emp e where(select count(*) from emp where sal > e.sal and e.deptno = deptno) < 2order by deptno, sal desc;33. 查询出有3 个以上下属的员工信息答案:select * from emp e where(select count(*) from emp where e.empno = mgr) > 2;34. 查询所有大于本部门平均工资的员工信息答案:select * from emp e where sal >(select avg(sal) from emp where (deptno = e.deptno))order by deptno;35. 查询平均工资最高的部门信息答案:select d.*, avgsal from dept d, (select avg(sal) avgsal, deptno from emp group bydeptno) sewhere avgsal = (select max(avg(sal)) from emp group by deptno) and d.deptno =36.查询大于各部门总工资的平均值的部门信息答案:select d.*,sumsal from dept d, (select sum(sal) sumsal, deptno from emp group by deptno) sewhere sumsal >(select avg(sum(sal)) from emp group by deptno) and se.deptno = d.deptno;37.查询大于各部门总工资的平均值的部门下的员工信息答案:select e.*,sumsal from emp e, (select sum(sal) sumsal, deptno from emp group by deptno) sewhere sumsal >(select avg(sum(sal)) from emp group by deptno) and se.deptno = e.deptno;38.查询没有员工的部门信息答案:select d.* from dept d left join emp e on (e.deptno = d.deptno) where empno is null;39.查询当前月有多少天答案:select trunc(add_months(sysdate,1),'month') - trunc(sysdate,'month') from dual;40.列出最低薪金大于1500 的各种工作及此从事此工作的全部雇员人数答案:SELECT job,COUNT(empno)FROM empGROUP BY job HAVING MIN(sal)>1500 ;41.列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级答案:SELECT e.empno,e.ename,d.dname,m.ename,s.gradeFROM emp e,dept d,emp m,salgrade sWHERE sal>(SELECT AVG(sal) FROM emp) AND e.mgr=m.empno AND d.deptno=e.deptno(+) ANDe.salBETWEEN s.losal AND s.hisal ;42.列出薪金高于在部门30 工作的所有员工的薪金的员工姓名和薪金、部门名称答案:SELECT e.ename,e.sal,d.dname FROM emp e,dept dWHERE sal > ALL (SELECT sal FROM emp WHERE deptno=30) AND e.deptno=d.deptno;43.列出所有部门的详细信息和部门人数答案:SELECT d.dname,d.loc,dt.countFROM dept d,(SELECT deptno,COUNT(*) count FROM emp GROUP BY deptno) dtWHERE d.deptno=dt.deptno ;44.显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列答案:SELECT job,SUM(sal) sumFROM empWHERE job<>'SALESMAN'GROUP BY job HAVING sum>5000ORDER BY sum ;45.客户表a(id name address登陆流水表b(id time)购物流水表c(id time productid productnum)1.求每个客户的最新登陆时间time,姓名name,客户id?答案:select a.id,,d.time as timefrom a left join (select id,max(time) as time from b group by id) don a.id =d.id ;2.查最新登陆并且已经购买商品的客户id,name,登陆的时间time(一条sql语句)答案:select a.id,,d.time as timefrom a,(select id,max(time) as time from b group by id) dwhere a.id =d.idand exists (select * from c where id = a.id);。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。
2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)和数据控制语句(DCL)。
3.在需要滤除查询结果中重复的行时,必须使用关键字Distinct; 在需要返回查询结果中的所有行时,可以使用关键字ALL。
4.当进行模糊查询时,应使用关键字like和通配符问号(?)或百分号"%"。
5.Where子句可以接收From子句输出的数据,而HA VING子句则可以接收来自WHERE、FROM或GROUP BY子句的输入。
6.在SQL语句中,用于向表中插入数据的语句是Insert。
7.如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用Select 语句。
8.使用Describe命令可以显示表的结构信息。
9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。
10.使用Save命令可以将缓冲区中的SQL命令保存到一个文件中,并且可以使用Run命令运行该文件。
11.一个模式只能够被一个数据库对象所拥有,其创建的所有模式对象都保存在自己的模式中。
12.根据约束的作用域,约束可以分为表级约束和列级约束两种。
列级约束是字段定义的一部分,只能够应用在一个列上;而表级约束的定义独立于列的定义,它可以应用于一个表中的多个列。
13.填写下面的语句,使其可以为Class表的ID列添加一个名为PK_CLASS_ID 的主键约束。
ALTER TABLE ClassAdd ____________ PK_LASS_ID (Constraint)PRIMARY KEY ________ (ID)14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman和DBcnmp15. Oracle提供了两种类型的权限:系统权限和对象权限。
系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的数据库对象(如表、视图、过程等)16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选择。
.17. 从存储结构的角度来说,Oracle数据库可分为物理结构和逻辑结构。
18. 表空间是Oracle数据库中数据的逻辑组织,每个数据库至少有一个SYSTEM 系统表空间。
19.视图是一个表示表的数据的数据库对象,它允许用户从一个表或一组表中通过一定的查询语句建立一个“虚表”。
20.序列是一种可被多个用户使用的用于产生一系列唯一数字的数据库对象。
尤其适合多用户环境中,可以生成唯一的序列号而没有磁盘I/O或事务处理锁定开销。
21. 一个表空间具有离线(OFFLINE)、在线(ONLINE)、只读(READ ONLY)、读写(READ WRITE)状态。
二、选择1.在全局存储区SGA中,哪部分内存区域是循环使用的?( B )A.数据缓冲区B.日志缓冲区C.共享池D.大池2.如果一个服务器进程非正常终止,Oracle系统将使用下列哪一个进程来释放它所占用的资源?( D )A.DBWR B.LGWR C.SMON D.PMON3. 如果要查询数据库中所有表的信息,应当使用下列哪种数据字典视图?( A )A. DBA视图B. ALL视图C. USER视图D. 动态性能视图4. 下列哪一项是Oracle数据库中最小的存储分配单元? ( C )A. 表空间B. 段C. 盘区D. 数据块5. 下面的各选项中哪一个正确描述了Oracle数据库的逻辑存储结构? ( A )A. 表空间由段组成,段由盘区组成,盘区由数据块组成B. 段由表空间组成,表空间由盘区组成,盘区由数据块组成C. 盘区由数据块组成,数据块由段组成,段由表空间组成D. 数据块由段组成,段由盘区组成,盘区由表空间组成6. 下列的哪个子句在SELECT语句中用于排序结果集?( D )A. Having子句B. Where子句C. From子句D. Order by子句7. Having子句的作用是( B )。
a. 查询结果的分组条件B. 组的筛选条件C. 限定返回的行的判断条件D. 对结果集进行排序8. 下列哪个函数可以把一个列中的所有值相加求和? ( B )A MAX B. SUM C. COUNT D. A VG9. 下列哪个子句是SELECT语句中必选项?( A )A. FROMB.WHEREC.HA VINGD. ORDER BY10. 下列哪个子句实现对一个结果集进行分组和汇总?(D )A.HA VING B. ORDER BY C. WHERE D. GROUP BY11. 查询一个表的总记录数,可以采用_________统计函数。
(C )A. A VG(*)B. SUM(*)C. COUNT(*)D.MAX(*)12. 要建立一个语句向Types表中插入数据,这个表只有两列,T_ID和T_Name 列。
如果要插入一行数据,这一行的T_ID值是100,T_Name值是RFUIT。
应该使用的SQL语句是_____。
( A )A. INSERT INTO Type Values(100, ‘FRUIT’)B. SELECT * FROM Type WHERE T_ID=100 AND T_NAME=’FRUIT’C. UPDATE SET T_ID=100 FROM Types WHERE T_Name=’FRUIT’D. DELET * FROM Types WHERE T_ID=100 AND T_Name=’FRUIT’13. 用_____语句修改表的一行或多行数据。
( A )A.Update B.set C.Select D.Where14. 使用什么命令可以清除表中所有的内容?( D )A.INSERT B.UPDATE C. DELETE D.TRUNCATE15.关于模式的描述下列哪一项不正确?( C )A.表或索引等模式对象一定属于某一个模式B.在Oracle数据库中,模式与数据库用户是一一对应的C.一个表可以属于多个模式D.一个模式可以拥有多个表16.唯一约束与主键约束的一个区别是?(D )A.唯一约束的列的值不可以有重复值B.唯一约束的列的值可以不是唯一的C.唯一约束的列不可以为空值D.唯一约束的列可以为空值17. 只能存储一个值的变量是哪种变量?( B )A. 游标B. 标量变量C. 游标变量D. 记录变量18. 声明%TPYE类型的变量时,服务器将会做什么操作?( A )A. 为该变量检索数据库列的数据类型B.复制一个变量C.检索数据库中的数据D.为该变量检索列的数据类型和值19.下列哪一项可以正确地引用该记录变量中的一个值?(B )A.rec_abc(1) B. rec_abc(1).colC. rec_abc.colD.rec_abc.first()20. 在定义游标时使用的FOR UPDATE子句的作用是______。
( C )A.执行游标 B. 执行SQL语句的UPDATE语句C.对要更新表的列进行加锁 D. 都不对21. 如果允许用户对视图进行更新和插入操作,但是又要防止用户将不符合视图约束条件的记录添加到视图,应当在定义视图时指定下列哪一个子句?( C )A.WITH GRANT OPTIONB. WITH READ ONLYC. WITH CHECK OPTIOND. WITH CHECK ONLY22. 如果想查看视图中哪些字段是可以更新的,应当查询哪一个数据字典视图?(D )A. DBA_VIEWSB. DBA_OBJECTSC. DBA_CLU_COLUMNSD. DBA_UPDATABLE_COLUMNS23. 在下列各选项中,关于序列的描述哪一项是不正确的?(D )A. 序列是Oracle提供的用于产生一系列唯一数字的数据库对象B.序列并不占用实际的存储空间C.使用序列时,需要用到序列的两个伪列NEXTV AL与CURRVAL。
其中,NEXTV AL 将返回序列生成的下一个值,而CURRV AL返回序列的当前值D.在任何时候都可以使用序列的伪列CURRV AL,以返回当前序列值24. 在下列各选项中,关于同义词的描述哪一项是不正确的?( B )A.同义词是数据库对象的一个替代名,在使用同义词时,Oracle会将其翻译为对应的对象名称B.在创建同义词时,所替代的模式对象必须存在C.Oracle中的同义词分为公有同义词和私有同义词D.公有同义词在数据库中所有的用户都可以使用;私有同义词由创建它的用户所拥有25. 下列哪个锁模式不属于Oracle?( D )A. 共享锁B.排他锁C. 行级共享锁D. 死锁26. 想在另一个模式中创建表,用户最少应该具有什么系统权限?( B )A.CREATE TABLE B. CREATE ANY TABLE C. RESOURCE D. DBA 27. 如果要启用所有角色,则应该使用哪一个命令?( B )A.SET ROLE ALL B. SET ROLE ENABLE ALLC. ALTER SESSION ALLD.ALTER USER ROLE ALL28. 下列哪一个操作可以用来为一个备份操作手动分配通道?(A )A.ALLOCATE CHANNEL B. CREATE CHANNEL C. CHANNEL ALLOCATED. CREATE LINK29. 下列哪一个命令用来显示RMAN通道的配置信息?(C )A. LISTB. DISPLAYC.SHOWD.都可以30. 下列哪一个命令可以用来执行不完全恢复?( B )A. RESTORE DATABASE UNTILB. RECOVER DATABASE UNTILC. RECOVER DATA UNTILD. RESTORE DATA UNTIL三、简答题1.说明数据库模式与用户之间的区别。
答案:数据库模式与用户之间的区别在于:用户是数据库的使用者和管理者,用户具有帐户状态、访问权限和操作权限等属性。
模式是一系列逻辑数据结构或对象的集合,是数据库中对象的组织和管理单位。
2.简要游标的作用和游标操作的基本步骤。
答案:游标的作用是将数据库的中数据检索出来后缓存,可以被PL/SQL程序一行一行的读取并处理。
支持一条、多条、零条记录的处理。
游标的基本操作步骤为:(1)声明游标,使用查询来定义游标的列和行(2)打开游标,使用PL/SQL命令OPEN来打开一个声明的游标(3)提取数据,从游标中重复提取每条记录到数据结构中,直到数据集合被提交(4)关闭游标,使用完游标后将其关闭3.Oracle数据库的工作模式有哪两种?它们之间有有何区别?答案:在Oracle数据库中,数据库的操作模式分为专用服务器(DELICATED SERVER)模式和多线程服务器(MULTITHREADED SERVER)模式两种。