??一、 选择题 ??1-5 CABCB ??6-10 AABCC
??二、应用选择题(每题5分,共15分) ??1-3 AAB
??三、填空题(每题2.5分,共5分) ??1. 投影 ??2. INTO
??四、语句填空题(第一题20分,第二题10分,第三题20分,共计50分) ??1. CREATE TABLE 借阅 ??(借书证号 C(4), ??总编号 C(6), ??借书日期 DATE) ??2. 单价<=20
??或 (出版单位="清华大学出版社" OR 出版单位="电子工业出版社") 或 (出版单位="电子工业出版社" OR 出版单位="清华大学出版社") 或 (出版单位=?清华大学出版社? OR 出版单位=?电子工业出版社?) 与 (出版单位="清华大学出版社" OR 出版单位="电子工业出版社") 或 (出版单位=?清华大学出版社?)
??3. COUNT(DISTINCT 总编号) 或 COUN(DISTINCT 总编号) 或 COUNT(DIST 总编号) 或 COUN(DIST 总编号) ??SQL Server 2008测验题(E卷) ??考试时间90分钟
??学号 姓名 班级 ??一、选择题(每题2分, 共30分)
??1) 关于关系图下列哪一个是正确的()。C
??A.关系图是在同一个表中不同字段之间建立关联 ??B.关系图是表与表之间建立关联,与字段无关 ??C.关系图是在不同表中的字段之间建立关联 ??
??D.关系图是在不同数据库之间建立关联
??2) 从“产品”表里查询出价格高于产品名称为“一次性纸杯”的产品的记录,此SQL语句为()。D
??a)SELECT * FROM 产品WHERE 价格>?一次性纸杯? D
??b)SELECT * FROM 产品WHERE 价格>(SELECT * FROM 产品WHERE 产品名称>? 一次性纸杯?
??c)SELECT * FROM 产品WHERE EXISTS 产品名称=? 一次性纸杯?
??d)SELECT * FROM 产品WHERE 价格>(SELECT 价格FROM 产品WHERE 产品名称=? 一次性纸杯?
??3) 现有表book,字段:id (int),title (varchar), price (float); 其中id字段设为标识, 使用insert语句向book表中插入数据,以下语句错误的是()。A ??a)insert into book (id,title,price) values(1,?java?,100) ??b)insert into book (title,price) values(?java?,100) ??c)insert into book values (?java?,100)
??d)insert book values(?java?,100)
??4) 在sql server 2008中,关于数据库说法错误的是()。C
??a)数据库在磁盘上默认的存储位置是:SQL Server安装路径\\Microsoft SQL Server\\MSSQL\\Data
??b)一个数据库至少应包含一个数据库文件(*.mdf)和一个事务日志文件(*.ldf) c)只有当数据库中不存在数据的情况下,才可以进行数据库的收缩操作。 ??d)可以通过从A机器拷贝数据库文件和事务日志文件至B机器,然后通过在B机器上执行相应的附加数据库操作,实现数据库从A机器到B机器的复制。 ??5) 若要删除book表中所有数据,以下语句错误的是()。(选择两项)BC ??a)truncate table book //对整个数据表中的数据进行删除,没有附带事物这一特性,比delete要快,只能删除单表中的数据 ??b)delete * from book
??c)drop table book //删除整个数据表对象 ??d)delete from book
??5) 学生成绩表grade中有字段score(float),现在要把所有在55分至60之间的分数提高5分,以下sql语句正确的是()。(选择两项)CD ??a)Update grade set score=score+5
??b)Update grade set score=score+5 where score>=55 or score <=60 ??c)Update grade set score=score+5 where score between 55 and 60
??d)Update grade set score=score+5 where score >=55 and score <=60
??6) 现有书目表book,包含字段:价格price (float),类别type(char); 现在查询各个类别的平均价格、类别名称,以下语句正确的是()。A ??a)select avg(price),type from book group by type ??b)select count(price),type from book group by price ??c)select avg(price),type from book group by price ??d)select count (price),type from book group by type
??7) 成绩表grade中字段score代表分数,以下()语句返回成绩表中的最低分。(选择两项) BC
??a)select max(score) from grade
??b)select top 1 score from grade order by score asc ??
??c)Select min(score) from grade
??d)select top 1 score from grade order by score desc ??8) 关于聚合函数,以下说法错误的是()。B
??a)Sum返回表达式中所有数的总合,因此只能用于数字类型的列。 ??b)Avg返回表达式中所有数的平均值,可以用于数字型和日期型的列。 ??c)Max和Min可以用于字符型的列。 ??d)Count可以用于字符型的列。
??9) 关于多表联接查询,以下()描述是错误的。B
??a)外联接查询返回的结果集行数可能大于所有符合联接条件的结果集行数。 ??b)多表联接查询必须使用到JOIN关键字 ??c) //视图是保存查询语句,没有数据源 ??C.视图也可由视图派生出来 ??D.视图是保存在SELECT查询
??15) 查询毕业学校名称与“清华”有关的记录应该用(D)。
??A. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ?*清华*? ??B. SELECT * FROM 学习经历 WHERE 毕业学校 = ?%清华%? ??C. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ??清华?? ??D. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ?%清华%? ??
??二、判断题:(每小题2分,共20分)
??1. 安装Microsoft SQL Server 2005 企业版对操作系统的最低要求可以是Microsoft
??Windows 2008 Professional。(F)
??2. 每一个服务器必须属于一个服务器组。一个服务器组可以包含0个、一个或多个服务 ??器。(T)
??3. 验证模式是在安装SQL Server过程中选择的。系统安装之后,可以重新修改SQL
??Server系统的验证模式。(T)
??4. 固定数据库角色:db_datareader 的成员不能修改本数据库Foreign key references 储户(账号), ??储蓄所编号 char(10)
??Foreign key references 储蓄所(储蓄所编号) , ??
??存取日期 DATE, ??存取标志 BIT,
??存取金额 MONEY) ??Create table储蓄所
??(储蓄所编号 char(10) primary key, 名称 varchar(10), ??电话 char(11), ??地址 varchar(10) ??)
??1、 选择题 ??1. AB ??2. D ??3. C ??4. B ??5. BC ??6. A ??7. D ??8. A ??9. B ??10. bd ??11. D ??12. A ??13. C ??14. B
??15. D SQL Server 2008测验题(B卷) 考试时间90分钟 学号班级 ??
??2、 FTFFT ??3、 现有如下两张表,请看具体要求,首先克服自己,不要怕,要记得北京很多公司. ??表1(Company) ?? ?? ?? ?? ??
??表2(Hire) ?? ?? ?? ?? ??
??(1) 找出表中的主键. a) 表1的主键是ID了. (2) 表2的主键CompanyID (3) 找出表之间的关系.
??Hire表的主键做为外键引用了Company表的主键. ??(4) 求第四财季招聘过员工的公司名称. ??i.
??select c.companyName, c.id from company c where id in (
??select h.companyID from hire h where h.FiscalQuater = 4 and h.NumHired > 0); select c.companyName, c.id from company c where id in (
??select h.companyID from hire h where (h. FiscalQuater between 1 and 4) and ??h.NumHired = 0);
??(6) 从第一到第四财季之间招聘过员工的公司名称和他们各自招聘的员工总数. ??i. ??2、 ?? ?? ?? ?? ??
??(5) 求第一到第四财季从没招聘过员工的公司. ??i.
??select c.companyName, sum(h.NUmhired) as result from company c join hire h on (c.id = h.companyID) group by h.companyID ??
??问题一:按产品分类仅列出各类商品中红色多于蓝色的商品名称及差额数量? ??select 产品, sum(case when 颜色=?红色? then 数量 else 0 end) -sum(case when 颜色=?蓝色? then 数量 else 0 ??end) as 差额 from test group by 产品 ??
??having sum(case when 颜色=?红色? then 数量 else 0 ??end) >sum(case when 颜色=?蓝色? then 数量 else 0 ??end) ??或者
??方法2 select 产品, sum(case when 颜色=?红色? then 数量 ??when 颜色=?蓝色? then -数量 else 0 end) as 差额 ??from test
??group by 产品
??having sum(case when 颜色=?红色? then 数量 when 颜 ??色=?蓝色? then -数量 else 0 end)>0 ??问题二:产品分类,将数据按下列方式进行统计显示 ??产品 红色 蓝色 ??产品1 1500 1298
??select 产品,红色=sum(case when 颜色=?红色? then 数量 else 0 end), 蓝色=sum(case when 颜色=?蓝色? then 数量 else 0 end) from test group by 产品 ??select Name, sum(case when ??Color=?red? then
??SafetyStockLevel else 0 end) -sum(case when Color=?blue? ??then SafetyStockLevel else 0 end) as 差额 ??from Production.Product ??group by Name
??having sum(case when ??Color=?red? then
??SafetyStockLevel else 0
??end) >sum(case when Color=?blue? then SafetyStockLevel else 0 end) ??
??select Name,红色=sum(case when Color=?red? then
??SafetyStockLevel else 0 end), 蓝色=sum(case when Color=?blue? then SafetyStockLevel else 0 end) from Production.Product group by Name ??3、有3个表S,C,SC
??S(SNO,SNAME)代表(学号,姓名)
??C(CNO,CNAME,CTEACHER)代表(课号,课名,教师) ??SC(SNO,CNO,SCGRADE)代表(学号,课号成绩) ??问题:
??1,找出没选过“黎明”老师的所有学生姓名。
??select sname from s where sno not in (select sno from sc where cno in (select cno from c where cteacher = ?黎明?));
??2,列出2门以上(含2门)不及格学生姓名及平均成绩。 ??select s.sname,ave(scgrade) ??from s,sc
??WHERE s.sno=SC.sno AND SNO IN (select Sno from sc where scgrade<60
??group by sno
??having count(distinct cno)>=2)
??3,即学过1号课程有学过2号课所有学生的姓名。
??select sname from s where sno in (select sno from sc where cno = 1 and sno in (select sno from sc where cno = 2)) ??