深圳尚学堂:Java培训中的小问题(三)

1. 删除一张表中所有数据的方式?

1.truncate table命令将快速删除数据表中的所有记录

2.delete产生rollback,如果删除在数据量的表速度会很慢,同时会占用很多的rollback,segments.truncate是DLL操作,不产生 rollback,速度会快一些。

2. 用一条sql语句取出所有姓名有重复的学员姓名和重复的记录数.

select name, count(*) from student group by name

having count(*) > 1 order by count(*) desc;

3. 去除oracle数据库 表中重复数据应有如下两种方法:

方法一:创建新表删除旧表法

1)create table student1 as select distinct id, name, score from student;

2)drop table student;

3)rename student1 to student;

方法二:使用rowid(地址)伪列

删除伪列地址除了最大地址值以外的记录

delete from temp where rowid not in (select max(rowid) from temp group by id);

删除伪列地址除了最大地址值以外的记录

delete from temp where rowid not in (select min(rowid) from temp group by id);

原文链接:,转发请注明来源!