数据库面试题(SQLSERVER)及答案

数据库面试题(SQLSERVER)及答案
数据库面试题(SQLSERVER)及答案

数据库面试题(SQL2005)

一、选择题(5分一题,共50分)

1、公司A使用SQL Server 2005数据库。来自贸易伙伴的客户数据每天晚上都要导入到客户表。你要确保,在导入的过程中,对于存在的客户数据进行更新、对于不存在的客户数据进行插入。你该怎么做?(B)

A. 创建一个FOR触发器。

B. 创建一个INSTEAD OF 触发器。

C. 创建一个 AFTER 触发器。

D. 创建一个 DDL 触发器。

2、你负责维护你们部门SQL Server 2005数据库的调度作业。其中一个作业从多源为报表聚集数据。这个作业每日运行,由多步构成。每一步都为某一特定报表聚集数据。有用户反映一些报表的数据近期没有更新。你要确保即使发生错误,聚合数据作业的每一步也都要执行。那你该如何做?(C)

A. 将作业中所有步骤组合成一个每日运行的步骤。

B. 创建一个通知;在每次出现错误时通知你。以便你能及时更正错误,重启作业。

C. 修改失败使要执行的步骤为“转到下一步”。

D. 设置作业重试当前步骤。

3、你要创建一个SQL Server 2005应用程序来存储和管理法律文件。原文件以XML文档存于一文件服务器上。此应用程序用于将文件插入到数据库。此后,这些文档必须能够从数据库中得到,并与原文件保持一致。你要设计一个表去存储这些文档数据,该怎样做?(A)

A. 将XML文档存于以nvarchar(max)为数据类型的一列中。

B. 分割此XML文档并将其存储于在一个关系结构中。

C. 将XML文档存于以XML为数据类型的一列中。

D. 将XML文档存于以varchar(8000)为数据类型的一列中。

4、你正在写一个查询,从SQL Server 2005数据库表中返回数据。一些数据存储在关系列中,一些存储在XML数据类型列中。你的查询需要返回一个关系结果集,其中包含关系域中的数据以及XML数据类型列的属性值。你应该使用XML数据类型的哪两个方法?(每一个正确的答案代表方案的一部分。选两项。)(AD)

A. the value() 方法。

B. the exist()方法。

C. the query()方法。

D. the nodes()方法。

E. the modify()方法。

5、你配置一个采用默认设置全新安装的SQL SERVER 2005计算机使用TCP/IP协议。公司的安全策略也要求每个服务器都使用防火墙。你发现在本地计算机上可以连接到这个SQL SERVER 实例,但是客户端计算机却不能连接到这个SQL SERVER 实例上。为了找到最有可能导致这个连接问题的原因,你首先应该做?(A)

A. 检查防火墙是否打开了1433端口。

B. 检查防火墙是否打开了433端口。

C. 检查客户端计算机是否用Shared Memory 协议进行连接。

D. 检查服务器是否正在运行中。

6、假设你负责实现和维护SQL SERVER 2005 数据库服务器中的作业(jobs)。其中,一些作业在每周日运行,一些作业在每月的开始运行。现在你需要以一种使用最少管理成本的方法去安排这些作业,你应该如何做?(A)

A. 创建一个每周日运行的作业计划,并且指派需要周日运行的任务给这个计划。然后创建另一个每月第一天运行的作业计划,并且指派每月开始运行的任务给这个作业计划。

B. 为每个任务创建一个每天运行一次的作业。然后使用SQL 语句去检查当前的日期。如果是星期日或每月的第一天则执行相应的代码。

C. 创建一个每天运行的作业计划.指派作业任务给这个作业计划.如果这天是星期日或每月的第一天则执行作业。

D. 为每个任务创建一个在每周日运行一次的作业;增加另一个在每月第一天运行作业的作业计划。

7、你是公司A在北京总部SQL SERVER 2005数据库的管理员.销售部门需要一个包含了上个季度北京总部和天津分公司客户活动信息对比的报表,并且数据需要按照surname 和first name进行排序.恰好,在你的服务器上有一个天津分部数据库最近的备份,为此,你可以通过写一个查询来实现这个报表,并且对数据按照Surname 和FirstName列进行排序。可是你发现天津分部客户数据是按照不同的方式进行排序的;销售部门需要在15分钟内进行数据展示。为此,你需要以最快的解决方案得到已排序的数据并确保来源于两个数据库数据排序方式是一致的。你应该如何做?(D)

