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

一张存放学生学号、姓名、课程以及成绩的数据表,设计将同一学号的记录只保留一条


结果如下图所示





 我的答案:

[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`;   
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值