mysql练习

1.学生表 如下:
自动编号   学号   姓名 课程编号 课程名称 分数
1        2005001 张三 0001     数学    69
2        2005002 李四 0001      数学    89
3        2005001 张三 0001      数学    69
删除除了自动编号不同, 其他都相同的学生冗余信息。 

delete tablename where 自动编号 not in(select min( 自动编号) from tablename group by学号, 姓名, 课程编号, 课程名称, 分数)

2.删除表中自动编号不同,内容重复的行

+--------------+---------+--------+--------------+--------------+--------+
| 自动编号     | 学号    | 姓名   | 课程编号     | 课程名称     | 分数   |
+--------------+---------+--------+--------------+--------------+--------+
|            1 | 2005001 | 张三   | 0001         | 数学         |     69 |
|            2 | 2005002 | 李四   | 0001         | 数学         |     89 |
|            3 | 2005001 | 张三   | 0001         | 数学         |     69 |
+--------------+---------+--------+--------------+--------------+--------+

delete from tablename where 自动编号 not in (select * from (select min(自动编号) from tablename group by 学号,课程编号,课程名称, 分数) tmp);

 

### MySQL 练习题与学习资源 以下是关于 MySQL 的一些练习题和学习资源推荐: #### 一、MySQL 练习题 1. **基础查询** 使用 EMP 和 DEPT 表,编写 SQL 查询来获取所有部门的名称及其对应的员工数量。可以参考表结构的学习材料[^1]。 2. **件过滤** 编写一 SQL 查询语句,返回 `score` 表中课程 ID 属于特定范围的学生记录。此类型的题目可以通过调整 `WHERE` 件实现[^2]。 3. **子查询应用** 利用子查询完成更复杂的逻辑处理。例如,找出薪资高于平均薪资的所有员工的信息。这涉及到了嵌套查询的概念[^3]。 4. **多表联结** 结合多个表的数据进行分析。比如,找到那些其直属上司工资大于 3000 的雇员名单及相关信息。这是一个典型的多表连接案例[^4]。 ```sql -- 示例:求出员工领导的薪水超过3000的员工名称与领导名称 SELECT e.empno AS 员工编号, e.ename AS 员工, m.ename AS 领导, m.sal AS 领导薪资, d.dname AS 部门名 FROM emp e JOIN emp m ON e.mgr = m.empno JOIN dept d ON e.deptno = d.deptno WHERE m.sal > 3000; ``` #### 二、MySQL 学习资源 - 官方文档:始终是最权威的第一手资料,涵盖了从安装配置到高级特性的全面介绍。 - 在线教程网站如 W3Schools 提供了简单易懂的操作指南适合初学者快速上手。 - 各大 MOOC 平台上的视频课程能够提供更加直观的教学体验帮助理解抽象概念。 - 社区论坛和技术博客也是不可忽视的知识宝库,在这里可以发现许多实际开发中的技巧分享。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值