A. 使用复制数据库向导把天津分部的数据复制到一个新的数据库中,并且在复制过程中指定和北京总部数据同样的排序规则。

B. 使用数据导入导出向导导出天津分部的数据到一个新的表中,并且在导出过程中指定和北京总部数据同样的排序规则。

C. 修改数据格式文件使其和北京总部数据采用同样的排序规则,然后在导入数据。

D. 修改查询天津分部数据的SQL语句,使其在ORDER BY子句中使用COLLATE 子句并指定和北京总部数据同样的排序规则。

8、你正在SQL SERVER 2005 数据库中创建一个从联系人表删除联系人数据的存储过程。在存储过程中包含如下的语句来处理可能发生的任何错误。

BEGIN TRY

BEGIN TRANSACTION

DELETE FROM Person.Contact WHERE ContactID = @ContactID

COMMIT TRANSACTION

END TRY

BEGIN CATCH

DECLARE @ErrorMessage nvarchar(2000)

DECLARE @ErrorSeverity int

DECLARE @ErrorState int

SELECT @ErrorMessage =ERROR_MESSAGE(),@ErrorSeverity = RROR_SEVERITY(), @ErrorState = ERROR_STATE() RAISERROR

(@ErrorMessage,@ErrorSeverity, @ErrorState)

END CATCH;

在你执行存储过程后发现,事务任然保持打开状态。为了正确的处理打开的事务,你应该如何修改你的存储过程?(C)

A. 在CATCH语句块增加 COMMIT TRANSACTION 命令。

B. 在TRY语句块移除COMMIT TRANSACTION 命令。

C. 在CATCH块增加 ROLLBACK TRANSACTION命令。

D. 在TRY块增加ROLLBACK TRANSACTION 命令。

9、公司一个新的员工需要访问名为SQL1服务器上的SQL SERVER 2005 数据库.你用CREATE LOGIN ajones WITH PASSWORD = 'SQLServer$1'为其创建了登录名ajones。新员工报告说:当他在使用ajones登录的时候,收到如下的错误“用户‘ajones’登录失败。该用户与可信的SQL SERVER 连接无关联”。你需要解决这个问题并允许这个员工去登录SQL1。你应该怎么做?(A)

A.改变SQL SERVER 安全身份验证模式为“SQL SERVER 和 Windows 身份验证模式”。

B.改变SQL SERVER 安全身份验证模式为“Windows 身份验证模式”。

C. 保证创建的登录名是带方括号([])的。(例如:[loginname])

D. 通过用CREATE USER 语句给新创建的登录访问指定数据库的权限。

10、你正在SQL SERVER 2005 服务器上一个名为DB1的数据库上进行着工作。你发现由于对DB1中Table1表的扫描导致了查询执行缓慢。已知,Table是一个使用频繁而且非常巨大的表,同时你又确定了查询中包含如下的语句:SELECT col1,col2 FROM table1 WHERE col3 = 。在表保持对所有用户有效的情况下,为了最大化的提高查询性能,你应该怎么做?(E)

A. 更新DB1数据库中表Table1的所有统计信息。

B. 在DB1数据库中,使用CREATE STATISTICS 语句为表Table1的列col3创建缺少的统计信息。

C. 设置优先值提升选项的值为1。

D. 执行如下语句:USE DB1 GO CREATE INDEX index1 ON table1(col3)

INCLUDE(col1, col2) WITH (ONLINE = ON) GO

E. 执行如下语句 USE DB1GOCREATE INDEX index1 ON table1(col3, col2,col1)

二、问答题(1、2题10分/题;3题30分,共50分)

1、用一条SQL语句查询出每门课都大于80分的学生姓名(表名为Table1)

name kecheng fenshu

张三语文 81

张三数学 75

李四语文 76

李四数学 90

王五语文 81

王五数学 100

王五英语 90

答案:

select distinct name from table1 where name not in (select distinct name from table1 where fenshu<=80)

2、XML查询,有如下XML信息

DECLARE @doc xml

SET @doc ='

2222

3333

'

请用一句语句得到以下结果:

SELECT nCol.value('../../@OrderId','int') OrderId,

nCol.value('../../@OrderDate','DateTime') OrderDate,

nCol.value('../../ot[1]','nvarchar(10)') ot,

nCol.value('@ProductID','nvarchar(10)') ProductId

from @doc.nodes('/ORDERS/Order/Products/Product')as T(nCol)

