Visual FoxPro数据库程序设计

单选题设话单表的表结构为(手机号,通话起始日期,通话时长,话费),主关键字为(手机号,通话起始日期)。如果一个手机号表示一个入网用户,则当需要查询所有入网用户数时,正确的SQL语句是(  )。A SELECT COUNT($)FROM话单B SELECT COUNT(手机号)FROM话单C SELECT COUNT(DISTINCT手机号)FROM话单D SELECT DISTINCT COUNT(手机号)FROM话单

题目
单选题
设话单表的表结构为(手机号,通话起始日期,通话时长,话费),主关键字为(手机号,通话起始日期)。如果一个手机号表示一个入网用户,则当需要查询所有入网用户数时,正确的SQL语句是(  )。
A

SELECT COUNT($)FROM话单

B

SELECT COUNT(手机号)FROM话单

C

SELECT COUNT(DISTINCT手机号)FROM话单

D

SELECT DISTINCT COUNT(手机号)FROM话单

参考答案和解析
正确答案: C
解析:
主关键字为(手机号,通话起始日期),话单表记录中的手机号可能会重复,所以应该用DISITNCT剔除重复记录,得到所有入网用户记录,采用COUNT(DISTINCT手机号)表达式。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

根据SQL标准,查询表student(sno,sname,sex,dept)中所有学生的选修课程数,其中选修记录在表SC(sno,cno,grade)中,两表中sno为关联字段。下面哪条语句合适?()

A select sno,count(cno) from SC

B select sno,count(cno) from student

C select a.sno,count(cno) from student a left outer join SC

D select a.sno,count(cno) from SC left outer join student a


参考答案C

第2题:

对于图书管理数据库,求CIE单位借阅图书的读者的人数,下面SQL语句正确的是______。 SELECT______FROM借阅WHERE; 借书证号______

A.COUNT(DISTINCT 借书证号); IN(SELECT 借书证号 FROM 读者 WHERE 单位="CIE")

B.COUNT(DISTINCT 借书证号); IN(SELECT 借书证号 FROM 借阅 WHERE 单位="CIE")

C.SUM(DISTINCT 借书证号); IN(SELECT 借书证号 FROM 读者 WHERE 单位="CIE")

D.SUM(DISTINCT 借书证号); IN(SELECT 借书证号 FOR 借阅 WHERE 单位="CIE")


正确答案:A
解析:本题需要求的是CIE单位借阅图书的读者的人数。因此需要采用COUNT()函数来求读者人数,同时要保证借阅的读者是CIE单位的读者。通过以上分析可以知道所采用的SQL语句应该如下
  SELECT COUNT(DISTINCT 借书证号)FROM 借阅 WHERE
  借书证号 IN(SELECT 借书证号 FROM 读者 WHERE 单位="CIE")
  通过比对,可以知道选项A为正确选项。

第3题:

若要求“查询选修了3门以上课程的学生的学生号”,正确的SQL语句是

A.SELECT S# FROM SC GROUP BY S# WHERE COUNT(*)> 3

B.SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)> 3

C.SELECT S# FROM SC ORDER BY S# WHERE COUNT(*)> 3

D.SELECT S# FROM SC ORDER BY S# HAVING COUNT(*)> 3


正确答案:C

第4题:

查询订购单的数量和所有订购单平均金额的正确命令是( )。

A.SELECT COUNT(DISTINCT订单号),AVG(数量*单价)FROM产品JOIN订购单明细ON产品.产品号=订购单明细.产品号

B.SELECT COUNT(订单号),AVG(数量*单价)FROM产品JOIN订购单明细ON产品.产品号:订购单明细.产品号

C.SELECT COUNT(DISTINCT订单号),AVG(数量*单价)FROM产品,订购单明细0N产品.产品号=订购单明细.产品号

D.SELECT COUNT(订单号),AVG(数量*单价)FROM产品,订购单明细0N产品.产品号=订购单明细.产品号


正确答案:A
A。【解析】与连接运算有关的语法格式为:SELECT…FROMTableINNERlLEFTlRIGHTIFULLJOINTableONJoinCondionWHERE…从以上格式可以看出,选项C和选项D是错误的。DISTINCT短语的作用是去除重复的记录,依据题意,正确的答案是选项A。

第5题:

查询订购单的数量和所有订购单平均金额的正确命令是( )。

A.SELECT COUNT(DISTINCT订单号) AVG(数量*单价)FROM产品JOIN订购单名细ON产品.产品号=订购单名细.产品号

