SQL考试复习题02
选择题:(每题 2 分)
26、Sql server提供了一些字符串函数,以下说法错误的是()。(选择一项)
a) select right('hello',3) 返回值为:hel
b) select ltrim(rtrim(' hello ')) 返回值为:hello(前后都无空格)
c) select replace('hello','e','o') 返回值为:hollo
d) select len('hello') 返回值为:5
27、假定有一个用户表,表中包含字段:userid (int)、username (varchar)、 password(varchar)、等,该表需要设置主键,以下说法正确的是()。(选择两项)
a) 如果不能有同时重复的usernamepasswordselect distinct from,那么usernamepassword可以组合在一起作为主键。
b) 此表设计主键时,根据选择主键的最小性原则,最好采用userid作为主键。
c) 此表设计主键时,根据选择主键的最小性原则,最好采用username和password作为组合键。
d) 如果采用userid作为主键,那么在userid列输入的数值,允许为空。
28、关于聚合函数,以下说法错误的是()。(选择一项)
a) Sum返回表达式中所有数的总合,因此只能用于数字类型的列。
b) Avg返回表达式中所有数的平均值,可以用于数字型和日期型的列。
c) Max和Min可以用于字符型的列。
d) Count可以用于字符型的列。
29、现有顾客表customers, 包含数据如下表,若执行sql语句:select avg(discount) from customers,以下()是输出结果。(选择一项)
cid cname discount
1 jack null
2 lee 8
3 tom 7
4 chen 1
a) 错误提示:不能对null进行avg操作
b) 16
c) 8
d) 5
e) 4
30、使用以下()不可以进行模糊查询。(选择一项)
a) OR
b) Not between
c) Not IN
d) Like
31、在关系型数据库中,保证引用完整性的手段是()。(选择一项)
a) 默认值
b) 外键
c) 非空约束
d) 字段检查约束
32、现有客户表customers(主键:客户编号cid),包含10行数据,订单表orders(外键:客户编号cid),包含6条数据。执行sql语句:select * from customers right outer join
orders on customers.cid=orders.cid。最多返回()条记录。(选择一项)
a) 10
b) 6
c) 4
d) 0
33、从"产品"表里查询出价格高于产品名称为"一次性纸杯"的产品的记录,此SQL语句为(d)。(选择一项)
a) SELECT * FROM 产品WHERE 价格>'一次性纸杯';
b) SELECT * FROM 产品WHERE 价格>(SELECT * FROM 产品WHERE 产品名称>' 一次性纸杯');
c) SELECT * FROM 产品WHERE EXISTS 产品名称=' 一次性纸杯');
d) SELECT * FROM 产品WHERE 价格>(SELECT 价格FROM 产品WHERE 产品名称=' 一次性纸杯');
34、在SQL Server 2005中,假定grade(成绩)表中包含字段:cID(班级编号)、lang(语文课成绩)、math(数学课成绩)、eng(英语课成绩),那么计算不同班级每门课程的平均成绩的SQL语句是()。(选择一项)
a) SELECT cID,AVG(lang,math,eng) FROM grade
  GROUP BY lang,math,eng
b) SELECT cID,AVG(lang),AVG(math),AVG(eng) FROM grade
  GROUP BY lang,math,eng
c) SELECT cID,AVG(lang,math,eng) FROM grade
  GROUP BY cID
d) SELECT cID,AVG(lang),AVG(math),AVG(eng) FROM grade
  GROUP BY cID
35、关于Truncate table, 以下()描述是错误的。(选择两项)
a) Truncate table 可跟Where从句,根据条件进行删除。
b) Truncate table 用来删除表中所有数据。
c) 触发器对Truncate table无效。
d) delete Truncate table速度快。
36、现有订单表orders,包含用户信息userid, 产品信息 productid, 以下()语句能够返回至少被订购过两回的productid? (选择一项)
a) select productid from orders where count(productid)>1
b) select productid from orders where max(productid)>1
c) select productid from orders where having count(productid)>1 group by productid
d) select productid from orders group by productid having count(productid)>1
37、关于分组查询,以下()描述是错误的。(选择两项)
a) 使用group by 进行分组查询
b) 对分组后的条件的筛选必须使用Having子句
c) Having子句不能与where子句同时出现在一个select语句中
d) 在使用分组查询时,在select列表中只能出现被分组的列。如:select courseid from grade group by courseid.
38、现有学生表student(主键:学生编号sid),成绩表score(外键:学生编号sid), 两表中的数据如下。执行sql语句:select * from student st left outer join score sc on st.sid=sc.sid。正确的返回结果是()条记录。(选择一项)
student
sid sname
1 Lee
2 Chen
3 Jack
4 rose
score
sid  score
1    80
2    75
a) 0
b) 2
c) 4
d) 6
39、现有书目表book,包含字段:price (float); 现在查询一条书价最高的书目的详细信息,以下语句正确的是()。(选择两项)
a) select top 1 * from book order by price asc
b) select top 1 * from book order by price desc
c) select top 1 * from book where price= (select max (price)from book)
d) select top 1 * from book where price= max(price)
40、现有订单表orders, 包含数据如下表。若查询既订购了产品P01,又订购了产品P02的顾客编号,可以执行以下()sql语句。(选择两项)
cid (顾客编号) Pid (产品编号)
C01 P01
C01 P02
C02 P01
C03 P02
a) select distinct(cid) from orders o1 where o1.pid in ('p01','p02')
b) select distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02' and o1.cid=o2.cid
c) select distinct(cid) from orders o1 where pid='p01' and cid in (select cid from orders where pid ='p02')
d) select distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02'
41、在SQL Server 2000中,现有订单表orders,包含用户信息userid,产品信息productid,以下()语句能够返回至少被订购过两回的productid。(选择一项)
a) select productid from orders gruop by productid where count(productid)>1
b) select productid from orders having count(productid)>1 order by productid
c) select productid from orders where having count(productid)>1 group by productid
d) select productid from orders gruop by productid having count(productid)>1
42、Sql server提供了一些日期函数,以下说法错误的是()。(选择两项)
a) select dateadd(mm,4,'01/01/99') 返回值为:05/01/99
b) select datediff(mm,'03/06/2003','03/09/2003') 返回值为:3
c) select datepart(day,'03/06/2003') 返回值为:6
d) select datename(dw,'03/06/2003') 返回值为:6

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。