3、有一个[学生课程]数据库,数据库中包括三个表:

学生表:Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为:Student(Sno,Sname,Ssex,Sage,Sdept),Sno 为关键字。

课程表:Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。

成绩表:SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为:SG(Sno,Cno,Grade) (SNO, CNO) 为关键字。

用SQL语言实现下列功能:

1)建立学生表[Student],其中学号属性不能为空,并且其值是唯一的。

2)查考试成绩有不及格的学生的学号。

3)将学号为05001学生的年龄改为22岁。

答案:

1)create table student

(Sno char(5) primary key,

Sname char(20),

Ssex char(2),

Sage int,

Sdept char(15)

)

2)select distinct sno

from sg

where grade < 60

3)update student

set sage=22

where sno='05001'

数据库面试题及答案

数据库面试题 1 1. 在一个查询中,使用哪一个关键字能够除去重复列值? 答案:使用distinct关键字 2. 什么是快照?它的作用是什么? 答案:快照Snapshot是一个文件系统在特定时间里的镜像,对于在线实时数据备份非常有用。快照对于拥有不能停止的应用或具有常打开文件的文件系统的备份非常重要。对于只能提供一个非常短的备份时间而言,快照能保证系统的完整性。 3. 解释存储过程和触发器 答案: 存储过程是一组Transact-SQL语句,在一次编译后可以执行多次。因为不必重新编译Transact-SQL语句,所以执行存储过程可以提高性能。 触发器是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。 4. SQL Server是否支持行级锁,有什么好处? 答案:支持动态行级锁定 SQL Server 2000动态地将查询所引用的每一个表的锁定粒度调整到合适的级别。当查询所引用的少数几行分散在一个大型表中时,优化数据并行访问的最佳办法是使用粒度锁,如行锁。但是,如果查询引用的是一个表中的大多数行或所有行,优化数据并行访问的最佳办法可以是锁定整个表,以尽量减少锁定开销并尽快完成查询。 SQL Serve 2000通过为每个查询中的每个表选择适当的锁定级别,在总体上优化了数据并发访问。对于一个查询,如果只引用一个大型表中的几行,则数据库引擎可以使用行级锁定;如果引用一个大型表的几页中的多行,则使用页级锁定;如果引用一个小型表中的所有行,则使用表级锁定。 5. 数据库日志干什么用,数据库日志满的时候再查询数据库时会出现什么情况。答案:每个数据库都有事务日志,用以记录所有事务和每个事务对数据库所做的修改。 6. 存储过程和函数的区别? 答案:存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表 7. 事务是什么? 答案:事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务: (1) 原子性 事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

数据库笔试题 - 答案

XXXX感谢您对本套试题的回答,首先请您填写上您的姓名(____________),本套试题将作为XXXX入职的参考,多谢您的重视。本套试题分三部分:填空题(10分)、选择题(20分),SQL 基础题(30)、简答题(20)、综合题(30)。时间60分钟,满分110分。 一、填空题(每题2分,共10分) 1. 索引字段值不唯一,应该使用的索引类型为( 普通索引 ) 2. 只有满足联接条件的记录才包含在查询结果中,这种联接为( 内联接) 3. E-R模型的组成包括那些元素( 实体 )( 属性)( 关系) 4. 事务所具有的特性有( 原子性)( 一致性)( 隔离性)( 持久性) 5、结构化程序设计的三种基本逻辑结构是(顺序结构),(选择结构),(循环结构)。 二、选择提(每题1分,共20分) 1、在删除整表数据,同时保留表结构时,采用( C )的效率比( A )要高; A. delete B. drop table C. truncate Table 2、数据库管理系统中,能实现对数据库中的数据进行插入/修改/删除的功能称为(C); A.数据定义功能 B.数据管理功能 C.数据操作功能 D.数据控制功能 3、2 4、在关系模型中,实现"关系中不允许出现相同的元组"的约束是通过(B)。 A:候选键B:主键C:外键D:超键 4、数据库管理系统DBMS S是( D); A.信息管理的应用软件 B.数据库系统+应用程序 C.管理中的数据库 D.管理数据的软件 5、关系数据库中,实现表与表之间的联系是通过(B)。 A、实体完整性规 B、参照完整性规则 C、用户自定义的完整性 D、值域 6、设有部门和职员两个实体,每个职员只能属于一个部门,一个部门可以有多名职员,则部门与职员实体之间的联系类型(B)。 A、m:n B、1:m C、m:1 D、1:1 7、设有课程和学生两个实体,每个学生可以选修多个课程,一个课程可以有多名学生选修,则课程与学生实体之间的联系类型( A )。 A、m:n B、1:m C、m:1 D、1:1 8、如果一个班只能有一个班长,而且一个班长不能同时担任其它班的班长,班级和班长两个实体之间的关系属于(D)。 A、m:n B、1:m C、m:1 D、1:1 9、索引字段值不唯一,应该选择的索引类型为( B )。 A:主索引 B:普通索引C:候选索引D:唯一索引 10、如果指定参照完整性的删除规则为"级联",则当删除父表中的记录时( C )。 A:系统自动备份父表中被删除记录到一个新表中 B:若子表中有相关记录,则禁止删除父表中记录 C:会自动删除子表中所有相关记录

