题目
下面检索结果一定是不重复数据的是( )。A select distinct*from orders;B select top 1*from orders;C select*from orders where price>160;D select*from orders;
下面检索结果一定是不重复数据的是( )。
A select distinct*from orders;
B select top 1*from orders;
C select*from orders where price>160;
D select*from orders;
题目解答
答案
SELECT DISTINCT * FROM orders;:使用 DISTINCT 关键字可以检索不重复的数据。
SELECT TOP 1 * FROM orders;:使用 TOP 1 可以返回结果集中的第一行数据,通常也是不重复的。
SELECT * FROM orders WHERE price > 160;:这是一个根据条件进行检索的语句,可能会返回重复的数据,具体取决于满足条件的记录。
SELECT * FROM orders;:直接检索所有数据,可能包含重复的数据。
答案:AB
解析
本题考查SQL查询语句中结果是否包含重复数据的判断,核心在于理解各选项中关键字的作用:
DISTINCT
:强制去除结果中的重复行;TOP 1
:仅返回一条结果,单行数据本身不可能重复;WHERE
子句和直接查询表:结果是否重复取决于表中原始数据。
选项A:SELECT DISTINCT * FROM orders;
DISTINCT
关键字的作用是确保结果集中所有行的值完全相同的情况只保留一条。- 无论原表是否存在重复数据,使用
DISTINCT
后结果一定不重复。
选项B:SELECT TOP 1 * FROM orders;
TOP 1
返回结果集的第一行,无论原表是否有重复数据,结果仅包含一条记录。- 单行数据本身不可能重复,因此结果一定不重复。
选项C:SELECT * FROM orders WHERE price > 160;
WHERE
子句筛选数据,若满足条件的记录中存在完全相同的多行数据,则结果会包含重复。- 结果是否重复取决于原表中对应数据的重复情况,无法保证唯一性。
选项D:SELECT * FROM orders;
- 直接查询表中所有数据,若表中存在重复行,结果必然包含重复。
- 结果一定包含原表中的所有重复数据。