3.4 数据库去除结果集重复记录

本次课程我们来学习,去除结果集中的重复记录。第二份是要求每张表都要有主键字段,所以数据库中是不可能有完全相同的记录的,但是结果集就不一样了。要是select最终没有选择主键字段,那么结果集中就有可能出现完全一样的记录。

比如说下面这条sql语句,我们是从员工表里面查询每个员工的职务信息,结果集中就会出现很多重复的记录,因为一个人职务是salesman,那其他人可能职务也是salesman,所以重复记录就这么产生了。

1.去除重复记录

去除重复记录的语法非常的简单,只需要在需要去除重复记录的字段前面加上distinct的这个关键字就行了。于是结果集中就没有重复的数据了,比如说下面这条sql语句,我在job字段前面加上distinct这个关键字,结果集中的这个职位信息就不会有重复的信息了。请大家注意一点,我们现在是去除结果集中的重复记录,而不是在数据表中删除重复记录。数据表里面的记录是不会改变的。


select distinct job from t_emp;

2、注意事项

首先select子句中只有一个字段的时候,那么distinct关键字是可以去除重复记录的。但是select语句中如果使用了多个字段,那么distinct关键字就会失效。

就比如说下面这条sql语句,在select语句里边出现了job和name两个字段,大家请看好是两个字段。那么我对这个字段加上了distinct关键字,有一些记录是相同的,但是员工姓名是不同的,所以就不属于完全重复的记录。因此说distinct的这个关键字去除重复的功能也就消失了。

distinct关键字在select中只能使用一次,而且必须写在第一个字段的前面

错误示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值