数据库面试题数据库的面试题及答案

数据库面试题:数据库的面试题及答案 疯狂代码 https://www.360docs.net/doc/9b18635237.html,/ ?:http:/https://www.360docs.net/doc/9b18635237.html,/DataBase/Article25003.html . 数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义? 答:触发dbwr的执行,dbwr会把和这个日志相关的所有脏队列写到数据文件里,缩短实例恢复所需要的时间。 2. 表空间管理方式有哪几种,各有什么优劣。 答:字典管理方式和本地管理方式,本地管理方式采用位图管理extent,减少字典之间的竞争,同时避免了碎片。 本地管理表空间与字典管理表空间相比,其优点如下: 1).减少了递归空间管理; 2).系统自动管理extents大小或采用统一extents大小; 3).减少了数据字典之间的竞争; 4).不产生回退信息; 5).不需合并相邻的剩余空间; 6).减少了空间碎片; 7).对临时表空间提供了更好的管理。 3. 本地索引与全局索引的差别与适用情况。 答:对于local索引,每一个表分区对应一个索引分区,当表的分区发生变化时,索引的维护由Oracle自动进行。对于global索引,可以选择是否分区,而且索引的分区可以不与表分区相对应。当对分区进行维护操作时 ,通常会导致全局索引的INVALDED,必须在执行完操作后REBUILD。Oracle9i提供了UPDATE GLOBAL INDEXES语句,可以使在进行分区维护的同时重建全局索引。 4. 一个表a varchar2(1),b number(1),c char(2),有100000条记录,创建B-Tree索引在字段a上,那么表与索引谁大?为什么? 答:这个要考虑到rowid所占的字节数,假设char总是占用2字节的情况,比较rowid,另外,table和index在segment free block的管理也有差别。 5. Oracle9i的data guard有几种模式,各有什么差别。 答:三种模式: 最大性能(maximize performance):这是data guard默认的保护模式。primay上的事务commit前不需要从standby上收到反馈信息。该模式在primary故障时可能丢失数据,但standby对primary的性能影响最小。 最大可用(maximize availability):在正常情况下,最大可用模式和最大保护模式一样;在standby不可用时 ,最大可用模式自动最大性能模式,所以standby故障不会导致primay不可用。只要至少有一个standby可用的情况下,即使primarydown机,也能保证不丢失数据。 最大保护(maximize protection):最高级别的保护模式。primay上的事务在commit前必须确认redo已经传递到至少一个standby上,如果所有standby不可用,则primary会挂起。该模式能保证零数据丢失。 6. 执行计划是什么,查看执行计划一般有哪几种方式。 答:执行计划是数据库内部的执行步骤: set autotrace on select * from table

数据库笔试题及标准答案,常见数据库面试题

