题目
49[单选题] 在“医生信息”表中,分别统计男女性医生中少数民族人数的SQL语句为()。bigcircA. SELECT性别, Count(*) AS人数FROM 医生信息 WHERE 民族<“汉族” GROUP BY性别bigcircB. SELECT性别, Count(*) AS人数FROM 医生信息 WHERE 民族<>“汉族” GROUP BY性别bigcircC. SELECT性别, Count(*) AS人数FROM 医生信息 WHERE 民族="少数民族" GROUP BY性别bigcircD. SELECT性别, Count(*) AS人数FROM 医生信息 WHERE 民族="汉族" GROUP BY性别
49[单选题] 在“医生信息”表中,分别统计男女性医生中少数民族人数的SQL语句为()。
$\bigcirc$A. SELECT性别, Count(*) AS人数FROM 医生信息 WHERE 民族<“汉族” GROUP BY性别
$\bigcirc$B. SELECT性别, Count(*) AS人数FROM 医生信息 WHERE 民族<>“汉族” GROUP BY性别
$\bigcirc$C. SELECT性别, Count(*) AS人数FROM 医生信息 WHERE 民族="少数民族" GROUP BY性别
$\bigcirc$D. SELECT性别, Count(*) AS人数FROM 医生信息 WHERE 民族="汉族" GROUP BY性别
题目解答
答案
题目要求统计“医生信息”表中男女性医生中少数民族人数。需筛选出民族不等于“汉族”的记录,并按性别分组统计。
- 选项A使用“<”不适用。
- 选项C不符合实际数据存储。
- 选项D仅统计汉族医生。
- 选项B:`SELECT 性别, COUNT(*) AS 人数 FROM 医生信息 WHERE 民族 <> "汉族" GROUP BY 性别;` 正确表达了筛选非汉族医生并按性别分组统计的要求。
答案:B. `SELECT 性别, COUNT(*) AS 人数 FROM 医生信息 WHERE 民族 <> "汉族" GROUP BY 性别;`
解析
考查要点:本题主要考查SQL语句的编写能力,重点在于条件筛选和分组统计的正确使用。
解题核心思路:
- 筛选条件:需要统计“少数民族”人数,即排除“汉族”的记录,因此
WHERE
子句应使用民族 <> "汉族"
。 - 分组统计:按性别分组(
GROUP BY 性别
),统计每组人数(COUNT(*)
)。
关键点:
<>
运算符用于判断“不等于”,而非<
。- 民族字段的值应为具体民族名称(如“汉族”“蒙古族”),而非“少数民族”这一类别。
选项分析
选项A
WHERE 民族 < "汉族"
- 错误原因:
<
是数值比较运算符,不适用于字符串比较,无法正确筛选少数民族。
选项B
WHERE 民族 <> "汉族"
- 正确性:
<>
表示“不等于”,能正确筛选出非汉族记录。 - 分组统计:
GROUP BY 性别
可分别统计男女医生的少数民族人数。
选项C
WHERE 民族 = "少数民族"
- 错误原因:实际数据库中,民族字段存储的是具体民族名称(如“汉族”“蒙古族”),而非“少数民族”这一笼统分类。
选项D
WHERE 民族 = "汉族"
- 错误原因:此条件筛选的是汉族医生,与题目要求的“少数民族”相反。