正确答案是:D: SELECT price FROM book WHERE book_name LIKE '中国%'
分析:
在SQL中,进行字符串匹配时,通常使用`LIKE`关键字。`LIKE`允许使用通配符来进行模式匹配:
1. `%`:表示零个或多个字符。
2. `_`:表示单个字符。
选项分析:
- A: `SELECT price FROM book WHERE book_name = '中国*'`:
- 使用了等号`=`,这表示精确匹配,而不是模式匹配。
- `*`在SQL标准的字符串匹配中并不是通配符,因此这个语句会试图匹配书名完全等于`中国*`的记录,这通常不是预期的行为。
- B: `SELECT price FROM book WHERE book_name LIKE '中国*'`:
- 使用了`LIKE`关键字,但`*`不是标准SQL中的通配符。
- 这会导致无法正确匹配以“中国”开头的书名。
- C: `SELECT price FROM book WHERE book_name = '中国%'`:
- 使用了等号`=`,这表示精确匹配,而不是模式匹配。
- 这会试图匹配书名完全等于`中国%`的记录,不符合需求。
- D: `SELECT price FROM book WHERE book_name LIKE '中国%'`:
- 正确使用了`LIKE`关键字和`%`通配符。
- `%`通配符用于匹配以“中国”开头的书名后面可以跟任意字符的情况。
因此,选项D是正确的选择。