数据库笔试卷及答案 第一套 一.选择题 1. 下面叙述正确的是______。 A、算法的执行效率与数据的存储结构无关 B、算法的空间复杂度是指算法程序中指令(或语句)的条数 C、算法的有穷性是指算法必须能在执行有限个步骤之后终止 D、以上三种描述都不对 2. 以下数据结构中不属于线性数据结构的是______。A、队列B、线性表C、二叉树D、栈 3. 在一棵二叉树上第5层的结点数最多是______。A、8 B、16 C、32 D、15 4. 下面描述中,符合结构化程序设计风格的是______。 A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B、模块只有一个入口,可以有多个出口 C、注重提高程序的执行效率 D、不使用goto语句 5. 下面概念中,不属于面向对象方法的是______。 A、对象 B、继承 C、类 D、过程调用 6. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。 A、可行性分析 B、需求分析 C、详细设计 D、程序编码 7. 在软件开发中,下面任务不属于设计阶段的是______。 A、数据结构设计 B、给出系统模块结构 C、定义模块算法 D、定义需求并建立系统模型 8. 数据库系统的核心是______。 A、数据模型 B、数据库管理系统 C、软件工具 D、数据库 9. 下列叙述中正确的是______。 A、数据库是一个独立的系统,不需要操作系统的支持 B、数据库设计是指设计数据库管理系统 C、数据库技术的根本目标是要解决数据共享的问题 D、数据库系统中,数据的物理结构必须与逻辑结构一致 10. 下列模式中,能够给出数据库物理存储结构与物理存取方法的是______。 A、内模式 B、外模式 C、概念模式 D、逻辑模式 11. Visual FoxPro数据库文件是______。 A、存放用户数据的文件 B、管理数据库对象的系统文件 C、存放用户数据和系统的文件 D、前三种说法都对 12. SQL语句中修改表结构的命令是______。 A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE 13. 如果要创建一个数据组分组报表,第一个分组表达式是"部门",第二个分组表达式是"性别",第三个分组表达式是"基本工资",当前索引的索引表达式应当是______。 A、部门+性别+基本工资 B、部门+性别+STR(基本工资) C、STR(基本工资)+性别+部门 D、性别+部门+STR(基本工资) 14. 把一个工程编译成一个应用程序时,下面的叙述正确的是______。 A、所有的工程文件将组合为一个单一的应用程序文件 B、所有工程的包含文件将组合为一个单一的应用程序文件

SQL数据库面试题以和答案

