考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

备考刷题,请到

CDA认证小程序

(复合题)学生信息表 student 包含 id(学生编号)和 stuname(学生姓名)。 (4)以下哪个语句可以输出如图 3-110 所示的内容?
A. select stuname, group_concat(id) from student;
B. select stuname, group_concat(id) from student group by stuname;
C. select stuname, id from student group by stuname;
D. select stuname, id from student;
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

group_concat()函数常与关键字 group by 一起使用,能够将分组后指定的字段值都显示出来。

根据题目的描述和提供的选项,我们需要选择一个 SQL 语句来输出如图 3-110 所示的内容。我们需要理解每个选项的功能,并分析哪个选项能够正确地输出所需的结果。

选项分析:
1. **A: select stuname, group_concat(id) from student;**
- 这个语句会将所有学生的 `id` 进行合并,并且不会根据 `stuname` 分组。输出的结果会是一行,包含所有学生的 `id` 和一个 `stuname`。

2. **B: select stuname, group_concat(id) from student group by stuname;**
- 这个语句会根据 `stuname` 进行分组,并将每组内的 `id` 进行合并。输出的结果会是每个学生姓名对应其所有的 `id`,这符合题目的要求。

3. **C: select stuname, id from student group by stuname;**
- 这个语句会根据 `stuname` 进行分组,但由于 `id` 不是聚合函数,MySQL 通常会返回每组中的第一个 `id`。这可能导致丢失信息,不符合题目的要求。

4. **D: select stuname, id from student;**
- 这个语句会输出所有学生的 `stuname` 和 `id`,但不会进行任何分组或合并,输出的结果将是每个学生一行,不符合题目的要求。

综上所述,正确答案是 **B: select stuname, group_concat(id) from student group by stuname;**。

这个语句会根据 `stuname` 进行分组,并将每组内的 `id` 合并在一起,形成一个逗号分隔的字符串,这与图 3-110 所示的内容相符。