distinct参数的作用是什么?distinct含义是什么?

来源:中国网络消费网时间:2023-03-14 09:02:13

distinct含义是什么?

distinct用来查询不重复记录的条数,即用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段,而无法返回其他字段。

注意事项

distinct 【查询字段】,必须放在要查询字段的开头,即放在第一个参数;

只能在SELECT 语句中使用,不能在 INSERT, DELETE, UPDATE 中使用;

DISTINCT 表示对后面的所有参数的拼接取 不重复的记录,即查出的参数拼接每行记录都是唯一的

不能与all同时使用,默认情况下,查询时返回的就是所有的结果

distinct参数的作用是什么?

1、从用途上讲:它们都具有去重的效果

2、从效率上讲:distinct 通常不建议使用,效率较低。union all 和 union 而言,union all 效率更高。

原因是:union 相当于多表查询出的数据,进行去重,然后再进行排序后返回,而 union all 是多表查询合并后就直接返回

3、从单表还是多表上讲:单表上有重复记录只能使用distinct,多表查询建议用 union all

二、distinct 排序优化(避免排序)- union all 代替 union、exists 代替 distinct

大家都知道数据库有些命令会对结果进行排序,当数据量较大时,排序会非常耗时。

1、会进行排序的SQL 命令 - 下面列举会排序的代表性运算:

GROUP BY 子句

ORDER BY 子句

聚合函数(SUM,COUNT,AVG,MAX,MIN)

DISTINCT

集合运算(UNICON,INTERSECT,EXCEPT)

窗口函数(RANK,ROW_NUMBER等)

2、实例一:尽可能使用 union all 代替 union

SELECT * FROM TABLE_A UNION ALL SELECT * FROM TABLE_B;

如果不在乎结果中存在重复数据,或预先知道结果中不会有重复数据。请使用 union all 代替 union,这样就不会进行排序。

3、实例二:尽可能使用 exists 代替 distinct

示例数据说明,下面有商品表 Items 和销售记录表 SalesHistory。

需求:查找有销售记录的商品。

可以使用 in 方式实现,但因为 in 会产生子查询,不如使用连接查询效率高。

SELECT DISTINCT I.item_no FROM Items I

INNER JOIN SalesHistory S ON I.item_no = S.item_no;

因为是一对多查询,会产生重复记录,所有使用DISTINCT过滤重复记录。但更好的做法是使用exists方式:

SELECT DISTINCT I.item_no FROM Items I

WHERE EXISTS ( SELECT * FROM SalesHistory S WHERE I.item_no = S.item_no);

说明:因为使用 exists 查询时不会进行排序,而且使用 exists 和使用连接效率一样高。

三、union distinct - 当面试官问你UNION 和UNION ALL之间的区别时该怎么答

MySQL数据库支持两种集合操作:UNION DISTINCT和UNION ALL。

UNION DISTINCT组合两个输入,并应用DISTINCT过滤重复项,一般可以直接省略DISTINCT关键字,直接使用UNION。

在多个SELECT语句中,对应的列应该具有相同的字段属性,且第一个SELECT语句中被使用的字段名称也被用于结果的字段名称。

1、union distinct:其实 union 相当于 union distinct,个人觉得写全比较好,不要偷懒。

当A查询中有数据a,B查询中有数据a,对两个查询使用union distinct方法,那么查询结果只有一条数据a记录。

2、union all:当A查询中有数据a,B查询中有数据a,对两个查询使用 union all 方法,那么查询结果会出现两条数据a。

3、说明:

(1)当A查询中有数据a,B查询中有数据a,不管对两个查询使用union all/distinct方法,查询结果的字段展示是根据union all/distinct前的查询结果字段展示的。

-- 例如前面union all,查询语句为:

(SELECT * from name2 where agend2 = '1')

UNION ALL

(select * from name where name = 'ck1' AND agend = '1');

-- 那么展示的字段是 name2 表中的字段。