Student(S#,Sname,Sage,Ssex)学生表 S#:学号 Sname:学生姓名 Sage:学生年龄 Ssex:学生性别 Course(C#,Cname,T#)课程表 C#:课程编号 Cname:课程名称 T#:教师编号 SC(S#,C#,score)成绩表 S#:学号 C#:课程编号 score:成绩 Teacher(T#,Tname)教师表 T#:教师编号: Tname:教师名字 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号 select a.S# from (select S#,score from SC where C#='001')a, (select s#,score from SC wh ere c#='002')b Where a.score>b.score and a.s# = b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩 select S#, avg(score) from sc group by S# having avg(score)>60 3、查询所有同学的学号、姓名、选课数、总成绩 select student.S#, student.Sname, count(sc.C#), sum(score) from student left outer join SC on student.S# = SC.S# group by Student.S#, Sname

4、查询姓‘李’的老师的个数: select count(distinct(Tname)) from teacher where tname like '李%'; 5、查询没有学过“叶平”老师可的同学的学号、姓名: select student.S#, student.Sname from Student where S# not in (select distinct(SC.S#) from SC,Course,Teacher where sc.c#=course.c# AND teacher.T#=course.T# AND Teahcer.Tname ='叶平'); 6、查询学过“叶平”老师所教的所有课的同学的学号、姓名:select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 7、查询学过“011”并且也学过编号“002”课程的同学的学号、姓名: select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名: Select S#,Sname

SQL数据库经典面试题(修改笔试题)(有答案)

28、?数据库:抽出部门,平均工资,要求按部门得字符串顺序排序,不能含有"human resource"部门,employee结构如下: employee_id,employee_name,depart_id,depart_name,wage 答:?select depart_name, avg(wage) fromemployee where depart_name〈〉'humanresource'?group by depart_nameorder by depart_name ---—--——----—-——----—--——-—---———----—————-—- 29、 —-—--—---—-—--————-——--——--——? 给定如下SQL数据库:Test(num INT(4))请用一条SQL语句返回num得最小值,但不许使用统计功能,如MIN,MAX等 答: select top1 num from Test orderbynum ----—-----——-—----———----—---—----—-—-—-———-—- 33、一个数据库中有两个表:——----—-—----—--—--——--—----? 一张表为Customer,含字段ID,Name; 一张表为Order,含字段ID,CustomerID(连向Customer中ID得外键),Re venue;?写出求每个Customer得Revenue总与得SQL语句。 建表create table customer?(ID int primary key,Namechar (10)) go create table [order]?(ID int primary key,CustomerID int foreign key references customer(id),Revenue float) go --查询?select Customer、ID, sum(isnull([Order]、Revenue,0))?from customer full join [order]on([order]、custome rid=customer、id) groupby customer、id selectcustomer、id,sum(order、revener) fromorder,customer where customer、id=customerid group by customer、id select customer、id,sum(order、revener)from customer fulljoin order on(order、customerid=customer、id)group bycustomer、id 5数据库(10) a tabel called “performance”contain :name andscore,please用SQL语言表述

常见SQL数据库面试题和答案(一)

常见SQL数据库面试题和答案(一) Student(S#,Sname,Sage,Ssex) 学生表S#:学号;Sname:学生姓名;Sage:学生年龄;Ssex:学生性别 Course(C#,Cname,T#) 课程表C#,课程编号;Cname:课程名字;T#:教师编号 SC(S#,C#,score) 成绩表S#:学号;C#,课程编号;score:成绩 Teacher(T#,Tname) 教师表T#:教师编号;Tname:教师名字 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select # from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where > and #=#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select #,,count#),sum(score) from Student left Outer join SC on #=# group by #,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select #, from Student where S# not in (select distinct( #) from SC,Course,Teacher where #=# and #=# and ='叶平'); 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; select #, from Student,SC where #=# and #='001'and exists( Select * from SC as SC_2 where #=# and #='002'); 7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where #=# and #=# and ='叶平' group by S# having count#)=(select count(C#) from Course,Teacher where #=# and Tname='叶平')); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;Select S#,Sname from (select #,,score ,(select score from SC SC_2 where #=# and #='002') score2

sql经典笔试题目(整理)

一单词解释(2分/个) 34 Data 数据 Database 数据库 RDBMS 关系数据库管理系统 GRANT 授权 REVOKE取消权限 DENY 拒绝权限 DECLARE 定义变量 PROCEDURE存储过程 Transaction事务 TRIGGER触发器继续 continue 唯一 unqiue 主键 primary key 标识列 identity 外键 foreign kdy 检查 check 约束 constraint 二编写SQL语句(5分/题)50 1) 创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话Create table stu (学号 int , 姓名 varchar(8), 年龄 int, 性别 varchar(4), 家庭地址 varchar(50), 联系电话 int ); 2) 修改学生表的结构,添加一列信息, 学历 Alter table stu add 学历 varchar(6); 3) 修改学生表的结构,删除一列信息,家庭住址 Alter table stu drop column 家庭地址 4) 向学生表添加如下信息: 学号姓名年龄性别联系电话学历 1 A 22 男 123456 小学 2 B 21 男 119 中学 3 C 23 男 110 高中 4 D 18 女 114 大学 Insert into stu values('1', 'A', '22', '男' , ' 123456', '小学') Insert into stu values('2', 'B', '21', '男', '119' , '中学') Insert into stu values('3', 'C', '23', '男', '110', '高中') Insert into stu values('4' , 'D', '18', '女', '114', '大学') 5) 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专” Update stu set 学历=’大专’ where 联系电话 like ‘11%’ 6) 删除学生表的数据,姓名以C开头,性别为‘男’的记录删除 Delect from stu where 性别=’男’ and 姓名 like ‘c%’ 7) 查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来 Select 姓名,学号 from stu where 年龄<22 and 学历=’大专’ 8) 查询学生表的数据,查询所有信息,列出前25%的记录 Select top 25 percent * from stu 9) 查询出所有学生的姓名,性别,年龄降序排列

数据库面试题

1.1.数据库 1.1.1.数据库 员工表的定义如下: Last_name VARCHAR2(25) First_name VARCHAR2(25) Salary NUMBER(7,2) 现查询显示未达到平均工资的员工姓名.请考察下面的SQL语句: SELECT last_name, first_name FROM employee WHERE salary < avg(salary); 对这条SQL做以下哪项修改能够达到目的? A.改变WHERE子句 B.把聚合函数移到SELECT列表中,并增加GROUP子句 C.通过子查询得出平均工资水平并在父查询的WHERE子句中比较 D.把聚合函数移到SELECT列表中,并增加GROUP BY子句和HAVING子句 注:SELECT last_name, first_name FROM employee where sal<(Select avg(salary) from employee); 1.1. 2.数据库 要从员工表中查询所有姓Smith的人,但是并不能确定所有Smith的大小写,以下哪条语句能解决问题? A.SELECT last_name, first_name FROM emp WHERE last_name=’smith’ B.SELECT last_name, first_name FROM emp WHERE UPPER(last_name)=’smith’ C.SELECT last_name, first_name FROM emp WHERE last_name=UPPER(‘smith’) D.SELECT last_name, first_name FROM emp WHERE LOWER(last_name)=’smith’ 1.1.3.delete from tablea & truncate table tablea的区别( ) A.没有区别 B.速度相同 C.速度不同 D.日志记录不同 1.1.4.下列哪些(或哪个)不是PL/SQL的组成部分() A.DECLARE B.CATCH C.THROW D.EXCEPTION 1.1.5.SQL语句中修改表结构的命令是______。 A.MODIFY TABLE

