SQL中的DISTINCT简介、SQL DISTINCT详解 附DISTINCT的用法、DISTINCT注意事项

 更新时间:2025年05月30日 09:57:02   作者:m0_74823892  
DISTINCT 是 SQL 中用来返回唯一不重复结果集的关键字,它通常用于 SELECT 语句中,可以指定一个或多个列进行去重,并返回唯一的结果,这篇文章给大家介绍SQL中的DISTINCT简介、SQL DISTINCT详解 附DISTINCT的用法、DISTINCT注意事项,感兴趣的朋友一起看看吧

DISTINCT简介:

DISTINCT 是 SQL 中用来返回唯一不重复结果集的关键字。它通常用于 SELECT 语句中,可以指定一个或多个列进行去重,并返回唯一的结果。当你在使用 SELECT 查询数据时,可能会得到包含重复行的结果集。为了去除这些重复行,你可以使用 DISTINCT 关键字来获取唯一的记录。

表中插入的原始数据:

1、单列去重:单列去重:使用 DISTINCT 去重查询结果中的单个列,返回唯一的值。

SELECT	DISTINCT age FROM students

2、多列去重:使用 DISTINCT 去重查询结果中的多个列,返回满足多列组合唯一的结果。

SELECTDISTINCT NAME,age,score FROM students

3、结合其他关键字:DISTINCT 可以与其他 SQL 关键字结合使用,如 ORDER BY、WHERE 和 GROUP BY 等

SELECT	DISTINCT NAME,age,score FROM students ORDER BY score DESC
SELECT	DISTINCT NAME ,age,score FROM students GROUP BY NAME

4、对表达式进行去重:DISTINCT 还可以用于对表达式进行去重,而不仅仅是列名。这允许你根据某些计算得到的结果进行去重。

SELECT DISTINCT ( `name` + age) result FROM students

5、COUNT()统计

SELECT COUNT(DISTINCT NAME) num FROM students

注意事项:

1、distinct 必须放在字段的开头,即放在第一个参数的位置。

2、只能在select语句中使用,不能在insert、delete、update中使用。

3、distinct表示对后面的所有参数的拼接 取 不重复的记录。

4、distinct 忽略 NULL 值:distinct 关键字默认会忽略 NULL 值,即将 NULL 视为相同的值。如果你希望包括 NULL 值在去重结果中,可以使用 IS NULL 或 IS NOT NULL 进行过滤。

5、DISTINCT 基于所有选择的列:DISTINCT 关键字基于选择的所有列来进行去重。如果你只想根据部分列进行去重,可以使用子查询或者窗口函数等技术来实现。

6、DISTINCT 的性能消耗:DISTINCT 操作可能会对查询的性能产生一定的影响,特别是在处理大量数据时。因为它需要对结果集进行排序和比较以去除重复行。如果性能是一个关键问题,可以考虑其他优化方法,例如使用索引或者合理设计查询。

7、结果集顺序不保证:使用 DISTINCT 关键字后,结果集的顺序可能会发生变化,因为数据库系统通常会对结果进行重新排列以去除重复行。如果需要特定的结果排序,可以使用 ORDER BY 子句进行排序。

完整版代码

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    NAME VARCHAR(50),
    age INT,
    score DECIMAL(5, 2)
);
INSERT INTO students (NAME, age, score) VALUES
('Alice', 20, 85.5),
('Bob', 22, 76.3),
('Charlie', 21, 92.0),
('Alice', 20, 85.5),
('David', 23, 68.9);
# 原始数据
SELECT	* FROM students
# 单列去重:使用 DISTINCT 去重查询结果中的单个列,返回唯一的值。
SELECT	DISTINCT age FROM students
# 多列去重:使用 DISTINCT 去重查询结果中的多个列,返回满足多列组合唯一的结果。
SELECT	DISTINCT NAME,age,score FROM students
# 结合其他关键字:DISTINCT 可以与其他 SQL 关键字结合使用,如 ORDER BY、WHERE 和 GROUP BY 等
SELECT	DISTINCT NAME,age,score FROM students ORDER BY score DESC
SELECT	DISTINCT NAME ,age,score FROM students GROUP BY NAME
# 对表达式进行去重:DISTINCT 还可以用于对表达式进行去重,而不仅仅是列名。这允许你根据某些计算得到的结果进行去重。
SELECT DISTINCT ( `name` + age) result FROM students
# COUNT()统计
SELECT COUNT(DISTINCT NAME) num FROM students

到此这篇关于SQL中的DISTINCT简介、SQL DISTINCT详解 附DISTINCT的用法、DISTINCT注意事项的文章就介绍到这了,更多相关sql distinct用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL(MSSQLSERVER)服务启动错误代码3414的解决方法

    SQL(MSSQLSERVER)服务启动错误代码3414的解决方法

    这篇文章主要介绍了SQL(MSSQLSERVER)服务启动错误代码3414的解决方法,需要的朋友可以参考下
    2016-03-03
  • SQL Server中的数据类型Text与varchar(max)有什么区别?

    SQL Server中的数据类型Text与varchar(max)有什么区别?

    在SQL Server中,处理文本数据时,我们经常会遇到两种数据类型:Text和varchar(max),尽管它们都可以用来存储大量的文本数据,如果可能的话,考虑将Text数据类型迁移到varchar(max)或nvarchar(max)数据类型,以利用新功能和潜在的性能优势
    2025-03-03
  • Sqlserver创建用户并授权的实现步骤

    Sqlserver创建用户并授权的实现步骤

    这篇文章主要介绍了Sqlserver创建用户并授权的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • MSSQL 监控数据/日志文件增长实现方法

    MSSQL 监控数据/日志文件增长实现方法

    今天就想实现这么一个功能,每天(频率可以调整)去收集一下数据文件的信息,放到一个表里面,这样方便我们分析数据文件的增长演变例程,甚至你可以将数据文件的增长幅度和业务变化关联起来分析
    2013-08-08
  • SQL中如何添加数据几种方法详细解说

    SQL中如何添加数据几种方法详细解说

    数据插入操作是SQL的基础操作之一,下面这篇文章主要给大家介绍了关于SQL中如何添加数据的几种方法,文中通过图文以及代码示例介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • SQLServer中Partition By及row_number 函数使用详解

    SQLServer中Partition By及row_number 函数使用详解

    partition by关键字是分析性函数的一部分,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组,本文给大家介绍SQLServer中Partition By及row_number 函数使用详解,需要的朋友参考下
    2015-11-11
  • Mybatis SQL注解使用场景分析

    Mybatis SQL注解使用场景分析

    MyBatis 提供了几种常用的注解,主要用于简化 XML 映射文件的编写,使得 SQL 查询和操作可以直接在 Java 接口中定义,这篇文章主要介绍了Mybatis SQL注解使用场景,需要的朋友可以参考下
    2024-07-07
  • 显示 Sql Server 中所有表中的信息

    显示 Sql Server 中所有表中的信息

    显示 Sql Server 中所有表中的信息...
    2006-12-12
  • sqlserver 模糊查询常用方法

    sqlserver 模糊查询常用方法

    LIKE 关键字搜索与指定模式匹配的字符串、日期或时间值。LIKE 关键字使用常规表达式包含值所要匹配的模式。模式包含要搜索的字符串,字符串中可包含四种通配符的任意组合。
    2010-09-09
  • SQL SERVER服务器部署IP查询方法详解

    SQL SERVER服务器部署IP查询方法详解

    这篇文章主要为大家介绍了SQL SERVER服务器部署IP查询示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01

最新评论