数据库笔试题面试题集.docx
- 文档编号:11305835
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:13
- 大小:24.76KB
数据库笔试题面试题集.docx
《数据库笔试题面试题集.docx》由会员分享,可在线阅读,更多相关《数据库笔试题面试题集.docx(13页珍藏版)》请在冰豆网上搜索。
数据库笔试题面试题集
数据库笔试题面试题集
数据维护(DML):
insert、update、delete
数据定义(DDL):
create、drop、alert、rename、truncate
事务处理控制:
commit、rollback、savepoint
数据控制(DCL):
Grant、revoke
68,SQL*Plus的使用:
1)文件命令
a)SAVEfilename把当前SQL缓冲区的内容存储在文件filename中
b)GETfilename把文件filename中的内容写入当前SQL缓冲区
c)STARTfilename执行存储在filename中的内容
d)@filename执行存储在filename中的内容
e)EDITfilename打开文本编辑器,把当前SQL缓冲区的内容写入文件afiedt.buf
f)SPOOLfilename把查询的数据结果存储在filename中
g)EXIT退出SQL*Plus
2)文本编辑命令
a)A[PPEND]text
b)C[HANGE]/old/new
c)CL[EAR]buff[ER]
d)DEL
e)I[NPUT]text
f)L[IST]n
g)Ntext
69,oracle数据字典的四大视图类型:
-user用户拥有的对象
-all用户可访问对象
-DBA所有数据对象
-v$服务器性能对象
70,oracle通用数据类型:
1)BINARY_INTEGER:
基本数值整型,-21474836472147483647
2)NUMBER[(precision,scale):
]基本浮点数值型
3)CHAR[(maximun_length)]:
固定长度的字符型,最大值为32760
4)LONG:
可变常字符型,最大长度为32760
5)LONGRAW:
二进制型,最大长度为32760
6)VARCHAR2(maximum_length):
可变长字符型,最大长度为32767
7)DATE:
日期和时间类型
8)BOOLEAN:
逻辑型(TRUE、FALSE或NULL)
71,数据库引擎
数据库引擎是用于存储、处理和保护数据的核心服务。
利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。
使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。
这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。
78,Mysql引擎:
在缺省情况下,MySQL支持三个引擎:
ISAM、MyISAM和HEAP。
另外两种类型InnoDB和Berkley(BDB),也常常可以使用。
ISAM
ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。
因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。
ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:
如果你的硬盘崩溃了,那么数据文件就无法恢复了。
如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL能够支持这样的备份应用程序。
MyISAM
MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。
除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作。
其代价是你需要经常运行OPTIMIZETABLE命令,来恢复被更新机制所浪费的空间。
MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk工具和用来恢复浪费空间的MyISAMPack工具。
MyISAM强调了快速读取操作,这可能就是为什么MySQL受到了Web开发如此青睐的主要原因:
在Web开发中你所进行的大量数据操作都是读取操作。
所以,大多数虚拟主机提供商和Internet平台提供商(InternetPresenceProvider,IPP)只允许使用MyISAM格式。
HEAP
HEAP允许只驻留在内存里的临时表格。
驻留在内存里让HEAP要比ISAM和MyISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。
在数据行被删除的时候,HEAP也不会浪费大量的空间。
HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。
要记住,在用完表格之后就删除表格。
让我再重复一遍:
在你用完表格之后,不要忘记删除表格。
InnoDB和BerkleyDB
InnoDB和BerkleyDB(BDB)数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MySQL++API。
在使用MySQL的时候,你所面对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理也不支持外来键。
尽管要比ISAM和MyISAM引擎慢很多,但是InnoDB和BDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。
如前所述,如果你的设计需要这些特性中的一者或者两者,那你就要被迫使用后两个引擎中的一个了。
数据库引擎设定与切换:
1)CREATETABLEtblMyISAM(
idINTNOTNULLAUTO_INCREMENT,
PRIMARYKEY(id),
value_aTINYINT
)TYPE=MyISAM;
2)ALTERTABLEtblMyISAMCHANGETYPE=InnoDB;
3)SHOWTABLESTATUSFROMtblInnoDB;
79,Mysql6的新特性:
(与mysql5比较)
1)新Falcon事务存储引擎(“Falcon存储引擎”)。
2)支持更多的Unicode字符集:
utf16,utf32,和4字节utf8。
这些字符集支持这些附加的Unicode字符集,也就是那些在基础多语言基础之外的字符。
3)增加了BACKUPDATABASE和RESTORE语句来进行备份和还原操作.见第6.3节,“使用MySQL备份”。
4)改进INFORMATION_SCHEMA数据库,并增加了INFORMATION_SCHEMA.PARAMETERS表,INFORMATION_SCHEMA.ROUTINES增加了新列
5)对子查询和Join进行了优化,包括对MyISAD和InnoB存储引擎分散范围内的批量索引访问。
6)RESETSLAVE不再更改复制连接的参数;以前,它重置他们到命令行指定的数值
7)LOCKTABLES语法已经扩展,支持不会自动事务提交的事务表锁。
在后面的LOCKTABLESINSHAREMODE或者LOCKTABLESINEXCLUSIVEMODE你可以使用未提及的表级锁,你也可以确保LOCKTABLES语句可以连续的得到多次的事务锁,增加额外的表格到锁集合,而无需解锁以前已经锁住的表格。
当使用LOCKTABLESwithINSHAREMODE或者在EXCLUSIVEMODE,表级锁在事务结束前不会解锁。
使用LOCKTABLE获得的事务锁在事务结束时释放,包括显示的提交或者回滚,或者由于语句引起的隐式提交,或者由于链接关闭.LOCKTABLES的行为在READ和WRITE锁时报出不变(也就是当不使用INSHAREMODE或者INEXCLUSIVEMODE)。
8)增强的XML功能,包括一个新的LOADXML语法
9)支持扩展的注释,包括表,列和索引。
80,oracle版本间比较:
Oracle11g:
g=gridcomputing
1.数据库管理部分
◆数据库重演(DatabaseReplay)
这一特性可以捕捉整个数据的负载,并且传递到一个从备份或者standby数据库中创建的测试数据库上,然后重演负责以测试系统调优后的效果。
◆SQL重演(SQLReplay)和前一特性类似。
但是只是捕捉SQL负载部分,而不是全部负载。
◆计划管理(PlanManagement)这一特性允许你将某一特定语句的查询计划固定下来,无论统计数据变化还是数据库版本变化都不会改变她的查询计划。
◆自动诊断知识库(AutomaticDiagnosticRepositoryADR)当Oracle探测到重要错误时,会自动创纪一个事件(incident),并且捕捉到和这一事件相关的信息,同时自动进行数据库健康检查并通知DBA。
此外,这些信息还可以打包发送给Oracle支持团队。
◆事件打包服务(IncidentPackagingService)如果你需要进一步测试或者保留相关信息,这一特性可以将与某一事件相关的信息打包。
并且你还可以将打包信息发给oracle支持团队。
◆基于特性打补丁(FeatureBasedPatching)在打补丁包时,这一特性可以使你很容易区分出补丁包中的那些特性是你正在使用而必须打的。
企业管理器(EM)使你能订阅一个基于特性的补丁服务,因此企业管理器可以自动扫描那些你正在使用的特性有补丁可以打。
◆自动SQL优化(AutoSQLTuning)10g的自动优化建议器可以将优化建议写在SQLprofile中。
而在11g中,你可以让oracle自动将能3倍于原有性能的profile应用到SQL语句上。
性能比较由维护窗口中一个新管理任务来完成。
◆访问建议器(AccessAdvisor)11g的访问建议器可以给出分区建议,包括对新的间隔分区(intervalpartitioning)的建议。
间隔分区相当于范围分区(rangepartitioning)的自动化版本,她可以在必要时自动创建一个相同大小的分区。
范围分区和间隔分区可以同时存在于一张表中,并且范围分区可以转换为间隔分区。
◆自动内存优化(AutoMemoryTuning)在9i中,引入了自动PGA优化;10g中,又引入了自动SGA优化。
到了11g,所有内存可以通过只设定一个参数来实现全表自动优化。
你只要告诉oracle有多少内存可用,她就可以自动指定多少内存分配给PGA、多少内存分配给SGA和多少内存分配给操作系统进程。
当然也可以设定最大、最小阈值。
◆资源管理器(ResourceManager)11g的资源管理器不仅可以管理CPU,还可以管理IO。
你可以设置特定文件的优先级、文件类型和ASM磁盘组。
◆ADDM,ADDM在10g被引入。
11g中,ADDM不仅可以给单个实例建议,还可以对整个RAC(即数据库级别)给出建议。
另外,还可以将一些指示(directive)加入ADDM,使之忽略一些你不关心的信息。
◆AWR基线(AWRBaselines)AWR基线得到了扩展。
可以为一些其他使用到的特性自动创建基线。
默认会创建周基线。
2.PLSQL部分
◆结果集缓存(ResultSetCaching)这一特性能大大提高很多程序的性能。
在一些MIS系统或者OLAP系统中,需要使用到很多selectcount(*)这样的查询。
在之前,我们如果要提高这样的查询的性能,可能需要使用物化视图或者查询重写的技术。
在11g,我们就只需要加一个/*+result_cache*/的提示就可以将结果集缓存住,这样就能大大提高查询性能。
当然,在这种情况下,我们可能还要关心另外一个问题:
完整性。
因为在oracle中是通过一致性读来保证数据的完整性的。
而显然,在这种新特性下,为提高性能,是从缓存中的结果集中读取数据,而不会从回滚段中读取数据的。
关于这个问题,答案是完全能保证完整性。
因为结果集是被独立缓存的,在查询期间,任何其他DML语句都不会影响结果集中的内容,因而可以保证数据的完整性。
◆对象依赖性改进在11g之前,如果有函数或者视图依赖于某张表,一旦这张表发生结构变化,无论是否涉及到函数或视图所依赖的属性,都会使函数或视图变为invalid。
在11g中,对这种情况进行了调整:
如果表改变的属性与相关的函数或视图无关,则相关对象状态不会发生变化。
◆正则表达式的改进在10g中,引入了正则表达式。
这一特性大大方便了开发人员。
11g,oracle再次对这一特性进行了改进。
其中,增加了一个名为regexp_count的函数。
另外,其他的正则表达式函数也得到了改进。
◆新SQL语法=>我们在调用某一函数时,可以通过=>来为特定的函数参数指定数据。
而在11g中,这一语法也同样可以出现在sql语句中了。
例如,你可以写这样的语句:
selectf(x=>6)fromdual;
◆对TCP包(utl_tcp、utl_smtp…)支持FGAC(FineGrainedAccessControl)安全控制
◆增加了只读表(read-onlytable)在以前,我们是通过触发器或者约束来实现对表的只读控制。
11g中不需要这么麻烦了,可以直接指定表为只读表。
◆触发器执行效率提高了
◆设置触发器顺序可能在一张表上存在多个触发器。
在11g中,你可以指定它们的触发顺序,而不必担心顺序混乱导致数据混乱。
◆混合触发器(compoundtrigger)这是11g中新出现的一种触发器。
她可以让你在同一触发器中同时具有申明部分、before过程部分、aftereachrow过程部分和after过程部分。
◆创建无效触发器(DisabledTrigger)11g中,开发人员可以可以闲创建一个invalid触发器,需要时再编译她。
◆在非DML语句中使用序列(sequence)在之前版本,如果要将sequence的值赋给变量,需要通过类似以下语句实现:
selectseq_x.next_valintov_xfromdual;在11g中,不需要这么麻烦了,下面语句就可以实现:
v_x:
=seq_x.next_val;
◆PLSQL_Warning11g中,可以通过设置PLSQL_Warning=enableall,如果在whenothers没有错误爆出就发警告信息。
◆PLSQL的可继承性可以在oracle对象类型中通过super(和java中类似)关键字来实现继承性。
◆编译速度提高因为不在使用外部C编译器了,因此编译速度提高了。
◆改进了DBMS_SQL包其中的改进之一就是DBMS_SQL可以接收大于32k的CLOB了。
另外还能支持用户自定义类型和bulk操作。
◆增加了continue关键字在PLSQL的循环语句中可以使用continue关键字了(功能和其他高级语言中的continue关键字相同)。
◆新的PLSQL数据类型——simple_integer这是一个比pls_integer效率更高的整数数据类型。
3.其他部分
◆增强的压缩技术可以最多压缩2/3的空间。
◆高速推进技术可以大大提高对文件系统的数据读取速度。
◆增强了DATAGuard可以创建standby数据库的快照,用于测试。
结合数据库重演技术,可以实现模拟生成系统负载的压力测试。
◆在线应用升级也就是热补丁——安装升级或打补丁不需要重启数据库。
◆数据库修复建议器可以在错误诊断和解决方案实施过程中指导DBA。
◆逻辑对象分区可以对逻辑对象进行分区,并且可以自动创建分区以方便管理超大数据库(VeryLargeDatabasesVLDBs)。
◆新的高性能的LOB基础结构
◆新的PHP驱动
Oracle10g:
1)对新的架构支持
对Intel64位平台的支持。
支持infiniband。
极大地改进了多层开发架构下的性能和可扩展能力。
新的版本也借用了Windows操作系统对Fiber支持的优势。
2)高速数据处理能力
在这个版本中,一个新类型的表对象被引入。
该表结构对大量插入和解析数据很有益处。
这个表结构对FIFO的数据处理应用有着很好的支持。
这样的应用在电信、生产应用中常常能够用到。
通过使用这种优化的表结构能够对电信级的应用起到巨大的性能改进作用。
3)RACworkload管理
一个新的服务框架。
使得管理员作为服务来设置、管理监视应用负载。
4)针对OLAP的分区
通过对哈希分区的全局索引的支持可以提供大量的并发插入的能力
5)新的改进的调度器(Scheduler)
引入了一个新的数据库调度器,提供企业级调度功能。
这个调度器可以使得管理员有能力在特定日期、特定时间调度Job。
还有能力创建调度对象的库能够和既有的对象被其他的用户共享。
6)简化的数据库配置与升级
提供了预升级检查能力,有效地减少升级错误。
去除了了很多和数据库配置有关的任务或者对其加以自动化。
在初始安装的时候,所有数据库都被预配置包括在OEM环境中而无需建立一个管理资料库。
补丁程序可以自动标记并自动从OracleMetalink下载。
7)自动存储管理
新版本的数据库能够配置成使用Oracle提供的存储虚拟层(StorageVirtualizationLayer)。
自动并简化数据库的存储。
管理员现在可以管理少数的磁盘组而无需管理数千个文件自动存储管理功能可以自动配置磁盘组,提供数据冗余和数据的优化分配。
8)自动的基于磁盘备份与恢复
10G也极大的简化了备份与恢复操作。
这个改进被称作DiskbasedRecoveryArea,可以被一个联机DiskCache用来进行备份与恢复操作。
备份可以调度成自动化操作,自动化优化调整。
备份失败的时候,可以自动重启,以确保Oracle能够有一个一致的环境使用。
9)应用优化
以前的版本中,DBA更多时候要手工对SQL语句进行优化调整。
这里引入了一些新的工具,从此DBA无需手工做这些累人的事情。
(这样的说法似乎有些太绝对)
10)自动化统计收集
为对象自动化收集优化统计。
11)自动化实例调整
DBA需要干预的越来越少么好消息还是坏消息
12)自动化内存调整
上一个版本对UGA能够进行自动化Tuning,这版本能够对SGA相关的参数进行调整。
这意味着DBA只需要对2个内存参数进行配置:
用户可用的总的内存数量和共享区的大小。
13)缩短应用和数据库升级的宕机时间
通过使用standby数据库。
允许在不同版本的standby和产品数据库间切换。
现有的联机重定义功能能够支持一步克隆所有相关的数据库对象。
14)回闪(Flashback)任何错误
该版本的Oracle也扩展了Flashback的能力。
加了一个新类型的Log文件,该文件记录了数据库块的变化。
这个新的Log文件也被自动磁盘备份和恢复功能所管理。
如果有错误发生,例如针对不成功的批处理操作,DBA可以运行FlashBack。
用这些beforeImages快速恢复整个数据库到先前的时间点无须进行恢复操作,这个新功能也可以用到Standby数据库中。
Flashback是数据库级别的操作,也能回闪整个表。
既有的FlashBack查询的能力也已经加强。
在这个版本中,管理员能够快速查看特定事务导致的变化。
15)EnhancedDataGuardInfrastructure
16)超大数据库的支持
可支持到8E的数据量。
改进的存储、备份、恢复管理也对超大数据库有着很好的支持。
分区可以支持索引组织表。
17)缩短信息周转时间
新版本的Oracle提供了加强的ETL功能。
可以方便的构建大型数据仓库和多个数据集市。
一个新的变化数据捕捉的框架允许管理员能够轻易的捕捉并发布数据的变化。
新的CDC功能利用的是Oracle的Stream技术架构。
对于大数据量的转移,新版本提供了对可传输表的跨平台的支持,允许大批量数据快速从数据库上的脱离并附接到第二个数据库上。
18)增强的外部表功能
19)SQLLoader的功能加强
20)增强的SQL分析能力
21)增强的OLAP分析功能
Oracle内建的分析功能得到增强。
提供了新的基于PL/SQL和XML的接口。
提供了新的并行能力,以便于进行聚合和SQLIMPERT操作。
一些算法得到改进。
同时OEM能够用来监视并管理数据挖掘环境。
22)BIOINFORMATICS的支持
这个版本包含对BIOINFORMATICS技术的特定支持。
包括对Double和Float数据类型的Native支持。
内建的统计函数支持常见的ANOVA分析等。
23)改进的数据挖掘的能力
24)XML方面的增强,多媒体,文档与文本管理,
25)SQL语言,PL/SQL语言,JDBC支持更好
81,数据库课本:
1)常用数据模型:
层次,网状,关系,面向对象
2)关系模型允许三类完整性约束:
实体完整性,参照完整性,用户自定义完整性。
3)数据库设计的基本步骤:
需求分析;概念结构设计;逻辑结构设计;物理结构设计;数据库实施;数据库运行与维护。
4)常用的三类存储方法:
索引:
目前主要为B+树。
聚类:
cluster
哈希:
hash
5)事务特性:
ACID:
原子性,一致性,隔离性,持续性。
6)数据不一致:
丢失修改,不可重复读,读脏数据
7)并发控制:
封锁排他锁(写锁),共享锁(读锁)
8)三级封锁协议:
一级:
修改前加写锁,事务结束后释放写锁。
二级:
一级的基础上,读取前加读锁,读完释放读锁。
三级:
一级的基础上,读取前加读锁,事务结束才释放读锁。
9)两段锁协议:
一段:
对任何数据进行读写之前,首先申请获得全部需要的锁。
二段:
在释放一个锁之后,在该事务中只能释放锁了,不能再继续申请锁。
10)oracle三个级别的安全性:
表级,行级,列级。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 笔试 试题