sqlserver测试题及答案.docx
《sqlserver测试题及答案.docx》由会员分享,可在线阅读,更多相关《sqlserver测试题及答案.docx(12页珍藏版)》请在冰豆网上搜索。
sqlserver测试题及答案
Sqlserver一期内部测试题
一选择题
1、_______是指组成表的各列的名称及数据类型,也就是日常表格的“栏目信息”。
(选择1项)
A)表型
B)记录
C)属性
D)关键字
2、在SQL查询时,使用()子句指出的是分组后的条件。
(选择1项)
A)WHERE
B)HAVING
C)WHEN
D)GROUP
3、已知关系:
员工(员工号,姓名,部门号,薪水) PK=员工号FK=部门号
部门(部门号,部门名称,部门经理员工号) PK=部门号(PK指的式主键FK指的式外键)
现在要查询部门员工的平均工资大于3000的部门名称及平均工资,下面哪两句查询正确:
(选择2项)
A)SELECT部门名称,AVG(薪水)FROM部门P,员工EWHEREE.部门号=(SELECT部门号FROM部门WHERE部门名称=P.部门名称)GROUPBY部门名称HAVINGAVG(薪水)>3000
B)SELECT部门名称,AVG(薪水)FROM部门PINNERJOIN员工EONP.部门号=E.部门号GROUPBY部门名称WHEREAVG(薪水)>3000
C)SELECT部门名称,AVG(薪水)FROM部门PINNERJOIN员工EONP.部门号=E.部门号GROUPBY部门名称HAVINGAVG(薪水)>3000
D)SELECT部门名称,AVG(薪水)FROM部门P,员工EWHEREP.部门号=(SELECT部门号FROM部门WHERE部门名称=P.部门名称)GROUPBY部门名称HAVINGAVG(薪水)>3000
4、要将表userInfo从数据库中删除,用以下的哪个命令?
(选择1项)
A)DROPTABLEuserInfo
B)TRUNCATETABLEuserInfo
C)DELETEFROMuserInfo
D)DROPFROMuserInfo
5、在以下哪种情况下使用主键约束而不使用唯一约束:
(选择1项)
A)列的值允许为空值
B)列有外键引用
C)列的值不允许为空值
D)以上都不对
6、在数据库表employee中查找字段empid中以两个数字开头第三个字符是下画线“_”的所有记录。
请选择以下正确的语句:
(选择1项)
A)SELECT*FROMemployeeWHEREempidLIKE'[0-9][0-9]_%'
B)SELECT*FROMemployeeWHEREempidLIKE'[0-9][0-9]_[%]'
C)SELECT*FROMemployeeWHEREempidLIKE'[0-9]9[_]%'
D)SELECT*FROMemployeeWHEREempidLIKE'[0-9][0-9][_]%'
7、函数FLOOR(-41.3)返回______。
(选择1项)
A)-41
B)-42
C)41
D)以上都不是
8、下面哪个函数返回的是满足给定条件的平均值:
(选择1项)
A)Max(col_name)
B)Avg(col_name)
C)Sum(col_name)
D)COUNT(col_name)
9、合并多个查询结果集,应使用()关键字。
E)A、joinB、union
F)C、intoD、and
10、在SQL查询时,使用WHERE子句指出的是。
(选择1项)
A)查询目标
B)查询结果
C)查询条件
E)查询视图
11、下面有关HAVING子句描述错误的是。
(选择1项)
A)HAVING子句必须与GROUPBY子句同时使用,不能单独使用
B)使用HAVING子句的同时不能使用WHERE子句
C)使用HAVING子句的同时可以使用WHERE子句
D)使用HAVING子句的作用是限定分组的条件
12、已知关系:
厂商(厂商号,厂名) PK=厂商号
产品(产品号,颜色,厂商号) PK=产品号,FK=厂商号
表如下:
厂商 产品
厂商号
厂名
C01
宏达
C02
立仁
C03
广源
产品号
颜色
厂商号
P01
红
C01
P02
黄
C03
若再往产品表中插入如下记录:
I(P03,红,C02) II(P01,蓝,C01)
III(P04,白,C04) IV(P05,黑,null)
能够插入的记录是。
(选择1项)
A)I,II,IV
B)I,III
C)I,II
D)I,IV
13、要删除表userInfo中的所有记录,用以下的哪两个命令?
(选择2项)
A)DROPTABLEuserInfo
B)TRUNCATETABLEuserInfo
C)DELETEFROMuserInfo
D)DROPFROMuserInfo
14、Delete语句是_____语句?
(选择1项)
A)DQL
B)DML
C)DDL
D)DCL
15、SQL语句中,可以使用()语句一次插入()条记录,如果想要一次插入多条记录,必须在语句中使用()语句。
A、Insert,一,SelectB、Insert,二,Update
C、Update,一,InsertD、Delete,三,Select
16、在数据库pubs的表authors中查找以ean结尾的所有4个字母的作者所在的行。
请选择以下正确的语句:
(选择1项)
A)SELECT*FROMauthorsWHEREau_fnameLIKE'_ean'
B)SELECT*FROMauthorsWHEREau_fnameLIKE'%ean'
C)SELECT*FROMauthorsWHEREau_fnameLIKE'[_ean]'
E)SELECT*FROMauthorsWHEREau_fnameLIKE'[%]ean'
17你是一名电子商务网站的数据库开发人员。
你正在建立一个数据库来存储网站的订单信息。
这些信息从一个client/server应用程序的client端被输入,每输入一条新订单,就会产生一个唯一的订单号(OrderNumber),并且订单号是以递增的顺序产生的。
每天的订单数量大概在10,000条左右。
你建立了一个新表Orders并且向其中加入了一个字段OrderNumber。
下一步你该做什么?
A将OrderNumber的数据类型设置为uniqueidentifier。
B将OrderNumber的数据类型设置为int,并为其设置IDENTITY属性。
C将OrderNumber的数据类型设置为int,然后建立一个用户定义的sql语句来找出表中最大的订单号。
D将OrderNumber的数据类型设置为int。
然后建立一个新表NextKey,向其中加入NextOrder(下一张订单)字段,将NextOrder的数据类型设置为int。
建立一个存储过程来获得或更新表NextKey中的值。
18、以下那些是系统数据库:
ASQLServer
Btempdb
Csystemdb
Dmodel
19、检索序列号(Prono)为空的所有记录()。
A、select*fromTab_ProInforwhereProno=‘’;
B、select*fromTab_ProInforwhereProno=0;
C、select*fromTab_ProInforwherePronoisnull;
D、select*fromTab_ProInforwhereProno=‘0’
20charindex(‘hy’,’huayuguoji’)返回的结果为
A0
B1
C4
D-1
二sql语句测试提交sql语句
、学校图书馆借书信息管理系统建立三个表:
学生信息表:
student
字段名称
数据类型
说明
stuID
char(10)
学生编号,主键
stuName
Varchar(10)
学生名称
major
Varchar(50)
专业
图书表:
book
字段名称
数据类型
说明
BID
char(10)
图书编号,主键
title
char(50)
书名
author
char(20)
作者
借书信息表:
borrow
字段名称
数据类型
说明
borrowID
char(10)
借书编号,主键
stuID
char(10)
学生编号,外键
BID
char(10)
图书编号,外键
T_time
datetime
借书日期
B_time
datetime
还书日期
完成以下题目(利用企业管理器创建数据库数据表增加约束该步骤略)
1)利用sql语句录入测试数据测试数据见下图(为节省时间只提交每个表录入数据的第一条sql语句即本题共需要提交三条sql语句)(该题6分)
Book表
Borrow表
Student表
2)查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期;参考查询结果如下图所示:
(该题6分)
selectst.stuid,stuname,bk.bid,title,t_timefromstudentst,bookbk,borrowbr
wherest.stuid=br.stuidandbr.bid=bk.bid
andt_time>='2007-12-15'andt_time<='2008-1-8'andmajor='计算机'
3)查询所有借过图书的学生编号、学生名称、专业;参考查询结果如下图所示:
(该题6分)
selectstuid,stuname,majorfromstudentwherestuidin(selectstuidfromborrow)
4)查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期、归还日期;参考查询结果如下图所示:
(该题6分)
selectstuname,title,t_time,b_timefrombookbk,studentst,borrowbr
wherest.stuid=br.stuidandbr.bid=bk.bidandauthor='安意如'
5)查询目前借书但未归还图书的学生名称及未还图书数量;参考查询结果如下图所示:
(该题6分)
selectstuname,count(*)fromstudentst,borrowbrwherest.stuid=br.stuidandb_timeisnullgroupbyst.stuid,stuname
6)利用sql语句删除已经还书的的信息(该题5分)
deletefromborrowwhereB_timeisnotnull
7)利用sql语句把五月的专业更改为”数学应用”(该题5分)
updatestudentsetmajor='数学应用'wherestuname='五月'
三sql语句测试
根据以下对表的描述要求完成SQL语句:
选课表(Register)
部门表(dept)
列名
R_ID
C_ID
S_ID
T_ID
R_Date
R_score
D_ID
D_Name
类型
varchar
varchar
Varchar
varchar
datetime
numeric(5,2)
varchar
varchar
意义
选课编号
课程编号
学生编号
教师编号
选课时间
成绩
部门编号
部门名
教师表(Teacher)
学生表(Student)
课程表(Course)
列名
T_ID
T_Name
D_ID
T_Mail
S_ID
S_Name
S_Mail
C_ID
C_Name
C_Comment
类型
varchar
varchar
Varchar
varchar
varchar
varchar
varchar
varchar
varchar
varchar
意义
教师编号
教师姓名
部门号
教师邮箱
学生编号
学生姓名
学生邮箱
课程编号
课程名
课程描述
1、根据上面表的定义,写出创建教师(teacher)和部门表(dept)的SQL语句,要求:
TID定义为主键,DID定义为外键。
Createtabledept
(
didvarchar(15)primarykey,
Dnamevarchar(15)
)
Createtableteacher
(tidvarchar(15)primarykey,
tnamevarchar(15),
didvarchar(15)referencesdept(did),
tmailvarchar(15)
)
2、向选课表添加一行数据:
选课编号
课程编号
学生编号
教师编号
选课时间
成绩
HYR0001
HYC001
HYS001
HYT001
2008/6/12
76
InsertintoRegister
Values(‘HYR0001’,’HYC001’,’HYS001’,’HYT001’,’2008/6/12’,76)
3、把所有HYD01部门的老师的邮箱添加前缀“Mailto”。
Updateteachersettmail=’Mailto’+tmailwheredid=’HYD01’
4、列出所有教师的姓名和部门名
Selectt.tname,d.dnamefrom
Teachertjoindeptd
Ont.did=d.did
5、列出每个学生的姓名和其平均成绩
Selects.sname,avg(r.rscore)
Fromstudentsjoinregisterr
Ons.sid=r.sid
Groupbys.sname
6、列出没有带课的老师的名字
Selecttnamefromteacher
Wheretidnotin
(selecttidfromregister)
7、列出教学成绩最好(老师的各科总平均成绩高)的老师的名字
Selecttnamefromteacher
Wheretid=(Selecttop1tidfromregistergroupbytidorderbyavg(R_score)desc)
8、列出所有学生姓名,授课教师姓名,课程名称,选课时间,成绩,并包含没有参加选课的学生姓名。
Selects.sname,t.tname,ame,r.rdate,r.rscore
Fromregisterr
Jointeachertont.tid=r.tid
Joincourseconr.cid=c.cid
RightouterJoinstudentsonr.sid=r.sid(注意sname,tanme,cname属于哪个表别忘了加上)
9、列出高于学科平均成绩的学生编号和其成绩
Selectsid,rscore
fromregisterouters
whererscore>
(selectavg(rscore)fromregisterinnerswhereinners.cid=outers.cid)
10删除姓张的学员信息
deletefromstudentwhereS_Namelike‘张%’