SQL数据库面试题目及其答案

1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。 它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2.什么是存储过程?用什么来调用? 答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。 3.索引的作用?和它的优点缺点是什么? 答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。 缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。 3。什么是内存泄漏? 答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new 等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。 4.维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么? 答:我是这样做的,尽可能使用约束,如check,主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。 5.什么是事务?什么是锁? 答:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。 要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。 锁:在所以的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。

面试真题及答案SQL面试题目汇总

面试真题 面试范本SQL面试题目汇总 1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2.什么是存储过程?用什么来调用? 答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。 3.索引的作用?和它的优点缺点是什么? 答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。 4.什么是内存泄漏? 答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。 5.维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么? 答:我是这样做的,尽可能使用约束,如check,主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。

Oracle数据库DBA面试题及答案_经典

1.OracleDBA面试题之一解释冷备份和热备份的不同点以及各自的优点 解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。 冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘) 2. 你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢? 解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。 3. 如何转换init.ora到spfile? 解答:使用create spfile from pfile 命令 4. OracleDBA面试题:解释data block , extent 和 segment的区别(这里建议用英文术语) 解答:data block是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的data block就组成了extent . 一个数据库对象拥有的所有extents 被称为该对象的segment. 5. 给出两个检查表结构的方法 解答:1、DESCRIBE命令 2、DBMS_METADATA.GET_DDL 包 6. 怎样查看数据库引擎的报错 解答:alert log. 7. 比较truncate和delete 命令 解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .而Delete是DML操作需要rollback segment 且花费较长时间. 8. 使用索引的理由 解答:快速访问表中的data block 9. 给出在STAR SCHEMA中的两种表及它们分别含有的数据 解答:Fact tables 和dimension tables. fact table 包含大量的主要的信息而dimension tables 存放对fact table 某些属性描述的信息

SQL经典面试题及答案

SQL经典面试题及答案 1.一道SQL语句面试题,关于group by 表内容: 2005-05-09胜 2005-05-09胜 2005-05-09负 2005-05-09负 2005-05-10胜 2005-05-10负 2005-05-10负 如果要生成下列结果,该如何写sql语句? 胜负 2005-05-0922 2005-05-1012 ------------------------------------------ create table#tmp(rq varchar(10),shengfu nchar(1)) insert into#tmp values('2005-05-09','胜') insert into#tmp values('2005-05-09','胜') insert into#tmp values('2005-05-09','负') insert into#tmp values('2005-05-09','负') insert into#tmp values('2005-05-10','胜') insert into#tmp values('2005-05-10','负') insert into#tmp values('2005-05-10','负') 1)select rq,sum(case when shengfu='胜'then1else0end)'胜',sum(case when shengfu='负'then1else0end)'负'from#tmp group by rq 2)select N.rq,N.勝,M.負from( select rq,勝=count(*)from#tmp where shengfu='胜'group by rq)N inner join (select rq,負=count(*)from#tmp where shengfu='负'group by rq)M on N.rq=M.rq 3)select a.col001,a.a1胜,b.b1负from (select col001,count(col001)a1from temp1where col002='胜'group by col001)a, (select col001,count(col001)b1from temp1where col002='负'group by col001)b where a.col001=b.col001 2.请教一个面试中遇到的SQL语句的查询问题 表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。 ------------------------------------------ select(case when a>b then a else b end), (case when b>c then b esle c end) from table_name

数据库试题及答案

一、选择题 1.在数据库系统中,把可以相互区别的客观事物称为(D ) A.属性 B. 字段 C.文件 D.实体 2.数据库的存储设备和存取方法变化不影响整体逻辑结构的特点,称为数据库的( D ) A.实体独立性B.物理数据独立性 C.客观独立性 D.逻辑数据独立性 3.学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是( B ) A. 多对多 B. 一对多 C. 多对一 D. 一对一 4.如果关系模式R上有函数依赖AB→C和A→C,则R中存在(B ) A. 完全依赖 B.部分依赖 C. 传递依赖 D.多值依赖 5.关系模型的参照完整性约束是指(C) A.限制引用一个关系中的不同元组数据 B.限制引用不同关系中的元组数据 C.限制一个关系引用与之联系关系中不存在的元组数据 D.限制两个关系间的互相引用 6.在嵌入式SQL中,为了把集合操作转换成单记录处理方式,引进了以下哪个概念( B )