B.SELECT COUNT(订单号),AVG(数量*单价)FROM产品JOIN订购单名细ON产品.产品号=订购单名细.产品号

C.SELECT COUNT(DISTINCT订单号)AVG(数量*单价)FROM产品,订购单名细 ON 产品.产品号=订购单名细.产品号

D.SELECT COUNT(订单号),AVG(数量*单)FROM产品,订购单名细ON产品.产品号=订购单名细产品号


正确答案:A
解析:本题要求查询订购单的数量及所有订购单的平均金额,考查的是SQL中实现两个表连接时的命令。在SQL中两表连接命令的格式为:SELECT…FROM表名>INNER JOIN表名>ON 连接表达式,由此可以看出,选项C与选项D为错误选项。需要注意的是,由于在“订购单明细”表中可能有很多重复的产品号,还可能有很多重复的订购单号,如果不加入DISTINCT短语限制重复订单号的话(选项B),该SQL语句执行完成后,计算的订购单数景会是在“订购单明细”表中所有记录的总和,所以该选项错误。正确选项为A。

第6题:

要从选课表(学号、课程号、成绩)中查询选修了三门课程以上的学生学号,应使用的SELECT-SQL语句是

A.SELECT学号FROM选课表WHERE COUNT(*)>=3

B.SELECT学号FROM选课表HAVING COUNT(*)>=3

C.SELECT学号FROM选课表GROUP BY学号HAVING COUNT(*)>=3

D.SELECT学号FROM选课表GROUP BY学号WHERE COUNT(*)>=3


正确答案:C
解析:在选课表中,要查每个学生选修了多少门课程,就应该有按学号的分组语句,如果在查询中对分组后的记录还有一定的限制,就要使用HAVING短语。

第7题:

查询订购单的数量和所有订购单平均金额的正确命令是( )。

A.SELECT COUNT(DISTINCT 订单号),AVG(数量*单价) FROM产品JOIN订购单名细ON产品.产品号=订购单名细.产品号

B.SELECT COUNT(订单号),AVG(数量*单价) FROM产品JOIN订购单名细ON产品.产品号=订购单名细.产品号

C.SELECT COUNT(DISTINCT 订单号),AVG(数量,单价) FROM产品,订购单名细ON产品.产品号=订购单名细.产品号

D.SELECTCOUNT(订单号),AVG(数量,单价) FROM产品,订购单名细ON产品.产品号=订购单名细.产品号


正确答案:A
解析:与连接运算有关的语法格式为:
  SELECT……
  FROM Table INNER|LEFT|RIGHT|FULL JOIN Table
  ON JoinCondion
  WHERE……
  从以上格式可以看出,选项C)和选项D)是错误的。DISTINCT短语的作用是去除重复的记录,依据题意,正确的答案是选项A)。

第8题:

已知基本表SC(S#,C#,GRADE),则“统计选修了课程的学生人次数”的SQL语句为( )。

A.SELECT COUNT(DISTINCTS#)/FROM SC

B.SELECT COUNT(S#)/FROM SC

C.SELECTCOUNT(*)/FROM SC

D.SELECT COUNT (DISTINCT*)/FROM SC


正确答案:B

第9题:

若需统计“选课”表中已经选修了课程的学生人数,下面语句正确的是( )。

A.SELECT COUNT(DISTINCT学生号)FROM选课

B.SELECT COUNT(学生号)FROM选课

C.SELECT COUNT(*)FROM选课

D.SELECT COUNT(DISTINCT*)FROM选课


正确答案:A
解析:选项B是统计选修了课程的学生人次数;选项C是统计选课表中的记录数目;选项D为不正确用法:选项A中用DISTINCT表示不允许出现重复的记录。

第10题:

求至少有两个职工的每个仓库的平均工资______。

A.SELECT仓库号,COUNT(*),AVG(工资)FROM职工表; HAVINGCOUNT(*)>=2

B.SELECT仓库号,COUNT(*),AVG(工资)FROM职工表; GROUPBY仓库号HAVING COUNT(*)>=2

C.SELECT仓库号,COUNT(*),AVG(工资)FROM职工表; GROUPBY仓库号SET COUNT(*)>=2

D.SELECT仓库号,COUNT(*),AVG(工资)FROM职工表; GROUPBY仓库号WHERE COUNT(*)>=2


正确答案:B

更多相关问题