(2)在使用UNION DISTINCT的时候,由于向临时表中添加了唯一索引,插入的速度显然会因此而受到影响。如果确认进行UNION操作的两个集合中没有重复的选项,最有效的办法应该是使用UNION ALL。

(3)union 会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序。

Union 在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

Union All:对两个结果集进行并集操作,包括重复行,不进行排序。

关键词: distinct含义与使用方法是什么 union和unionall以及distinct的区别和用途是什么 distinct参数的作用 distinct含义是什么

相关阅读

推荐阅读

distinct参数的作用是什么?distinct含义是什么?

distinct参数的作用是什么?distinct含义是什么?

distinct含义是什么?distinct用来查询不重复记录的条数,即用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返更多

2023-03-14 09:02:13
华为手机定时开关机设置在哪里?华为手机如何自动开关机?

华为手机定时开关机设置在哪里?华为手机如何自动

华为手机定时开关机设置在哪里?定时开关机,既可以省电,又可以确保夜间好好休息。进入设置 > 辅助功能 > 定时开关机 ,开启定时开关更多

2023-03-14 08:58:38
接口文档有哪些内容?接口文件有什么意思?

接口文档有哪些内容?接口文件有什么意思?

接口文件有什么意思?在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这更多

2023-03-14 08:56:44
今日热文:理想推出限时保价政策 90天内降价将返还购车差价

今日热文:理想推出限时保价政策 90天内降价将返

理想推出限时保价政策90天内降价将返还购车差价日前,有网友在社交平台爆料,理想汽车推出了用户购车价格保护权益,用户自定购日起90天内,如更多

2023-03-14 08:37:17
环球要闻:以牙还牙?欧盟将出台美国《通货膨胀削减法案》对标法案

环球要闻:以牙还牙?欧盟将出台美国《通货膨胀削

以牙还牙?欧盟将出台美国《通货膨胀削减法案》对标法案2022年8月,美国总统拜登(JoeBiden)正式颁布了《通货膨胀削减法案》(InflationReduc更多

2023-03-14 08:37:28
传文远知行已秘密在美国申请IPO

传文远知行已秘密在美国申请IPO

传文远知行已秘密在美国申请IPO盖世汽车讯据彭博社报道,有知情人士透露,中国无人驾驶技术初创公司文远知行(WeRide)已秘密在美国提交更多

2023-03-14 08:29:28
领克08官图发布,与魅族联合发布深度合作

领克08官图发布,与魅族联合发布深度合作

领克08官图发布,与魅族联合发布深度合作3月13日消息,领克汽车和魅族在其各自社交平台宣布:智行合一,互联无界。领克和魅族作为深度融合的战略更多

2023-03-14 07:25:44
环球热点!价格战一线调查:武汉的疯狂,车企的自救

环球热点!价格战一线调查:武汉的疯狂,车企的自

价格战一线调查:武汉的疯狂,车企的自救进入3月,东风系品牌迎来销量和流量短期收割阶段。诸如“21万的C6老气横秋,12万的C6成熟稳重”之类的调更多

2023-03-14 07:44:59
+ 点击查看更多精彩
字节跳动计划投资“大量资金”开发VR领域
    据 Protocol 报道,字节跳动正在认真考虑进入虚拟现实(VR)领域...
任天堂Switch曝光:合作伙伴招聘新游戏机开发工程师
    据外媒报道称,任天堂即将推新一代Switch,其中一个最有力的证据...
途牛发布纳斯达克股价不合规通知函
    4月18日,在途牛收到纳斯达克股价不合规通知函后,途牛方面发布声...
一加新机现身:搭载天玑8100处理器,主打快充和游戏
    今天,一款型号显示为PGKM10的一加新机现身GeekBench,这款新机搭...
紫光国微:预计2022年第一季度净利润同比增长69.9%
    紫光国微发布公告称,预计2022年第一季度归属于上市公司股东的净...
斯坦福大学建造小型太阳能电池板原型
    日前,斯坦福大学的研究人员已经建造了一个小型太阳能电池板原型...
    资讯播报