正确答案是:D: select * from book where bname like ‘%计算机%’
分析:
在SQL中,`LIKE`子句用于在查询中进行模式匹配。以下是各个选项的含义:
A: `select * from book where bname like '_计算机_'`
- 这里的下划线(`_`)表示匹配单个字符。因此,`_计算机_`表示书名中“计算机”前后各有一个字符,总共8个字符的书名。
B: `select * from book where bname like '_计算机%'`
- 这里的下划线(`_`)表示匹配“计算机”之前有一个字符,百分号(`%`)表示“计算机”之后可以有零个或多个字符。
C: `select * from book where bname like '%计算机_'`
- 这里的百分号(`%`)表示“计算机”之前可以有零个或多个字符,下划线(`_`)表示“计算机”之后有一个字符。
D: `select * from book where bname like '%计算机%'`
- 这里的百分号(`%`)表示“计算机”之前和之后都可以有零个或多个字符。
因此,选项D是最通用的匹配模式,能够匹配书名中任何位置包含“计算机”的情况。选项A、B和C都对“计算机”前后的字符数有限制,不够灵活。选项D能够满足题目中“书名含有‘计算机’”的要求。