一道关于删除数据表中重复数据的笔试题

转载 2016年08月28日 22:02:21
一张存放学生学号、姓名、课程以及成绩的数据表,设计将同一学号的记录只保留一条


结果如下图所示





 我的答案:

[sql] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. CREATE TABLE IF NOT EXISTS `student` (  
  2. `stu_no` int unsigned NOT NULL DEFAULT 0,  
  3. `stu_name` varchar(20) not null DEFAULT '',  
  4. `scheme` varchar(20) not null DEFAULT '',  
  5. `grade` int unsigned not null DEFAULT 0  
  6. )ENGINE=InnoDB DEFAULT CHARSET=utf8 ;  
  7.   
  8. INSERT INTO `student` VALUES (1001, '张三''数学', 90);  
  9. INSERT INTO `student` VALUES (1002, '李四''英语', 80);  
  10. INSERT INTO `student` VALUES (1003, '王五''语文', 100);  
  11. INSERT INTO `student` VALUES (1001, '张三''数学', 90);  
  12. INSERT INTO `student` VALUES (1002, '李四''英语', 80);  
  13. INSERT INTO `student` VALUES (1003, '王五''语文', 100);  
  14. INSERT INTO `student` VALUES (1001, '张三''数学', 90);  
  15. INSERT INTO `student` VALUES (1002, '李四''英语', 80);  
  16. INSERT INTO `student` VALUES (1003, '王五''语文', 100);  
  17.   
  18. CREATE TABLE `student_2` LIKE `student`;  
  19.   
  20. ALTER TABLE `student_2` ADD CONSTRAINT uk_stu_no UNIQUE(`stu_no`);  
  21.   
  22. INSERT IGNORE INTO `student_2` SELECT * FROM `student`;  
  23.   
  24. DROP TABLE `student`;  
  25.   
  26. ALTER TABLE `student_2` RENAME TO `student`;   

或者

[sql] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. CREATE TABLE IF NOT EXISTS `student` (  
  2. `stu_no` int unsigned NOT NULL DEFAULT 0,  
  3. `stu_name` varchar(20) not null DEFAULT '',  
  4. `scheme` varchar(20) not null DEFAULT '',  
  5. `grade` int unsigned not null DEFAULT 0  
  6. )ENGINE=InnoDB DEFAULT CHARSET=utf8 ;  
  7.   
  8. INSERT INTO `student` VALUES (1001, '张三''数学', 90);  
  9. INSERT INTO `student` VALUES (1002, '李四''英语', 80);  
  10. INSERT INTO `student` VALUES (1003, '王五''语文', 100);  
  11. INSERT INTO `student` VALUES (1001, '张三''数学', 90);  
  12. INSERT INTO `student` VALUES (1002, '李四''英语', 80);  
  13. INSERT INTO `student` VALUES (1003, '王五''语文', 100);  
  14. INSERT INTO `student` VALUES (1001, '张三''数学', 90);  
  15. INSERT INTO `student` VALUES (1002, '李四''英语', 80);  
  16. INSERT INTO `student` VALUES (1003, '王五''语文', 100);  
  17.   
  18. CREATE TABLE `student_2` LIKE `student`;  
  19.   
  20. #ALTER TABLE `student_2` ADD CONSTRAINT uk_stu_no UNIQUE(`stu_no`);  
  21.   
  22. INSERT IGNORE INTO `student_2` SELECT * FROM `student` GROUP BY `stu_no`;  
  23.   
  24. DROP TABLE `student`;  
  25.   
  26. ALTER TABLE `student_2` RENAME TO `student`;   

一道关于删除数据表中重复数据的笔试题

一张存放学生学号、姓名、课程以及成绩的数据表,设计将同一学号的记录只保留一条 如下图所示...
  • wangshiliang1990
  • wangshiliang1990
  • 2014年05月13日 18:43
  • 340

数据库中删除表中重复数据的一点心得

在一个表中有一个自动增长列c1,同时又有两个外健列分别指向另外两个标的主键c2,c3,突然有一天我想让c2与c3组合为一个唯一键,这个时候先必须删除关于c2与c3的重复键(因为c1不可能重复),这就是...
  • tz_xiong
  • tz_xiong
  • 2007年10月26日 01:27
  • 3908

删除数据表中的重复数据

删除数据表中的重复数据,情况有两种:一是数据表中的所有字段都相同,我们只想保存当中的一条记录,则进行如下的操作:1)创建一个结构和原表相同的记录,并将原表中的唯一数据放入 CREATE TABLE 临...
  • winson4282000
  • winson4282000
  • 2008年02月27日 22:26
  • 369

oracle删除数据表中重复数据

delete person_num_base_t a where rowid
  • ShulingLiu
  • ShulingLiu
  • 2011年03月21日 17:37
  • 306

新浪微博笔试题

这个还是去年校招时候做的笔试题了,一面之后发过来这样两道题,回复之后就被告知通过面试了。虽然自己写的不专业,但是现在翻出来看看,当时还是写得比较认真。竞品分析、数据分析这种,还是应该每周写一点锻炼锻炼...
  • maryzbf
  • maryzbf
  • 2015年09月06日 17:27
  • 1775

postgre删除数据表重复数据

select distinct * into t_sup_supcomm_copy from t_sup_supcomm; drop table t_sup_supcomm; select * i...
  • wenhuaguisu
  • wenhuaguisu
  • 2017年03月16日 10:41
  • 139

删除掉mysql数据库某张表中完全重复数据的方法

需要处理的表大概包含400万条数据,首次运行php代码之后发现完全重复的数据有很多,原因可能是导入时重复导入某张表(当时一起导入超过30份数据到同一个表可能出错),也有可能拿到的数据中存在重复数据,因...
  • liujl6
  • liujl6
  • 2014年12月27日 00:28
  • 1800

MYSQL中快速高效删除大数据表中的重复数据

废话不多说,只说重点! 网上说的基本上都是不靠谱的,要么每次执行只能删一条重复数据(如果重复1000次是不是准备执行1000次?),要么是速度慢的要死(删除时用in导致索引失效)。 我的方法是用存储过...
  • wuyang528378
  • wuyang528378
  • 2015年11月10日 17:50
  • 1755

mysql删除表数据中某个唯一字段出现重复的数据

数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较。如果仅仅是查找数据库中name不重复的字段,很容易: SELECT min(`id`),`name` FROM `table` GRO...
  • qd824692746
  • qd824692746
  • 2016年04月25日 11:57
  • 1318

Mysql大数据表删除重复数据

对没有索引的字段进行查询重复时如果使用select name from table where name in(select name from table group by name having ...
  • wantken
  • wantken
  • 2014年06月17日 14:47
  • 326
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一道关于删除数据表中重复数据的笔试题
举报原因:
原因补充:

(最多只允许输入30个字)