oracle复习
orcl复习重点部分
第一章1.简要说明例程与数据库之间的联系和区别?ORACLE数据库是安装在磁盘上的ORACLE数据库文件和相关的数据库管理系统的集合。
磁盘上比较重要的文件包括数据文件,控制文件,重做日志文件,初始化参数文件,口令文件,归档重做日志文件。
例程是由在内从中的一组后台进程和内存结构组成。
2.说明数据库、表空间和数据文件之间的关系?ORACLE数据库的逻辑结构和物理结构的对应关系,一个ORACLE数据库可以拥有多个表空间,每个表空间有多个段组成,每个段由若干个区间组成,每个区间包含多个ORACLE 数据块,每个ORACLE数据块包含多个OS屋里磁盘快。
表空间有多个物理文件支持,具体存储表空间中的个对象。
3.比较表和视图二者间的异同?视图中没有数据,仅仅是一条SQL语句,查询语句检索出来的数据以表的形式表示;视图的定义存储在数据字典中,视图的查询基于表;视图没有直接的相关物理数据,不能像表那样被索引。
第二章1.写出以scott用户登录到数据库orcl,然后查看该用户可以访问的表,视图的相关命令?CONN scott/tiger@orclSELECT * FROM tab;2.设置查询结果的显示格式:每页24行,每行100个字符,SAL列的显示格式为¥99.990.0. SET PAGESIZE 24SET LINESIZE 100COLUMN sal FORMAT $99,990.00第三章1.写出查看某个用户说有用的角色的SQL语句。
CONN stu01/stu01pwd@orclCOLUMN USERNAME FORMAT A10SELECT username,granted_role FROM user_role_privs;2.写出查询当前用户将哪些表的访问权限授予给其他用户的SQL语句。
CONN scott/tiger@orclCOLUMN GRANTEE FORMAT A10SELECT grantee,table_name,grantor,privilege,grantableFROM user_tab_privs_made;3.以系统管理员的身份登录,在SQL*plus中查询各用户获得的系统特权和角色。
Oracle复习资料
Oracle数据库第一章1. Oracle数据库简介Oracle是一个对象关系数据库管理系统,它既提供关系数据库系统的功能,又提供面向对象数据库系统的功能。
Oracle数据库基于“客户/服务器”(Client/Server)系统结构。
Oracle数据库的主要特点:1支持多用户、大事务量的事务处理。
2在保持数据安全性和完整性方面性能优越。
3支持分布式数据处理。
4具有可移植性。
2.关系理论的基础1关系型数据库使用了由行和列组成的相互关联的二维表的概念。
2关系型数据库的编程是非过程化的,一次能够对若干行进行操作。
3.数据库模式包含的逻辑结构:表、试图、序列、存储过程、同义词、索引、数据库链接。
4.Oracle体系结构的一些重要概念1实例:Oracle实例是后台进程和内存结构的集合,必须启动实例才能访问数据库中的数据。
2数据库:用于存储和检索相关信息。
3会话:是用户与Oracle服务器的单个链接。
4内存:Oracle的内存结构包含系统全局区(SGA)和程序全局区(PGA)1系统全局区(System Global Area)又称为共享全局区,它用来存储数据库信息,并由多个数据库进程共享。
2程序全局区(Program Global Area)包含单个服务器进程或单个后台进程所需的数据和控制信息。
5进程1用户进程:是一个需要与Oracle服务器进行交互的程序。
2服务器进程:用于处理连接到该实例的用户进程的请求。
3后台进程:此进程在Oracle实例启动时启动。
5.Oracle数据库有2种运行方式:归档方式和非归档方式。
6. Oracle数据库的物理文件分为三类:1数据文件:存储数据库中的实际数据,包括存储数据的表和索引,维护数据结构信息的数据字典,以及用于实现并发性的回滚段。
2日志文件:用于记录对数据库进行的修改信息。
3控制文件:是记录数据库物理结构的二进制文件,包含维护和验证数据库完整性的必要信息。
7Oracle逻辑组件:表空间、段、区、块和模式等。
Oracle数据库应用 复习题及答案
Oracle数据库应用复习题(参考答案见P15)一、选择题1、以下()内存区不属于SGA。
A. PGAB. 日志缓冲区C. 数据缓冲区D. 共享池2、一个数据库由若干个()组成。
A.段B. 表空间C. 块D. 区3、在Oracle 中创建用户时,若未使用DEFAULT TABLESPACE 关键字,则Oracle就将()表空间分配给用户作为默认表空间,将()表空间分配给用户作为临时表空间。
A.TEMPB. USERSC. SYSTEMD. EXAMPLE4、监听并接受来自客户端应用程序连接请求的服务是()。
A. OracleCSServiceB. OracleDBConsoleSIDC. OracleJobSchedulerD. OracleOraDb10g_home1TNSListener5、()是一个小二进制文件,它维护着数据库的全局物理结构,用以支持数据库成功地启动和运行。
A. 数据文件B. 控制文件C. 日志文件D. 参数文件6、()进程把修改过的数据块从内存写回到数据库的数据文件中。
A. DBWRB. LGWRC. CKPTD. SMON7、()的任务是将已经写满的联机日志文件复制到归档日志文件中。
这仅在数据库运行在归档模式下时才发生。
A.恢复进程B. 进程监视进程C. 作业队列D. 归档进程8、()数据库应用架构又称为“瘦客户机”模式。
A. 多磁盘结构B. 两层模式C. 三层模式D. 磁盘映像9、数据字典表保存表、索引、视图以及所有其他数据结构的信息。
它们属于()用户。
A. SYSB. SYSTEMC. SCOTTD. SYSMAN10、如果用户要安装、查看和卸载Oracle 数据库系统,就需要使用()。
A. 通用安装器B. 数据库配置助手C. 企业管理器D. 网络配置助手11、如果用户需要在安装好Oracle的系统上创建、修改和删除数据库,就需要使用()。
A. 通用安装器B. 数据库配置助手C. 企业管理器D. 网络配置助手12、要删除一个大表里的所有记录,并释放占用的表空间,可以使用()命令。
oracle总复习
oracle 总复习总复习1. oracle 体系结构实例得概念:即RDBMS ,与一个数据库相联系,它就是存取与控制数据库得软件机制。
实例得组成:实例由SGA(系统全局区)与Oracle 进程两部分构成。
(1-8)ORACLE 进程:就是操作系统中得一种机制,它就是实现资源共享与调度控制得单元。
(1-8) SGA:就是一内存区域,存放数据库实例得数据与控制信息, 由共享得sql 区、数据缓冲区、日 记缓冲区、请求队列、响应队列构成。
(1-8)Oracle 处理SQL 语言得过程:客户端与服务器建立连接之后,由事件监听程序将 sql 语句发送到服务端进行处理,然后由服务器进程对sql 语句进行语法分析与执行,将数据读入缓冲区,将 结果返回客户端。
2、Oracle 得逻辑结构与物理结构1. 逻辑结构主要掌握表空间、段、区间、数据块得概念及关系表空间:一个数据库被划分为一个或多个逻辑单位该逻辑单位。
段:模式对象数据得存储单位,它就是数据库得某个对象使用得全部区间得集合。
(1-29)区间:由很多连续得数据块组成得数据库存储空间。
它就是数据库存储分配单位。
数据块:就是数据库最小得I/O 单位。
之间得关系:一个表空间对应多个段,一个段对应多个区间,一个区间对应多个数据块。
外模式一一用户瞧到得数据库得逻辑结构,也称为模式对象,它组成了谭峯的{丄1享的駅摇“ 一个数据库得关系设计。
主要包括:表、视图、索引、序列、聚集、触发器、过程等。
概念模式一一DBA 瞧到得数据库得逻辑结构,它支配一个数据库得物理空间如何使用。
主要包括:表空间、段、区间、数据块。
内模式一一数据库得物理结构,它们为数据信息提供真正得物理存储。
主要包括:控制文件、日志文件、数据文件。
(1-22)4. 掌握表空间与数据文件之间得关系1.每个表空间由一个或多个数据文件组成 2.表空间通过增加数据文件来扩大。
也可以增加某个数据文件得大小来扩大。
ORACLE复习总结
1、Oracle是关系型数据库管理系统。
管理工具:企业管理器(OEM)、SQL*PLUS、数据库配置助手(DBCA)。
2、OEM中包含的主要管理工具:例程管理、方案管理、安全管理、存储管理。
3、文件包括数据文件、重做日志文件、控制文件。
一个数据库至少有一个表空间。
4、系统安全区分为:数据块缓存区、字典缓存区、重做日志缓存区、SQL共享池。
5、delete from 表名;update 表名set 字段名=新值;insert into 表名values();6、创建索引:数据库表创建、使用Oracle 10g管理控制台工具单独创建、使用SQL命令创建索引。
7、索引能加快查询速度,使数据库更新减慢。
8、数据完整性分为:域完整性、实体完整性、参照完整性。
9、关系数据库对数据定义的一组专门的关系运算是:连接、选择、投影。
10、视图是从一个表或多个表(或视图)导出的表。
11、PL/SQL语言的组成部分:数据定义语言、数据操纵语言、数据控制语言。
12、异常分类:预定义异常、用户自定义异常no_data_found:如果一个select语句试图基于其条件检索数据,此异常表示不存满足件的数据行。
too_many_row:由于隐式游标每次只能检索一行数据,使用隐式游标时,该异常检测到有多行数据存在。
13、PL/SQL语言用游标来管理SQL的SELECT语句。
14、.对显示游标的使用要遵循声明游标------打开游标-----读取数据------关闭游标。
15、包含有两个分离得部件:包说明(规范、包头)和包体(主体)。
16、使用存储过程的优点:①过程在服务器端运行,执行速度快。
②过程执行一次后代码就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译的代码执行,提高了系统性能。
③确保数据库的安全。
④自动完成需要预先执行的任务。
17【6.3】计算指定学生的总学分,存储过程使用了一个输入参数和一个输出参数。
oracle复习提纲
Oracle复习提纲数据库应用部分1.Oracle数据库体系结构Oracle由实例和数据库组成;实例由内存结构SGA和后台进程PGA组成;关键后台进程及其作用:系统监视器(system monitor,SMON)的主要职责包括重新启动系统、清除临时段、执行盘区结合等;进程监控器(process monitor,PMON) 的主要职责是监控服务器进程和注册数据库服务;数据库写入器(database writer,DBWn)负责执行将缓存中的数据块写回到磁盘的写入操作;日志写入器(log writer, LGWR)负责将重做日志缓冲区中的日志记录写入磁盘日志文件组;检查点(checkpoint,CKPT)进程负责使用最新的检查点信息更新所有的控制文件和数据文件标题;归档器(ARCn)归档器会随着数据库的运行完成其工作,有效地采用热备份或在线备份。
3种物理文件:控制文件(control file)是Oracle服务器在启动期间用来标识物理文件和数据库结构的二进制文件(后缀ctl,select name from v$controlfile,只需要一个控制文件,最好多个副本);数据文件(data file)是用于存储数据库数据的文件(后缀dbf,select file_name,file_id,bytes from DBA_DATA_FILES,至少一个);重做日志文件(redo log files) 是用于记录对数据库的所有修改,仅用于恢复数据库(后缀rdo或log,select group#,members,status from v$log和v$logfile,至少有两个重做日志文件组);逻辑结构数据块(data blocks)是数据库中最小的分配单元,也是数据库使用的最小I/O单元(show parameter db_block_size)盘区(extent)是在磁盘上连续的块的组。
一个盘区在一个表空间中,且在表空间中单一的文件中(storage)段(segments)(表、索引等)由一个或多个盘区组成,段存在于表空间中(数据段、临时段和回滚段)表空间(table spaces)是用户可以在Oracle系统中使用的最大的逻辑存储结构, SYSTEM 和 SYSAUX 表空间是必需的表空间,SYSTEM,SYSAUX ,TEMP, UNDOTBS1, USERS,EXAMPLE2.Oralce数据库安装数据库安装后常用的2个系统级用户:sys,system初始化参数文件的作用:也称启动参数文件,是配置Oracle数据库的一个重要方面,初始化参数文件内包括定义参数,静态限制参数,动态性能参数,控制或修改数据库和数据库实例操作的参数。
Oracle复习
选择题:1.Oracle 11g中的g代表( B )A.网络B.网格C.节点D.站点2.Oracle数据库文件默认的安装目录是(B )A.adminB. ordataC.binD.database3.在数据库服务器的安装过程中,不是默认创建的账户是(B )A.SYSB.DBAC.SYSTEMD.SCOTT4.可以在Oracle服务器的安装目录的(C )文件中查看Oracle的各种端口的使用情况A.spfile.oraB.initorcl.oraC.portlist.iniD.tnsname.ora5.完全卸载Oracle 11g时,需要进行的第一步操作是(A )A.停止所有的Oracle服务B.启动Oracle的卸载向导C.删除磁盘上的Oracle文件D.删除数据Orcl6.SQL Developer软件不可以用于(D )A.创建表B.创建存储过程C.录入表的数据D.创建数据库7.登录SQL Seveloper软件时,主机名要写( A )A.主机的名字B.数据库的名字C.AdministratorD.SYS8.在SQL*Plus中执行刚输入的一条命令用(A )A.正斜杠/B.反斜杠\C.感叹号D.句号9.在SQL*Plus中显示当前用户的命令是(C )A.show accountB.show accountnameC.show userD.show username10.在SQL*Plus中显示EMP表结构的命令是(B )A.LIST EMPB.DESC EMPC.SHOW DESC EMPD.STUCTURE EMP11.Oracle数据库物理存储结构是指(D )A.控制文件B.重做日志文件C.数据文件D.以上都是12.以下(A )内存区不属于SGAA.PGAB.重做日志缓冲区C.数据库高速缓冲区D.共享池13.下列组建不是Oracle实例的组成部分是(C )A.系统全局区B.pmon后台进程C.控制文件D.调度程序14.系统全局区的缓冲区以循环方式写入的是(D )A.数据缓冲区B.重做日志缓冲区C.大池D.共享池15.如果一个服务进程中止,下列进程可以用来释放它所占有的资源的是(D )A.DBWNB.LGWRC. SMOND.PMON16.保护监听程序配置信息的位置和名称分别是(C )A.客户端,listener.oraB.客户端,tnsnames.oraC.服务器端,listener.oraD.服务端端, tnsnames.ora17.为了通过网络连接数据库,需要在客户端建立(C )A.监听程序进程B.实例服务C.网络连接服务台D.HTTP服务18.Oracle客户端定义与服务器连接的配置文件的路径通常为(D )A.$Oracle_home/binB. $Oracle_home/admin/C. $Oracle_home/network/D. $Oracle_home/network/admin/19.在Windows操作系统中,Oracle的(A )服务监听并接受来自客户端应用程序的连接请求A.OracleHome_NAMETHNSListenerB.OracleServiceSIDC.OracleHOME_NAMEAgentD.OracleHOME_NAMEHTTPServer20.Oracle网络监听器位于(B )A.Oracle客户端B.Oracle服务器端C.Oracle客户端和服务器端D.Oracle的中间层服务器端21.创建数据库时命令格式的关键字是( A )。
oracle期末考试试题 复习题
1.以下(A)内存区不属于SGA。
A.PGA B.日志缓冲区C.数据缓冲区D.共享池2.在Oracle中,能够将emp表的SELECT权限赋予用户SCOTT的语句是( B )。
A、grant select emp to scottB、grant select on emp to scottC、grant on emp select to scottD、grant scott on emp select3.在Oracle中创建用户时,若未提及DEFAULT TABLESPACE关键字,则Oracle就将(C )表空间分配给用户作为默认表空间。
A.HR B.SCOTT C.SYSTEM D.SYS4.在Oracle中,下列选项中,不能直接嵌入PL/SQL块中的语句有(AC )。
[选两项]A、SELECTB、INSERTC、CREATTABLED、GRANT5、ORACLE用来判断列值是否为空的操作符是_B___A. ==NULLB. IS NULLC. AS NULLD. NULLIS6.(CD)SQL语句将为计算列SAL*12生成别名Annual Salary[选两项]A.SELECT ename,sal*12 …Annual Salary‟ FROM emp;B.SELECT ename,sal*12 “Annual Salary” FROM emp;C.SELECT ename,sal*12 AS AnnualSalary FROM emp;D.SELECT ename,sal*12 AS INITCAP(“Annual Salary”) FROM emp;7.在Oracle中,假设a变量的值为“a”,则执行代码decode(a,"a",1,"b",2,"c",3,4)后的结果是(A )。
A、1B、2C、3D、48.锁用于提供( )。
oracle复习资料
简答题(40)1、请从数据库的内部结构和外部结构两个角度探讨数据库的构成。
外部结构是指从os的角度分析数据库的构成。
每个Oracle数据库主要由3种类型的文件组成:数据文件,日志文件,控制文件,还有一些参数文件。
内部结构描述数据库的内部存储结构,即从技术概念上描述如何组织管理数据。
Oracle在逻辑上讲保存的数据划分成一个个小的单元进行存储和管理。
Oracle 由多个表空间组成,而表空间又由许多段组成,段由多个盘区组成,盘区又由多个数据块组成2、如何理解Oracle数据库的物理结构?请问数据库实例是指什么?并解释表空间和数据文件的关系.物理结构是从物理角度分析数据库的构成.每个数据库主要由3种类型的文件组成:数据文件,日志文件,控制文件。
数据库实例是内存SGA和一组后台进程的组合。
表空间是在Oracle中用户可以使用的最大的逻辑存储结构。
用户在数据库中建立的所有内容都被储存在表空间。
表空间在物理上与数据文件对应,每个表空间由一个或多个数据文件组成,一个数据文件只属于一个表空间。
3、什么是索引?建立索引的作用是什么?索引按照存储方法分类可以分为两类,请分别说明它们的组织结构?索引是一种供服务器在表中快速查找一行的数据库结构。
(2分)主要有以下作用:快速存期数据;可以改善数据库性能,又可以保证列值得唯一性;实现表与表之间的参照完整性;利用索引可以减少排序和分组的时间。
(2分)B树索引:类似树,主要数据集中在叶子节点上。
各叶子节点包含的数据有索引列的值和数据表中对应的ROWID。
(3分)位图索引:不存储ROWID值,不存储键值。
当在表中基数低的列上建立位图索引时系统将对表进行全表扫描,为遇见的各个值建立图表,建立位图索引记录,值存在于这一行中则标记0否则标记1。
(3分)4、简述事务的作用,列举所知道的事务控制语句。
什么情况下开始事务?哪些情况发生后会中止事务呢?事务的目的在于让数据库从一个一致性的状态变到另一个一致性的状态。
ORACLE复习题含答案
简答题(4*5’)1、简述Oracle数据库体系结构的构成。
答:数据库实例,物理存储结构和逻辑存储结构。
实例包括内存结构与后台进程;物理存储结构主要用于描述Oracle数据库外部数据的存储,即在操作系统中如何组织和管理数据,与具体的操作系统有关;逻辑存储结构主要描述Oracle数据库内部数据的组织和管理方式,与操作系统没有关系。
2、简述Oracle数据库逻辑存储结构的组成及相互关系。
答:Oracle数据库逻辑存储结构包括表空间、段、区、块四种。
其中,数据块是数据库中最小I/O单位,由若干连续的数据块组成的区是数据库中最小的存储分配单元,由若干区形成的段是相同类型的数据存储分配区域,由若干段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库。
3、简述Oracle数据库重做日志文件的作用。
答:重做日志文件,保存了用户对数据库所作的更新操作,包含的主要信息是记录事务的开始和结束、事务中每项操作的对象和类型、更新操作前后的数据值等。
4、简述索引作用并说明索引按不同分类依据分为哪些类。
答:创建索引的作用是为了提高对表中数据的查询效率。
根据索引值是否唯一,可分为唯一性索引和非唯一性索引;根据索引的组织结构不同,可分为平衡索引和位图索引;根据索引基于列数不同,可分为单列索引和复合索引。
5、简述Oracle的安全控制机制有哪些?答:1)、用户管理2)、权限管理3)、角色管理4)、表空间设置和配额5)、用户资源限制6)、数据库审计6、简述Oracle数据库角色的种类、作用以及如何利用角色为用户授权。
答:SYS:是数据库中具有最高权限的数据库管理员,可以启动、修改和关闭数据库,拥有数据字典;SYSTEM:是一个辅助的数据库管理员,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建用户、删除用户等。
SCOTT:是一个用于测试网络连接的用户,其口令为TIGER。
PUBLIC:实质上是一个用户组,数据库中任何一个用户都属于该组成员。
第六章ORACLE复习提纲
第六章PL/SQL基础一、PL/SQL块1、分类●无名块:动态构造,只能执行一次。
●子程序:存储在数据库中的存储过程、函数及包等。
当在数据库上建立好后可以在其他程序中调用它们。
●触发器:当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。
2、无名PL/SQL块结构由声明部分、执行部分、异常处理部分三个部分组成,执行部分是必须的。
DECLARE/* 声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数*/BEGIN/* 执行部分: 过程及SQL 语句, 即程序的主要部分*/ EXCEPTION/* 执行异常部分: 错误处理*/END;3、PL/SQL写法语句可以写在多行上语法单位可以分为分隔符、标识符(包括保留字)、文字常量、注释分隔符是有特殊意义的简单或复合符号,如:+ - * / = @(访问远程数据库的符号) ;(语句结束符)<> != || --(单行注释)/* */(注释开始和结束):=标识符文字常量:字符和日期文字常量必须使用单引号括起数字常量可以是简单数值或科学计数法表示的数值XeY表示X*10Y二、使用变量1、标识符标识符名不能超过30个字符;第一个字符必须为字母;不分大小写;不能用‘-’(减号);不能是SQL保留字。
注意:一般不要把变量名声明与表中字段名完全一样,如果这样可能得到不正确的结果。
变量名不要与数据库中的列重名本地变量或形参的名字优先于表名数据库列名优先于本地变量的名字2、数据类型变量分为标量类型、复合类型、LOB类型和引用类型1)标量数据类型保存单个值没有内部组件CHAR[(maximum_length)]最大32767字节V ARCHAR2(maximum_length)最大32767字节LONG 32760 字节LONG RAW 32760 字节RAW(长度) 最大32760字节NUMBER[(precision,scale)BINARY_INTEGER 符号数PLS_INTEGER符号数,占用内存更少,运算速度快BOOLEAN,只能保存TURE、FALSE和NULL2)BLOB、CLOB、BFILE,保存了大对象的定位器(一个指向大对象存贮位置的指针)3)复合数据类型分为记录型和集合型记录型将逻辑上相关的数据项组织成一个整体集合型包括index by table(索引表)、nested table嵌套表、Varray变长数组,集合类型将数据集合作为一个对象来对待⏹记录型必须包括一个或多个由标量型、记录型、索引表型字段,类似于C语言中的structure,使用记录型可以方便的从表中取出一行数据进行处理记录中可以有任意多个字段记录中的字段可以有初始值并被定义为NOT NULL说明为NOT NULL的变量或字段必须有初始值或默认值V_A number not null (:=123|default 3);可以在任何PL/SQL块的声明部分定义记录类型记录类型可以嵌套定义记录类型:TYPE 记录类型名IS RECORD (字段1[,字段2]…);字段定义:字段名{类型|变量名%TYPE|表.列%TYPE|表名%ROWTYPE} [[NOT NULL]{:=|DEFAULT}expr]声明记录型变量:变量名记录类型名;类型定义:定义了类型的名字,结构,但不分配内存变量声明:定义了变量的类型,同时分配内存举例:●定义一个记录类型,保存职工的编号,last name和岗位将101号职工的信息保存在记录变量中,使用dbms_output包输出信息DECLARETYPE emp_record_type IS RECORD(employee_id NUMBER(6)NOT NULL:=100,last_name st_name%TYPE,job_id employees.job_id%TYPE);emp_record emp_record_type;beginselect employee_id,last_name,job_id into emp_record from employeeswhere employee_id=101;dbms_output.put_line(emp_record.employee_id);dbms_output.put_line(emp_st_name);dbms_output.put_line(emp_record.job_id);end;练习:写一个PL/SQL块,输出国家信息,要求如下:a.按照COUNTRIES表的结构声明一个PL/SQL记录型变量b.用DEFINE命令定义一个替代变量,向PL/SQL块传递country_idc.用DBMS_OUTPUT.PUT_LINE按下面格式输出国家信息:国家编码:<CA>国家名称:<Canada>地区编码:<2>d.用下面的国家编码执行PL/SQL块,并检查输出的结果CA,DE,UK,US. Define v_country_id=CAdeclarev_country countries%rowtype;beginselect * into v_country from countries where country_id='&v_country_id';dbms_output.put_line('国家编码:('||v_country.country_id||')国家名称:('||v_country.country_name||')地区编码:('||v_country.region_id||')');end;索引表TYPE 索引表类型名IS TABLE OF{column_type|variable%TYPE|table.column%TYPE}[NOTNULL]|table.%ROWTYPE[INDEX BY BINARY_INTEGER|varchar2];identifier type_name;索引表的大小不受限制索引表不能在声明时初始化索引表的数据是与index by的键值内容关联的,index by是键值,通过键值直接找到数据,键值可以是整数或字符串,索引表中的数据按键值排序举例:数据是标量型每三人一行输出lastname,每个名字占25列,左对齐declaretype tab_name_type is table of st_name%type index by binary_integer;tab_name tab_name_type;J number:=1;beginfor I in 100..104 loopselect last_name into tab_name(i) from employees where employee_id=i; end loop;for I in tab_name.first..tab_st loopif mod(j,3)=0 thenDBMS_OUTPUT.PUT_LINE(rpad(tab_name(i),20,' '));elseDBMS_OUTPUT.PUT(rpad(tab_name(i),20,' '));end if;J:=j+1;end loop;DBMS_OUTPUT.NEW_LINE;end;索引表的方法:NEXT(n)返回索引值n的数据后面一个数据的索引值,如果n是最后一个数据的索引值则返回空TRIM删除索引表中最后一个数据trim(n)删除索引表中最后n个数据DELETE(n)删除索引值为n的数据;DELETE删除全部数据;DELETE(m,n)删除索引值在m和n之间的数据EXISTS(n):如果索引值n的数据可用,返回真COUNT返回索引表中数据个数FIRST and LAST返回索引表第一个数据和最后一个数据的索引值PRIOR(n)返回第n个数据前面一个数据的索引值,如果n是第一个数据的索引值则返回空举例:数据是记录型●每三人一行输出employee_id和lastname,每个人占25列,左对齐declareTYPE emp_table_type IS TABLE OF employees%ROWTYPE INDEX BYBINARY_INTEGER;tab_name emp_table_type;beginfor I in 100..104 loopselect * into tab_name(i) from employees where employee_id=i;end loop;for I in tab_name.first..tab_st loopif mod(I,3)=0 thenDBMS_OUTPUT.PUT_LINE(rpad(tab_name(i).employee_id||tab_name(i).last_name,25,' '));elseDBMS_OUTPUT.PUT(rpad(tab_name(i).employee_id||tab_name(i).last_name,25,' '));end if;end loop;DBMS_OUTPUT.NEW_LINE;end;练习:●使用索引表从Departments表中提取部门名,将代码存在p5_q2.sql,要求如下:声明一个名字为my_dept_table的索引表,用于暂存部门名使用循环从部门表中将部门号为10,20,40,50,70,80,100的部门的名字写入一索引表使用一个新的循环,输出部门名DECLARETYPE dept_table_type IS TABLE OF departments.department_name%TYPE INDEX BY BINARY_INTEGER;my_dept_table dept_table_type;v_adder NUMBER := 0;BEGINFOR i IN 1 .. 7 LOOPIF MOD(i, 2) <> 0 THENv_adder := trunc(i / 2) * 10;END IF;SELECT department_nameINTO my_dept_table(i * 10 + v_adder)FROM departmentsWHERE department_id = i * 10 + v_adder;END LOOP;v_adder := my_dept_table.FIRST;WHILE v_adder IS NOT NULL LOOPdbms_output.put_line(my_dept_table(v_adder));v_adder := my_dept_table.NEXT(v_adder);END LOOP;END;/4)字符串必须用单引号括起,如果字符串中包含单引号,用两个连续的’’表示,如:Qutoavar varchar2(100):='this''s a sample';5)使用%TYPE声明变量●根据表中列的类型声明变量名列名%TYPE:=初始值●根据已经声明的变量的类型声明变量名已声明变量名%TYPE:=初始值注意:列的Not Null约束不会应用到使用%TYPE声明的变量●使用%ROWTYPE可以根据现有的数据库表、游标声明记录型变量变量中的字段名与声明时所依据的数据库表中的字段名相同declarerec_emp employees%rowtype;beginrec_emp.first_name:='aaaa';dbms_output.put_line(rec_emp.first_name);end;注意使用记录型变量中字段的方法3、三种变量1)在Declare部分声明的变量在Declare部分声明变量和初始化在执行部分给变量赋值通过参数将变量值传递给其他PL/SQL块通过输出变量的内容查看结果变量在每次进入程序块时初始化,默认为Null标识符[CONSTANT] 数据类型[NOT NULL][:=初始值|DEFAULT expr];不能在一行上声明多个变量赋值运算符:=2)绑定变量在sqlplus中可以使用替代变量或绑定变量与PL/sql交换数据,再使用input 和print命令输入输出替代变量的内容绑定变量是一个在宿主环境中声明的变量在sqlplus中使用variable命令声明绑定变量在PL/SQL中通过在变量名前加":"引用宿主环境中的绑定变量在Java和其他语言中都提供了相应的方法向PL/SQL传递绑定变量在sqlplus中声明绑定变量的方法:variable 变量名类型显示内容:print 变量名例如:从表中读取数据存放到变量中variable g_n numberbeginselect salary*12*(1+nvl(commission_pct,0)) into :g_nfrom employees where employee_id=144;end;/print g_n使用DBMS_OUTPUT.PUT_LINE显示变量:Oracle提供的包在PL/sql中显示数据必须要将sqlplus的Serveroutput设置为ON设置Serveroutput=on以后,DBMS_OUTPUT.put_line可以直接在屏幕上显示结果,这实际上是sqlplus提供的一种功能,PL/SQL本身没有输入输出的能力。
oracle复习
chapter 71.Oracle数据库物理存储结构的组成及各个部分的功能。
答:数据文件,控制文件,重做日志文件,归档文件,初始化参数文件,跟踪文件,口令文件,警告文件,备份文件。
数据文件:用于存储数据库中的所有数据。
控制文件:用于记录和描述数据库的物理存储结构信息。
重做日志文件:用于记录外部程序对数据库的改变操作。
归档文件:用于保存已经写满的日志文件。
初始化参数文件:用设置数据库启动时参数的初始值。
跟踪文件:用于记录用户进程,数据库后台进程的情况。
口令文件:用于保存具有sysdba sysoper权限的用户名和sys用户密码。
警告文件:用于记录数据库的重要活动以及发生的错误。
备份文件:用于存放数据库备份所产生的文件。
2.数据文件管理:(1)数据文件与表空间的关系答:数据文件是依附表空间而存在的,一个表空间可以包含几个数据文件,但一个数据文件只能从属一个表空间。
(2)数据文件的添加、数据文件大小的修改autoextend on 、resize(操作)数据文件的添加:ALTER TABLESPACE 表空间 ADD DATAFILE 数据文件名向表空间添加数据文件ALTER TABLESPACE 表空间 ADD TEMPFILE 数据文件名向临时表空间添加数据文件、数据文件的大小改变:一:自动增长方式 ALTER DATABASE DATAFILE 数据文件名AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED关闭自动增长方式: ALTER DATABASE DATAFILE 数据文件名AUTOEXTEND OFF二:手动改变数据文件大小ALTER DATABASE DATAFILE 数据文件名 RESIZE 8M(3)改变表空间大小的方式有哪几种手动改变 resize自动增长 autoextend on next 1M maxsize unlimited3.控制文件的管理(1)控制文件的基本性质控制文件是oracle中的最重要的物理文件,描述了整个数据库的物理结构信息。
Oracle期末考试复习题
oracle复习题word格式-可编辑-感谢下载支持一、填空题:1. Oracle EnterpriseManager是一个基于B/S的框架系统。
2.Oracle数据库的存储结构分为物理结构和逻辑结构。
3.在游标或者游标变量打开后还没有进行第一次提取时,%found属性为null。
4. 在oracle中已commit或rollback作为上一个事务的结束标志及下一个新事物开始的标志。
5. DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE. 6.索引的主要目标是提高访问的速度。
7.在Oracle database 10g 系统中,可以使用DBCA工具和CREATE DATEBASE命令两种方式创建数据库。
8. 命令Startup nomount只能启动数据库实例,但不能装载和打开数据库。
9.在输入URL进入Oracle Enterprice Manager Database Control 的时候,必须指出ip地址和端口号。
10.在登录Oracle Enterprice Manager Database Control时,连接身份有两种选择,分别为normal 和sysdba。
二、选择题:1.当Oracle服务器启动时,下列哪种文件不是必须装入内存的()。
DA. 数据文件B. 控制文件C. 日志文件D. 归档日志文件2. 在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据()。
BA.用户进程 B. 服务器进程 C. 日志写入进程(LGWR) D. 检查点进程(CKPT)3. 在Oracle数据库的逻辑结构中有以下组件:A 表空间;B 数据块;C 区;D段;这些组件从大到小依次是()。
BA. A→B→C→DB. A→D→C→BC. A→C→B→DD. D→A→C→B4. (B )可以从过程返回多个值。
A. 使用IN参数B. 使用OUT参数C. 使用指针D. 不能5.PL/SQL为内存耗尽时,预定义了(C )异常。
Oracle数据库复习题
Oracle数据库复习题题型:选择题:1'*15填空题:1'*10判断题:1'*10简答题:5'*3编程题:15'*1查询设计:3'*5综合题:20'一、选择题1.在关系模式中,视图是三级模式结构中的()DA. 内模式B. 模式C. 存储模式D. 外模式2.下面()内容通常不属于Oracle数据库管理员的职责。
DA.创建新用户B.创建数据库对象C.安装Oracle软件D.操纵数据库数据的应用程序开发3.在下面关于数据库技术的说法中,不正确的是__ __。
CA.数据的完整性是指数据的正确性和一致性B.防止非法用户对数据的存取,称为数据库的安全性防护C.采用数据库技术处理数据,数据冗余应完全消失D.不同用户可以使用同一数据库,称为数据共享4.下列不属于关系代数运算的是。
AA. 查询B. 投影C. 选择D. 联接5.在登录到Oracle Enterprise Manager(OEM)时,要求验证用户的身份。
下面不属于可以选择的身份为()。
DA.NormalB.SYSOPERC.SYSDBAD.Administrator6.Oracle管理数据库存储空间的最小数据存储单位是()。
CA.表空间B.表C.数据块D.区间7.下列不属于Oracle表空间的是()。
DA.大文件表空间B.系统表空间C.撤销表空间D.网格表空间8.Oracle数据库物理结构包括以下三种文件,以下不属于的是()。
AA.系统文件B.日志文件C.数据文件D.控制文件9.下面不属于Oracle数据库状态的是()。
DA.OPENB.MOUNTC.CLOSED.READY10.删除数据库的语句是()CA.DELETE DATABASEB.REMOVE DATABASEC.DROP DATABASED.UNMOUNT DATABASEA。
)语句中,指定某列不可用,可以使用关键字(ALTER TABLE 在11.A.UNUSED/doc/d7*******.html,EDC.DISABLED.NOUSE12.关键字是关系模型中的重要概念。
oracle复习题纲
1、数据库的三级体系结构1)模式模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式实际上是数据库数据在逻辑级上的视图。
一个数据库只有一个模式。
定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。
(2)外模式外模式也称用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式通常是模式的子集。
一个数据库可以有多个外模式。
应用程序都是和外模式打交道的。
外模式是保证数据库安全性的一个有力措施。
每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们是不可见的。
(3)内模式内模式也称存储模式,一个数据库只有一个内模式。
它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
例如,记录的存储方式是顺序结构存储还是B树结构存储;索引按什么方式组织;数据是否压缩,是否加密;数据的存储记录结构有何规定等。
2、关系完整性约束的三种类型1.域完整性域完整性是对数据表中字段属性的约束,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。
2.实体完整性实体完整性是对关系中的记录唯一性,也就是主键的约束。
准确地说,实体完整性是指关系中的主属性值不能为Null且不能有相同值。
3.参照完整性参照完整性是对关系数据库中建立关联关系的数据表间数据参照引用的约束,也就是对外键的约束。
准确地说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是NULL。
3、Oracle的体系结构(存储结构和实例结构)书P1笔记4、在SQLPLUS中,数据库的启动方式及关闭方式书P475、SQL语言的概念及分类SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。
Oracle基本知识复习总结
oralce基本操作。
1.创建用户,修改密码:Create user 用户名identified by 密码;Alter user 用户名identified by 密码;若删除用户为drop user 用户名(cascade)2.修改归档模式和非归档模式:查看归档模式:archive log list首先关闭数据库:shutdown immediate然后在mount 数据库startup mount改变归档模式:alter database archivelog最后启动数据文件:alter database open如果设置路径的话为:alter system set log_archive_dest_1="location=/oradata5/arch/ytsj";此在改变归档模式之前的一步做。
120816-0001383.查看oracle版本:select banner from sys.v_$version;4.查看oracle闪回区信息:select * from v$recovery_file_dest;5.整理表空间1.自由范围的碎片整理表空间的pctincrease值为非0可以将表空间的缺省存储参数pctincrease改为非0。
一般将其设为1,如:alter tablespace tempdefault storage(pctincrease 1);这样SMON便会将自由范围自动合并。
也可以手工合并自由范围:alter tablespace temp coalesce;2.段的碎片整理段由范围组成。
在有些情况下,有必要对段的碎片进行整理。
要查看段的有关信息,可查看数据字典dba_segments,范围的信息可查看数据字典dba_extents。
如果段的碎片过多,将其数据压缩到一个范围的最简单方法便是用正确的存储参数将这个段重建,然后将旧表中的数据插入到新表,同时删除旧表。
oracle复习整理
第一章Oracle数据库介绍1.Oracle产品版本。
PPT P4● Oracle-甲骨文,两大类产品服务器与工具企业级应用软件● Oracle数据库的版本Oracle 8i、Oracle 9i、Oracle 10g、Oracle11g1) i表示支持互联网技术2)g表示支持网格计算2.Oracle的安装路径。
PPT P173.对于Oracle的应用软件开发,将用到的三个系统服务。
PPT P25,第二章 PPT P57● 监听服务命名规则:Oracle<Oracle_Home_Name>TNSListener。
如:OracleOraDb11g_home1TNSListener,Oracle数据库监听服务。
● Oracle数据库服务命名规则:OracleService<数据库实例名SID>如:数据库实例名是安装时设定的orcl与SQL Server数据库很大的区别是:Oracle的每个数据库就是一个实例,并且每个实例会对应安装一个数据库服务。
●控制台服务:OracleDBConsole<SID> 如OracleDBConsoleorcl4. Oracle提供的操作数据库的工具。
P23:三种工具(1)Oracle11g企业管理器(Oracle Enterprice Manager)简称OEM,是一个基于Java的框架系统,该系统集成了多个组件,为用户提供了一个功能强大的图形用户界面。
(2)SQL*PLUS工具,用户可以定义和操作Oracle关系数据库中的数据。
(3)SQL Developer工具:是一个图形化的,免费的集成开发环境,他被集成于Oracle11g 中,以利于Oracle数据库的开发。
SQL*PLUS:PPT P31-35◆SQL*Plus是与Oracle交互的客户端工具在SQL*Plus中可以运行SQL语句与PL/SQL语句块◆ 1.进入与退出进入:开始菜单或在命令行方式下,输入命令:sqlplus 退出:exit命令◆ 2.在SQL*PLUS中运行SQL语句◆ 3.SQL*PLUS命令◆ 4.设置SQL*PLUS◆DOS环境下使用与编辑命令的基本方法:可以用↑↓移动查找已执行的命令,找到后按回车键执行F3显示上一次运行的命令◆输入SQL,以分号结束(SQL命令不区分大小写)例:查询数据库实例名、主机名SELECT instance_name,host_name FROM v$instance;查询数据库用户名、状态SELECT username,account_status FROM dba_users;查看Oracle数据库及各组件的版本信息◆创建快捷方式命令路径:<ORACLE_HOME>\BINSQL*PLUS的可执行文件:sqlplus.exe简化登录:sqlplus 用户名/口令◆SQL*PLUS环境的简单设置在快捷方式的属性窗口,有“选项”页、“字体”页、“布局”页和“颜色”页◆用SQL*PLUS系统变量来设置P123SQL*PLUS有一组系统变量,主要用于设置或定义SQL*PLUS的操作环境。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【注意】:order by只要一个
使用列的别名排序
select ename 名字, (sal+nvl(comm,0))*12 "年薪" from emp order by "年薪";
不明白为什么下面的也对:
与
select sal,job,deptno from emp where ename='SMITH';
查询的结果是不同的。
A.orcle简单查询
3.算术表达式
(1)?显示每个雇员的年工资
SELECT sal*12 年工资,ename 员工姓名 from emp;
?如何显示第三个字符为大写0的所有员工的姓名和工资
select ename 姓名 ,sal 工资 from emp where ename like '__O%'
7.
where 条件中使用in
?如何显示empno为7844,7782,7902的雇员情况
SELECT * FROM emp WHERE empno in(7844,7782,7902);
select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno;
?如何显示部门号为10的部门名,员工名和工资
select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno and d.deptno=10;
);
2.
查看表的结构
desc dept;
查询所有列
select * from emp;
取消重复列
select distinct deptno from emp;
【注意】:oracel里ename的内容区分大小写.
select sal,job,deptno from emp where ename='smith';
?显示平均工资低于2000的部门号和他的平均工资
select avg(sal),max(sal),deptno from emp group by deptno having avg(sal)>2000;
对数据分组的总结:
1.分组函数只能出现在选择列表里比如max(sal),haing,order by子句中。
结果是:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
1.创建表
create table student(
xh number(4),
xm varchar2(20),
sex char(2),
birtday date,
sal number(7,2)
);
create table classes(
classId number(2),
cname varchar2(40)
select ename 姓名,hiredate 入职日期 from emp where hiredate>'1-1月-1982';
?如何显示工资在2000到2500的员工情况
select ename 姓名,sal 工资 from emp where sal>=2000 and sal<=2500;
?显示各个员工的姓名,工资以及公司的级别
select e.ename,e.sal,s.grade from emp e,salgrade s where e.sal between s.losal and s.hisal;
显示雇员名称,雇员工资以及所在部门 的名字,并按部门排序
select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno order by e.deptno;
2. 自连接
?显示某个员工的上级领导姓名
select worker.ename,boss.ename from emp worker,emp boss where worker.mgr=boss.empno;
4.如何连接字符串
select ename ||'is a'|| job from emp;
5.使用where语句
?如何显示工资高于3000的员工
select ename 姓名 ,sal 工资 from emp where sal>3000;
?如何查找1982.1.1后入职的员工
8.
使用is null的操作符
?如何显示没有上级的雇员情况
SELECT * from emp where mgr is null;
9.
使用逻辑操作符号
?查询工资高于500或是岗位为manager的雇员,同时还要满足他们的姓名手写字母为大写J
select * from emp where (sal>500 or job='MANAGER')and ename like 'J%';
若双薪SELECT sal*13,ename 员工姓名 from emp;
以上不合理的有些人是有奖金的
SELECT sal*12+comm*12 年工资,ename 员工姓名 from emp;
如何处理null:
SELECT sal*12+nvl(comm,0)*12年工资,ename 员工姓名 from emp;
7566 JONES MANAGER 7839 1981-4-2 2975.00 20
7900 JAMES CLERK 7698 1981-12-3 950.00 30
10.使用order by语句
?如何按照工资的从高到低的顺序显示雇员的信息
select ename 姓名, sal 工资 from emp order by sal;
?按照部门号升序而雇员的工资降序排列
select * from emp order by deptno ,sal desc;
?按照部门号升序而雇员的入职时间降序排列
?如何显示每个部门的平均工资和最高工资
select avg(sal),max(sal),deptno from emp group by deptno;
?显示每个部门),max(sal),min(sal),deptno,job from emp group by deptno,job;
select ename ,sal from emp where sal=(select max(sal) from emp);
?显示工资高于平均工资的员工信息
select ename,sal from emp where sal>(select avg(sal) from emp);
2.group by 和 having语句。
select ename 名字, (sal+nvl(comm,0))*12 年薪 from emp order by 年薪;
B.oracle复杂查询
1.数据分组 -max,min,max,avg,sum,count
?如何显示所有员工中最高工资和最低工资
2.如果在select语句中同时包含有group by,having,order by那么他们的顺序是group by,having,order by.
C.多表查询
1. (多表查询的条件是 至少不能少于表的个数-1)
?显示雇员名,雇员工资,及所在部门的名字-[笛卡尔集]
select min(sal),max(sal) from emp ;
?显示所有员工的工资的平均工资和工资总和
select avg(sal),sum(sal) from emp;
?计算共有多少员工
select count(ename) from emp;
拓展要求:
?显示工资最高的员工的姓名
以上结果简写为--
select ename 姓名,sal 工资 from emp where sal between 2000 and 2500;
6.如何使用like:
%:表示任意 0到多个字符 _:表示任意单个字符
?如何显示首字符为s的员工姓名和工资
select ename 姓名 ,sal 工资 from emp where ename like 'S%';