




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库程序员面试分类真题28一、单项选择题1.
您的公司有一个DBServer,名为AllWin,其上装了MSSQLSERVER2000。现在需要您写一个数据库连接字符串,用以连接AllWin上SQ(江南博哥)LSERVER中的一个名为PubBase实例的Test库。请问,应该选择______A.“Server=AllWin;DataSource=PubBase;InitialCatalog=Test;IntegratedSecurity=SSPI”B.“Server=AllWin;DataSource=PubBase;Database=Test;IntegratedSecurity=SSPI”C.“DataSource=AllWin\PubBase;InitialCategory=PubBase;IntegratedSecufity=SSPI”D.“DataSource=AllWin\PubBase;Database=Test;IntegratedSecurity=SSPI”正确答案:B[解析]使用服务器名\实例名作为连接指定SQLServer实例的数据源。如果使用的是SQLServer2008Express版,那么实例名为SQLEXPRESS。
(1)标准安全连接
DataSource=myServerAddress;InitialCatalog=myDataBase;UserId=myUsemame;Password=myPassword;
(2)可替代的标准安全连接
Server=mySeNerAddrNs;Database=myDataBase;UserID=myUsername;Password=myPassword;Trusted_Connection=False;
(3)信任连接
DataSource=myServerAddress;InitialCatalog=myDataBase;IntegratedSecurity=SSPI;
(4)可替代的信任连接
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
2.
在SQLServer中,保存所有的临时表和临时存储过程的是______A.Master数据库B.Tempdb数据库C.Model数据库D.Msdb数据库正确答案:B[考点]维护操作[解析]
总体而言,SQLServer有如下4个默认的数据库:Master、Model、Tempdb和Msdb。
(1)Master
Master数据库(主数据库)保存放在SQLServer实体上的所有数据库元数据的详细信息,它还是将引擎固定起来的粘合剂。由于如果不使用Master数据库,那么SQLServer就不能启动,所以,必须要小心地管理好这个数据库。因此,对这个数据库进行常规备份是十分必要的。这个数据库还包括了诸如系统登录、配置设置、已连接的Server信息、扩展存储过程等。
(2)Model
Model数据库(模型数据库)是一个用来在实体上创建新用户数据库的模板数据库,可以把任何存储过程、视图、用户等放在模型数据库里,这样在创建新数据库的时候,新数据库就会包含存放在模型数据库里的所有对象了。
(3)Tempdb
Tempdb数据库存有临时对象,例如全局和本地临时表和存储过程。这个数据库在SQLServer每次重启的时候都会被重新创建,而其中包含的对象是依据模型数据库里定义的对象被创建的。除了这些对象,Tempdb还存有其他对象,例如表变量、来自表值函数的结果集以及临时表变量。由于Tempdb会保留SQLServer实体上所有数据库的对象类型,所以,对数据库进行优化配置是非常重要的。
(4)Msdb
Msdb数据库用来保存数据库备份、SQLAgent信息、DTS程序包和SQLServer任务等信息,以及诸如日志转移这样的复制信息。
从SQlServerStudio中可以查看所有的数据库,如下图所示。
3.
在SQLServer2000中,若希望用户user1具有数据库服务器上的全部权限,则应将user1加入角色______A.db_ownerB.publicC.db_datawriterD.sysadmin正确答案:D[考点]维护操作[解析]登录名就是可以登录该服务器的名称;服务器角色就是该登录名对该服务器具有的权限。一个服务器可以有多个角色,一个角色可以有多个登录名,就好像操作系统可以有多个登录用户。固定服务器角色描述sysadmin可以在SQLServer中执行任何操作serveradmin可以设置服务器范围的配置选项,可以关闭服务器setupadmin可以管理链接服务器和启动过程securityadmin可以管理登录和CREATEDATABASE权限,还可以读取错误日志和更改密码processadmin可以管理在SQLServer中运行的进程dbcreator可以创建、更改和删除数据库diskadmin可以管理磁盘文件bulkadmin可以执行BULKINSERT语句db_owner在数据库中有全部权限db_accessadmin可以添加或删除用户IDdb_securityadmin可以管理全部权限、对象所有权、角色和角色成员资格db_ddladmin可以发出ALLDDL,但不能发出GRANT、REVOKE或DENY语句db_backupoperator可以发出DBCC、CHECKPOINT和BACKUP语句db_datareader可以选择数据库内任何用户表中的所有数据db_datawriter可以更改数据库内任何用户表中的所有数据db_denydatareader不能选择数据库内任何用户表中的任何数据db_denydatawriter不能更改数据库内任何用户表中的任何数据
在使用的过程中,一般使用sa(登录名)或WindowsAdministration(Windows集成验证登录方式)登录数据库。这种登录方式登录成功以后具有最高的服务器角色,也就是可以对服务器进行任何一种操作。而这种登录名具有的用户名是DBO(数据库默认用户,具有所有权限),但是,在使用的过程中,一般感觉不到DBO的存在,但它确实存在。通常创建用户名与登录名相同(如果不改变用户名称,那么系统会自动创建与登录名相同的用户名,这个不是强制相同的),例如,创建了一个登录名称为“ds”,那么可以为该登录名“ds”在指定的数据库中添加一个同名用户,使登录名“ds”能够访问该数据库中的数据。[考点]维护操作
4.
SQLServer2000提供了完全备份、差异备份和日志备份等几种备份方法,其中差异备份备份的内容是______A.上次差异备份之后修改的数据库全部内容B.上次完全备份之后修改的数据库全部内容C.上次日志备份之后修改的数据库全部内容D.上次完全备份之后修改的数据库内容,但不包括日志等其他内容正确答案:B[考点]备份恢复[解析]完全备份可对整个数据库进行备份。这包括对部分事务日志进行备份,以便在还原完整数据库备份之后,能够恢复完整数据库。
差异备份基于的是最近一次的完全备份。差异备份仅捕获自上次完全备份后发生更改的数据。差异备份基于的完全备份称为差异的“基准”。完全备份可以用作一系列差异备份的基准,包括数据库备份、部分备份和文件备份。文件差异备份的基准备份可以包含在完全备份、文件备份或部分备份中。
日志备份分为事务日志备份和结尾日志备份。在创建任何日志备份之前,必须至少创建一个完全备份。然后,可以随时备份事务日志。建议经常执行日志备份,这样既可尽量减少丢失工作的风险,也可以截断事务日志。通常,数据库管理员偶尔(例如,每周)会创建完全备份,还可以选择以较短间隔(例如,每天)创建一系列差异备份。数据库管理员可以比较频繁地(例如每隔10min)创建事务日志备份。对于给定的备份类型,最恰当的备份间隔取决于一系列因素,例如,数据的重要性、数据库的大小和服务器的工作负载。结尾日志备份捕获尚未备份的任何日志记录(“结尾日志”),以防丢失所做的工作并确保日志链完好无损。在将SQLServer数据库恢复到其最近一个时间点之前,必须先备份数据库的事务日志。结尾日志备份将是数据库还原计划中相关的最后一个备份。
二、简答题1.
SQLServer如何获取系统时间?正确答案:利用函数GETDATE可以获取系统时间,查询语句为SELECTGETDATE()。[考点]函数
2.
SQLServer如何查看版本?正确答案:可以通过图形界面查询,也可以通过SQL语句查询来获取数据库的版本,SQL语句为SELECT@@VERSION,如下:
MicrosoftSQLServer2008(RTM)-10.0.1600.22(IntelX86)Jul9200814:43:34Copyright(c)1988-2008MicrosoftCorporationEnterpriseEditiononWindowsNT5.1<X86>(Build2600:ServicePack3)(VM)[考点]函数
3.
用一条SQL语句查询出每门课都大于80分的学生姓名:
namekechengfenshu
张三语文81
张三数学75
李四语文76
李四数学90
王五语文81
王五数学100
王五英语90正确答案:SELECTDISTINCTNAMEFROMTABLEWHERENAMENOTIN(SELECTDISTINCTNAMEFROMTABLEWHEREFENSHU<=80);。[考点]SQL部分
设教学数据库中有三个基本表:
学生表S(S拌,SNAME,AGE,SEX),其属性表示学生的学号、姓名、年龄和性别;选课表SC(S#,C#,GRADE),其属性表示学生的学号、所学课程的课程号和成绩;课程表C(C#,CNAME,TEACHER),其属性表示课程号、课程名称和任课教师姓名。
下面的题目都是针对上述三个基本表操作的。4.
试写出下列插入操作的SQL语句:
把SC表中每门课程的平均成绩插入另一个已存在的表SC_C(C#,CNAME,AVG_GRADE)中,其中,AVG_GRADE为每门课程的平均成绩。正确答案:INSERTINTOSC_C(C#,CNAME,AVG_GRADE)SELECTSC.C#,C.CNAME,AVG(GRADE)FROMSC,CWHERESC.C#=C.C#GROUPBYSC.C#,C.CNAME;[考点]SQL部分
5.
试写出下列删除操作的SQL语句:
从SC表中把WU老师的女学生选课元组删去。正确答案:DELETEFROMSCWHERES#IN(SELECTS#FROMSWHERESEX='女')ANDC#IN(SELECTC#FROMCWHERETEACHER='WU');
6.
设有如下关系表:
供应者:SUPPLIER(SNO,SNAME,CITY),其中,SNO为供应者编号,SNAME为供应者姓名,CITY为所在城市。
零件:PART(PNO,PNAME,WEIGHT),其中,PNO为零件号,PNAME为零件名称,WEIGHT为重量。
工程:JOB(JNO,JNAME,CITY),其中,JNO为工程号,JNAME为工程名,CITY为所在城市。
联系关系:SPJ(SNO,PNO,JNO,QTY),其中,QTY为数量。
1)查找给工程J1提供零件P1的供应者号SNO。
2)查找在北京的供应者给武汉的工程提供零件的零件号。
3)查找由供应者S1提供的零件名PNAME。
4)查找CITY值为上海的工程号和名称。
5)将工程J3的城市改为广州。
6)将所有重20公斤的零件改为重10公斤。
7)将给工程J1提供零件P1的供应者S1改为S2。
8)将值(S3,麦苗,上海)加到SUPPLIER中。
9)删除所有上海工程的数据。正确答案:1)SELECTSNOFROMSPJ,PART,JOBWHERESPJ.PNO=PART.PNOANDSPJ.JNO=JOB.JNOANDPART.PNAME='P1'ANDJOB.JNAME='J1';
2)SELECTPNOFROMSPJ,PART,JOBWHERESPJ.PNO=PART.PNOANDSPJ.JNO=JOB.JNOANDJOB.CITY='武汉'ANDSUPPLIER.CITY='北京';
3)SELECTPNAMEFROMPARTWHEREPNOIN(SELECTPNOFROMSPJ,SUPPLIERWHERESPJ.SNO=SUPPLIER.SNOANDSUPPLIER.SNAME='S1');
4)SELECTJNO,JNAMEFROMJOBWHERECITY='上海';
5)UPDATEJOBSETCITY='广州'WHEREJNAME='J3';
6)UPDATEPARTSETWEIGHT='10公斤'WHEREWEIGHT='20公斤';
7)UPDATESUPPLIERSETSNAME='S2'WHERESNAME='S1'ANDSNOIN
(SELECTSNOFROMSPJ,JOB,PARTWHERESPJ.JNO=JOB.JNOANDJOB.JNAME='J1'ANDSPJ.PNO=PART.PNOANDPART.PNAME='P1');
8)INSERTINTOSUPPLIERVALUES(;S3','麦苗','上海');
9)DELETEFROMSPJWHEREJNOIN(SELECTJNOFROMJOBWHERECITY='上海');
DELETEFROMJOBWHERECITY='上海';--需要注意的是,上述语句的顺序不能弄反。
学生信息管理系统中有张表STUDENT,其中有字段ID、NAME、SEX、BIRTH,请回答如下问题:7.
找出NAME相同的学生(用一句SQL语句);正确答案:SELECT*FROMSTUDENTWHERENAMEIN(SELECTNAMEFROMSTLIDENTGROUP
BYNAMEHAVINGCOUNT(NAME)>1);[考点]SQL部分
8.
用一句SQL语句把学生SEX为男的改为女,女的改为男。正确答案:UPDATESTUDENTSETSEX=CASESEXWHEN'男'THEN'女'ELSE'男'END;
9.
假设有表数据:TABLE
所要结果:
请写出获得此结果的SQL语句。正确答案:本题考查的是聚合函数和子查询,先按照ID列进行分组找出NUM最大的值,然后回表查询即可得最终结果,最终SQL语句如下:
SELECT*FROMTABLEWHERENUMIN(SELECTMAX(NUM)FROMTABLEGROUPBYID);[考点]SQL部分
10.
SQLServer如何启动?正确答案:在Windows服务控制台里手动启动,这个也是最常用的方式。键入“Win+R”键打开运行窗口,然后输入services.msc打开服务窗口。另外,通过Windows命令窗口,可以使用“netstartmssqlserver”命令手动启动SQLServer数据库。
11.
SQLServer有Linux版本吗?正确答案:有。微软在2016年推出了Linux系统的SQLServer预览版,并于2017年全面发布这款产品。微软发言人表示,预览版已经支持Ubuntu,该公司今后还将支持红帽企业版Linux和其他平台。
12.
SQLServer、Access、Oracle三种数据库之间的区别是什么?正确答案:Access是一种桌面数据库,只适合于数据量少的应用系统,在处理少量数据和单机访问的数据时是很好的,效率也很高。但是Access数据库有一定的极限,如果数据达到100MB左右,那么很容易造成Access假死,或者消耗掉服务器的内存导致服务器崩溃。
SQLServer是基于服务器端的中型数据库,适合大容量数据的应用,在处理海量数据的效率、后台开发的灵活性、可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以,如果是标准SQL语言,那么两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程、函数等。
Oracle是基于服务器的大型数据库,主要应用于银行、证券类业务等。[考点]维护操作
13.
SQLServer的两种存储结构是什么?正确答案:SQLServer的两种存储结构是页与区间。
1)页:用于数据存储的连续的磁盘空间块,SQLServer中数据存储的基本单位是页,磁盘I/O操作在页级执行,页的大小为8KB,每页的开头是96字节的页头,用于存储有关页的系统信息,包括页码、页类型、页的可用空间以及拥有该页的对象的分配单元ID。
2)区间:区是管理空间的基本单位,一个区是8个物理上连续的页(即64KB)的集合,所有页都存储在区中。SQLServer有两种类型的区:统一区和混合区。
①统一区:由单个对象所有,区中的所有8页只能由一个对象使用。
②混合区:最多可由8个对象共享。区中8页中的每页可以由不同对象所有,但是一页总是只能属于一个对象。[考点]维护操作
14.
在SQLServer中,请用SQL创建一张本地临时表和全局临时表,里面包含两个字段ID和IDVALUES,类型都是INT型,并解释两者的区别?正确答案:在SOLServer中,临时表有两种类型:本地临时表和全局临时表。临时表与永久表相似,但临时表存储在Tempdb中,当不再使用时会自动删除。本地临时表只对创建这个表的用户的SESSION可见,对其他进程是不可见的。当创建它的进程消失时,这个临时表就自动删除。本地临时表的名称以单个数字符号(#)打头。全局临时表对整个SQLServer实例都可见,但是所有访问它的SESSION都消失的时候,它也自动删除。全局临时表的名称以两个数字符号(##)打头。它们的创建语句如下:
本地临时表:CREATETABLE#XX(IDINT,IDVALUESINT);
全局临时表:CREATETABLE##XX(IDINT,IDVALUESINT);[考点]维护操作
15.
SQLserver物理有哪几种类型的文件?正确答案:SOLServer数据库文件组成如下:
1)主数据文件:默认扩展名为.mdf。
2)辅助数据文件:默认扩展名为.ndf(一个数据库可以创建多个.ndf文件)。
3)事务日志文件:默认扩展名为.1df(记录对数据库的所有操作,但不包含所操作的数据)。
所有的数据文件和日志文件默认位置在C:/ProgramFiles/MicrosoftSQLServer/MSSQL.n/MSSQL/Data(其中,n是标识已安装的SQLServer实例名称一实例名)。需要注意的是,应当将所有的数据和对象存储在.ndf文件中,而.mdf文件只负责存储数据目录,这样可以有效地避免访问时的磁盘争用。
物理文件组成也可以参考下图。
[考点]维护操作
16.
SQLServer中的锁分为哪几种?正确答案:SQLServer中的锁分为以下几种:名称简介何时使用读写共享锁(ShareLock,S锁,读锁)S锁是可以查看但无法修改和删除的一种数据锁。若事务T对数据对象A加上S锁,则事务T只能读A;其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改当执行SELECT时,数据库会自动使用S锁YN排它锁(eXclusiveLock,X锁,独占锁,写锁,互斥锁)如果事务T对数据A加上X锁后,则其他事务不能再对A加任何类型的锁。获得X锁的事务既能读数据,又能修改数据执行INSERT、UPDATE、DELETE时数据库会自动使用X锁YY更新锁(UpdateLock,U锁)U锁意味着事务即将要使用X锁,它目前正在扫描数据,以确定要使用X锁锁定的那些行。它用于可更新的资源中,防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。使用U锁可以提高处理并发查询的吞吐量读阶段操作阶段更新阶段YYNNNN意向锁(IntentLock,I锁)I锁是一种用于警示的锁,用于建立锁的层次结构。I锁包含三种类型:意向共享(IS)、意向排它(IX)和意向排它共享(SIX)锁的标记
架构锁(SchemaLock,Sch锁,模式锁)Sch锁分为架构修改(SchemaModify,Sch-M)锁和架构稳定性(SchemaStability,Sch-S)锁。拥有Sch-M锁期间,Sch-M锁将阻止对表进行并发访问。这意味着Sch—M锁在释放前将阻止所有外围操作。某些DML操作使用sch-M锁阻止并发操作访问受影响的表。Sch-S锁不会阻止某些事务锁,其中包括X锁。因此,在编译查询的过程中,其他事务(包括那些针对表使用X锁的事务)将继续运行。但是,无法针对表执行获取Sch-M锁的并发DDL操作和并发DML操作当修改表结构时使用,即数据库引擎在执行DDL操作(例如,添加列或删除表)的过程中使用Sch-M锁。当数据库引擎在编译和执行查询时使用Sch-S锁NN大容量更新锁(BulkUpdateLock,BU锁)数据库引擎在将数据大规模复制到表中时,指定TABLOCK提示或使用sp_tableoption选项(将数据表设置为tablelockonbulkload),则是使用BU锁。BU锁允许多个线程将数据并发地大容量加载到同一表,以降低数据表的锁定竞争,同时防止其他不进行大容量加载数据的进程访问该表在向表进行大容量数据复制且指定了TABLOCK提示时使用NN
在以上表格中需要注意的是,同一资源可以加多个S锁,但是只能加一个X锁。[考点]锁
17.
SQLServet如何查询阻塞?正确答案:SQLServer的阻塞查询主要来自sys.sysprocesses。通常在处理时需要加入其他相关的视图或表,例如sys.dm_exec_connections,sys.dm_exec_sql_tex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海空调清洗维保合同范本
- 个人旧车买卖合同范本
- 出口cip贸易合同范本
- 亮化耗材采购合同范本
- 半成品供货合同范本
- 农村环卫劳务合同范本
- 化妆品oem合同范本
- 仓库分拣合同范本
- 修路收费合同范本
- 主管绩效合同范本
- 《汽车电子技术》专业人才培养方案
- 冷库热氟融霜操作
- 中国重症加强治疗病房(ICU)建设与管理指南
- 考生个人简历及自述表
- 风电机组偏航误差产生机理及调整策略研究
- 《老年服务伦理与礼仪》课程标准
- 2023年苏州市职业大学单招职业适应性测试题库及答案解析
- 解析华为管理干部任职资格管理制度
- 2023年苏州卫生职业技术学院高职单招(语文)试题库含答案解析
- GB/T 18684-2002锌铬涂层技术条件
- 银行贷款公司简介范文推荐9篇
评论
0/150
提交评论