A.宿主语言B.游标 语言语言 7、单个用户使用的数据视图的描述称为(A )。 A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 8.在SQL中,下列涉空值的操作,不正确的(D:AGE=NULL) 9.数据库系统的独立性是指(B) A. 不会因为数据的变化而影响应用程序 B. 不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序 C. 不会因为数据存储策略的变化而影响数据存储结构 D. 不会因为某些数据逻辑结构的变化而影响应用程序 10.设有T1和T2两个事务,若并发操作如下,则下面评价中正确的是(C )。 T1 T2 ①读A=100,B=5 ②读A=100 A=A*2 回写 ③求A+B=105,验证错 A. 该操作不存在问题 B. 该操作丢失修改 C. 该操作不能重复读 D. 该操作读“脏数据”

sql数据库面试题及答案

sql数据库面试题及答案 【篇一:sql数据库经典面试题(笔试题)】 =txt>1.一道sql语句面试题,关于group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 2005-05-10 负 如果要生成下列结果, 该如何写sql语句? 胜负 2005-05-09 2 2 2005-05-10 1 2 ------------------------------------------ create table #tmp(rq varchar(10),shengfu nchar(1)) insert into #tmp values(2005-05-09,胜) insert into #tmp values(2005-05-09,胜) insert into #tmp values(2005-05-09,负) insert into #tmp values(2005-05-09,负) insert into #tmp values(2005-05-10,胜) insert into #tmp values(2005-05-10,负) insert into #tmp values(2005-05-10,负) 1)select rq, sum(case when shengfu=胜 then 1 else 0 end)胜,sum(case when shengfu=负 then 1 else 0 end)负 from #tmp group by rq 2) select n.rq,n.勝,m.負 from ( select rq,勝=count(*) from #tmp where shengfu=胜group by rq)n inner join (select rq,負=count(*) from #tmp where shengfu=负group by rq)m on n.rq=m.rq 3)select a.col001,a.a1 胜,b.b1 负 from (select col001,count(col001) a1 from temp1 where col002=胜group by col001) a,

经典SQL面试题总结

表 Student(S#,Sname,Sage,Ssex) 学生表 CREATE TABLE student ( sid varchar(10) NOT NULL, sName varchar(20) DEFAULT NULL, sAge datetime DEFAULT '1980-10-12 23:12:36', sSex varchar(10) DEFAULT NULL, PRIMARY KEY (sid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Course(C#,Cname,T#) 课程表 CREATE TABLE course ( cid varchar(10) NOT NULL, cName varchar(10) DEFAULT NULL, tid int(20) DEFAULT NULL, PRIMARY KEY (cid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; SC(S#,C#,score) 成绩表 CREATE TABLE sc ( sid varchar(10) DEFAULT NULL, cid varchar(10) DEFAULT NULL, score int(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8; Teacher(T#,Tname) 教师表 CREATE TABLE teacher ( tid int(10) DEFAULT NULL, tName varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 数据:(MySQL) insert into teacher(tid,tName) values (1,'李老师'),(2,'何以琛'),(3,'叶平'); insert into student(sid,sName,sAge,sSex) values ('1001','张三丰','1980-10-12 23:12:36','男'),('1002','张无极','1995-10-12 23:12:36','男'),('1003','李奎','1992-10-12 23:12:36','女'),('1004','李元宝','1980-10-12 23:12:36','女'),('1005','李世明','1981-10-12 23:12:36','男'),('1006','赵六','1986-10-12 23:12:36','男'),('1007','田七','1981-10-12 23:12:36','女'); insert into sc(sid,cid,score) values ('1','001',80),('1','002',60),('1','003',75),('2','001',85),('2','002',70),('3','004',100), ('3','001',90),('3','002',55),('4','002',65),('4','003',60); insert into course(cid,cName,tid) values ('001','企业管理',3),('002','马克思',3),('003','UML',2),('004','数据库',1),('005 ','英语',1); 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩;

相关文档
最新文档