本次课程我们来学习,去除结果集中的重复记录。第二份是要求每张表都要有主键字段,所以数据库中是不可能有完全相同的记录的,但是结果集就不一样了。要是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中只能使用一次,而且必须写在第一个字段的前面

错误示例


1410

被折叠的 条评论
为什么被折叠?



