问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁有sql 笔试题,要多的?不要选择填空。

发布网友 发布时间:2022-04-08 05:37

我来回答

4个回答

热心网友 时间:2022-04-08 07:06

javaeye里面转的,十几个问题覆盖多个方面,含答案

目前在职场中很难找到非常合格的数据库开发人员。我的一个同事曾经说过:“SQL开发是一门语言,它很容易学,但是很难掌握。”

在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当您问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。

您能向我简要叙述一下SQL Server 2000中使用的一些数据库对象吗?

您希望听到的*括这样一些对象:表格、视图、用户定义的函数,以及存储过程;如果他们还能够提到像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。

什么是索引?SQL Server 2000里有什么类型的索引?

任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。一些经验不太多的开发人员能够回答这个问题,但是有些地方会说不清楚。

简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。

NULL是什么意思?

NULL(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要觉得意外。

NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。假设您的SQL Server数据库里有ANSI_NULLS,当然在默认情况下会有,对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个 UNKNOWN值进行比较,并在逻辑上希望获得一个答案。您必须使用IS NULL操作符。

什么是主键?什么是外键?

主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。

什么是触发器?SQL Server 2000有什么不同类型的触发器?

让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的。

触发器是一种专用类型的存储过程,它被*到SQL Server 2000的表格或者视图上。在SQL Server 2000里,有INSTEAD-OF和AFTER两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA的INSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。

AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。

您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里?

这个与关系相关的问题有两个可能的答案。第一个答案(而且是您希望听到的答案)是使用外键*。外键*用来维护引用的完整性。它被用来确保表格里的字段只保存有已经在不同的(或者相同的)表格里的另一个字段里定义了的值。这个字段就是候选键(通常是另外一个表格的主键)。

另外一种答案是触发器。触发器可以被用来保证以另外一种方式实现与*相同的作用,但是它非常难设置与维护,而且性能一般都很糟糕。由于这个原因,微软建议开发人员使用外键*而不是触发器来维护引用的完整性。

对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑?

您正在寻找进行与数据操控有关的应聘人员。对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。

您可以用什么来确保表格里的字段只接受特定范围里的值?

这个问题可以用多种方式来回答,但是只有一个答案是“好”答案。您希望听到的回答是Check*,它在数据库表格里被定义,用来*输入该列的值。

触发器也可以被用来*数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check*而不是其他的方式来*域的完整性。

返回参数和OUTPUT参数之间的区别是什么?

如果应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表明他们具有使用存储过程的经验。

返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是INT数据类型。

OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些*的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。

什么是相关子查询?如何使用这些查询?

经验更加丰富的开发人员将能够准确地描述这种类型的查询。

相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。

关于面试过程的思考

这些问题只不过是确定一个SQL Server数据库开发人员是否合格的起点。根据应聘者对上面这些问题的回答情况,我可能会要求他们参加我的TSQL编程考试,这一般是一套根据不同情况进行的10到12个数据库查询。

您需要自己决定将要雇用的开发人员具有什么样的专业技能。然后,需要通过自己的经验、判断以及在面试时对应聘者的感受(来做最终决定)。

您在面试数据库开发人员时一般会问哪些问题呢?让我们一起来讨论一下吧。

Tim Chapman是肯塔基州路易维尔市一家银行的SQL Server数据库管理员,他有超过7年的行业经验。他还通过了微软SQL Server 2000和SQL Server 2005的认证。

热心网友 时间:2022-04-08 08:24

1、对于教学数据库的三个基本表(如下),试用SQL的查询语句表达下列查询:
学生S(S#,SNAME,AGE,SEX)
学习SC(S#,C#,GRADE)
课程C(C#,CNAME,TEACHER)
(1)检索LIU老师所授课的课程号和课程名。
Select c#,cname
From c
Where teacher=’LIU’
(2)检索年龄大于23岁的男学生的学号和姓名。
Select s#,sname
From s
Where AGE>23 and sex=’男’
(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名。
方法一:
Select sname
From s,sc,c
Where s.sex=’女’and s.s#=sc.s# and sc.c#=c.c# and c.teacher=’liu’
方法二:
Select sname
From s
Where s# in (select s#
From sc
Where c# in (select c#
From c
Where teacher=’liu’))
and sex=’女’
(4)检索WANG同学未学的课程的课程号。
方法一:
Select c#
From C
Where c# not in (select c#
From sc,s
Where s.name=’wang’and s.s#=sc.s#)
方法二:
Select c#
From c
Where not exists(select *
From s,sc
Where s.s#=sc.s# and sc.c#=c.c# and sname=’wang’)
(5)检索至少选修两门课程的学生学号。
方法一:
Select distinct a.s#
From sc a,sc b
Where a.s#=B.s# and a.c#<>b.c#
方法二:
Select s#
From sc
Group by s#
Having count(*)>=2
(6)检索全部学生都选修的课程的课程号与课程名。
Select c#.cname
From c
Where not exists
(select *
From s
Where not exists
(select *
From sc
Where s.s#=sc.s# and sc.c#=c.c#))
(7)检索选修课程包含LIU老师所授课的学生学号。
Select distinct s#
From sc s1
Where not exists
(select *
From c where teacher=’liu’ and
Not exists(select * from sc s2
Where s1.s#=s2.s#
And c.c#=s2.c#))
(8)统计有学生选修的课程门数。
Select count(distinct c#)
From sc
(9)求选修C4课程的学生的平均年龄。
Select AVG(age)
From s,sc
Where s.s#=sc.s# and c#=’c4’
(10)求LIU老师所授课程的每门课程的学生平均成绩。
Select c#,avg(grade)
From sc
Where c# in (select c#
From C
Where teacher=’liu’)
Group by c#

(11)统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,
Select c#,count(s#)
From sc
Group by c#
Having count(s#)>10

2、更新语句
Insert、update、delete
试用SQL更新语句对教学数据库中三个基本表S、SC、C进行更新操作。(参看作业3)
(1)在基本表S中插入一个学生元组(‘S9’,‘WU’,18)。
Insert into s(s#,sname,age)
Values(‘S9’,’WU’,18)
(2)在基本表S中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个新的基本表STUDENT(S#,SNAME,SEX)。
Create table student
(s# char(10),
Sname char(20),
Sex char(2))
Insert into stuent
Select S#,sname,sex
From s
Where not exists(select *
From sc
Where s.s#=sc.s# and grade<80)

Select S#,sname,sex into student
From s
Where not exists(select *
From sc
Where s.s#=sc.s# and grade<80)

(3)在基本表SC中删除尚无成绩的选课元组。
Delete from sc
Where grade is null

(4)把WANG同学的学习选课和成绩全部删除去。
方法一:

Delete from sc
Where ‘wang’=(select sname
From s
Where s.s#=sc.s#)
方法二:
Delete from sc
Where s# in (select s#
From s
Where sname=’wang’)
(5)把选修MATHS课不及格的成绩全改为空值。
方法一:
Update sc set grade=null
Where 60>(select grade
From sc,c
Where c.cname=’maths’ and sc.c#=c.c#)
方法二:update sc set grade=null
Where grade<60 and c#=(select c#
From c
Where cname=’maths’)
(6)把低于总平均成绩的女同学成绩提高5%。
Update sc set grade=grade*1.05
Where s# in (select s#
From s
Where sc.s#=s.s# and sex=
‘女’)
And grade>(select avg(grade) from sc)
(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。(略)
若课程号为:C4
Update sc set grade=grade*1.05
Where c#=’C4’and grade<=75

Update sc set grade=grade*1.04
Where c#=’C4’and grade>75
若课程名为:C4
Update sc set grade=grade*1.05
Where C# in (select C#
From C
Where cname=’C4’)and grade <=75
Update sc set grade=grade*1.05
Where C# in (select C#
From C
Where cname=’C4’)and grade >75

注:查询每位学生的学号、姓名及总成绩。
select sc.sno,sname,sum(grade)
from student,sc
where student.sno=sc.sno
group by sc.sno,sname
若语句中含有group by子句,select 子句中的字段,除集聚函数外,都需在group by后出现才行。多表时,有重复字段名时,一定要标明所有的字段是哪个表的。

3、创建表create
实例二:设有如图所示的关系S,SC和C,试用关系代数表达式表示下列查询语句:

S SC

c

1、 创建实例二中的基本表,指出主键、外键。
Create table S(
S# int primary key,
Sname char(8),
AGE tinyint,
Sex char(2))

Create table SC(
S# int foreign key references s(S#),
C# char(3) foreign key references c(C#),
Grade int,
Primary key (S#,C#))

Create table C(
C# char(3) primary key,
cname char(10),
teacher char(8))

热心网友 时间:2022-04-08 09:59

http://blog.163.com/xuxiaoni2007@126/blog/static/2512677320096111036798/
这个里面什么 题都有了。有选择天空判断,还有大题

热心网友 时间:2022-04-08 11:50

留上电子邮件~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
谁能给个单机版的风云之雄霸天下啊?? 求风云雄霸天下PC单机游戏WIN7版 雄霸天下任务指南 开心网001老房子卖了以后家具还有吗? 为什么001开心网买房子组件删除仓库里的东西都没了 请教一下,开心001的开心庄园里面的建材有好多富余的的 除了5元一个卖... 开心网001小号怎么给大号送房子? 开心网001多少级能送别人房子?多少级能接受别人给的房子? 开心网001果实或家具能送人吗 开心网(kaixin001)怎么买外地房子? 一个月没在屋里,房间死了两老鼠,应该没什么事吧? 房间里死老鼠的味道很重怎么办 手机可以同时连接两个蓝牙小音箱吗 一部手机能同时用两个蓝牙收银提音箱吗?在店铺里放在两个不同地方使用。 手机老是显示内存不足,又找不到原因是怎么回事啊? 手机内存突然不明原因的满了怎么办 手机存储空间不足?找不到原因希望懂的大大解释一下,让我安心一下 手机内存rom突然满了,找不到原因,但过一天内存又会恢复到原来状态,怎么办?满分求手机大神解答。 就是手机内存老显示不够。我把软件都删了 还是不够 在文件管理中找也找不到 为什么呢 我手机现在老是提示空间不足,想删除又找不到不用的在哪里,怎么办? 一直显示手机内存空间不足怎么办.一直找不到原因 公司招聘笔试的sql server部分应该怎么准备? QQ账户被禁言了,是什么意思,是被举报了,还是? 游戏禁言是怎么回事呀??? 禁言词是什么意思? LOL禁言是什么意思? 禁言有什么用 动态用户永久禁言是什么意思 电话禁言是什么意思啊 王者荣耀被禁言是什么意思? 平乡县的地方特产 平乡有什么特色?? 平乡县的特色小吃有哪些? 河北省邢台县的历史故事名胜特产知名企业历史名人都有哪些 梦见摩托车烟桶漏油喷火 打开电脑要输入密码怎么关 我的世界电脑java版怎么开麦? 我的世界中国版游戏内语音怎么打开 我的世界中国版游 我的世界手机版联机如何打开麦克风权限? 我的世界是不是无法开麦克风呀?我怎么开也不会而别人一开就好啦! 手机版的我的世界怎么开麦? 如果用海水,做成的蒸汽水,可以喝吗 用海水蒸发出的蒸馏水可以喝吗? 加热海水,然后将蒸汽冷却,凝结而成的水可以饮用么? 海水的水蒸气可以喝吗? 再渴也不能喝海水,这是为什么?将海水蒸馏干后,沉淀的都是什么? 通过海水淡化技术,生产出来的水可以喝吗? 海水烧开后产生的蒸馏水咸吗 机动车的车牌上面的二维码是什么来的?是不是可以扫出自己的车牌信息吗还... 猫上面的电源线坏了怎么办? 若果有多少钱?急呀谢谢了。