SQL考试复习题02
选择题:(每题 2 分)
26、Sql rver提供了一些字符串函数,以下说法错误的是()。(选择一项)
a) lect right('hello',3) 返回值为:hel
b) lect ltrim(rtrim(' hello ')) 返回值为:hello(前后都无空格)
c) lect replace('hello','e','o') 返回值为:hollo
d) lect len('hello') 返回值为:5
27、假定有一个用户表,表中包含字段:urid (int)、urname (varchar)、 password(varchar)、等,该表需要设置主键,以下说法正确的是()。(选择两项)
a) 如果不能有同时重复的urname和password,那么另类教育urname和password可以组合在一起作为主键。
b) 此表设计主键时,根据选择主键的最小性原则,最好采用urid作为主键。
c) 此表设计主键时,根据选择主键的最小性原则,最好采用urname和password作为组合键。
d) 如果采用urid作为主键,那么在urid列输入的数值,允许为空。
28、关于聚合函数,以下说法错误的是()。(选择一项)
a) Sum返回表达式中所有数的总合,因此只能用于数字类型的列。
b) Avg返回表达式中所有数的平均值,可以用于数字型和日期型的列。
c) Max和Min可以用于字符型的列。
补气血的东西
d) Count可以用于字符型的列。
29、现有顾客表customers, 包含数据如下表,若执行sql语句:lect 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语句:lect * 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,包含用户信息urid, 产品信息 productid, 以下()语句能够返回至少被订购过两回的productid? (选择一项)
a) lect productid from orders where count(productid)>1
b) lect productid from orders where max(productid)>1
c) lect productid from orders where having count(productid)>1 group by productid
d) lect productid from orders group by productid having count(productid)>1
37、关于分组查询,以下()描述是错误的。(选择两项)
a) 使用group by 进行分组查询
b) 对分组后的条件的筛选必须使用Having子句
c) Having子句不能与where子句同时出现在一个lect狗和龙属相合不合语句中
d) 在使用分组查询时,在lect列表中只能出现被分组的列。如:lect courid from grade group by courid.
38、现有学生表student(主键:学生编号sid),成绩表score(外键:学生编号sid), 两表中的数据如下。执行sql语句:lect * from student st left outer join score sc on st.sid=sc.sid。正确的返回结果是()条记录。(选择一项)
深根固柢
student
sid sname
1 Lee
2 Chen
3 Jack
4 ro
score
你是我羽翼下的风sid score
1 80
2 75
a) 0
b) 2
c) 4
d) 6
39、现有书目表book,包含字段:price (float); 现在查询一条书价最高的书目的详细信息,以下语句正确的是()。(选择两项)
a) lect top 1 * from book order by price asc
b) lect top 1 * from book order by price desc
c) lect top 1 * from book where price= (lect max (price)from book)
d) lect top 1 * from book where price= max(price)
40、现有订单表orders, 包含数据如下表。若查询既订购了产品P01,又订购了产品P02的顾客编号,可以执行以下()sql语句。(选择两项)
cid (顾客编号) Pid (产品编号)
C01 P01
C01 P02
C02 P01
C03 P02
超轻粘土手工作品a) lect distinct(cid) from orders o1 where o1.pid in ('p01','p02')
b) lect distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02' and o1.cid=o2.cid
c) lect distinct(cid) from orders o1 where pid='p01' and cid in (lect cid from orders where pid ='p02')
d) lect distinct(cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02'
41、在SQL Server 2000中,现有订单表orders,包含用户信息urid,产品信息productid,以下()语句能够返回至少被订购过两回的productid。(选择一项)
a) lect productid from orders gruop by productid where count(productid)>1
b) lect productid from orders having count(productid)>1 order by productid
c) lect productid from orders where having count(productid)>1 group by productid
d) lect productid from orders gruop by productid having count(productid)>1
42、Sql rver提供了一些日期函数,以下说法错误的是()。(选择两项)
a) lect dateadd(mm,4,'01/01/99') 返回值为:05/01/99
b) lect datediff(mm,'03/06/2003','03/09/2003') 返回值为:3
c) lect datepart(day,'03/06/2003') 返回值为:6
d) lect datename(dw,'03/06/2003') 返回值为:6