鱼C论坛

 找回密码
 立即注册
查看: 2849|回复: 12

数据库更新数据

[复制链接]
发表于 2020-4-15 16:17:55 | 显示全部楼层 |阅读模式
60鱼币
SQL SERVER数据库
题目:把成绩低于该门课程的平均成绩的学生的成绩改为跟该门课程平均分一样;
表有  C表(CNO,CN)
        S表(SNO,SN,SEX,AGE,DEPT)
        SC表(SNO,CNO,SCORE)
数据库小白 请问各位大佬这个咋写的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-15 16:33:08 From FishC Mobile | 显示全部楼层
帮顶,只学过sun公司的两款产品,微软的这个没机会学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-15 17:29:48 From FishC Mobile | 显示全部楼层
倒戈卸甲 发表于 2020-4-15 16:33
帮顶,只学过sun公司的两款产品,微软的这个没机会学

学校学这个 本来说安装MySQL的 不过应该用法都差不多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-15 21:04:08 | 显示全部楼层
wuliangtdi 发表于 2020-4-15 17:29
学校学这个 本来说安装MySQL的 不过应该用法都差不多

可以说,各种数据库sql语法应该是大同小异,但也不能完全一致:

你这个问题  我在mysql上试验通过(我不会你说这个sqlserver)
set @c=(select AVG(other) from wordb);
update wordb set other=@c where other<@c;
我这里的other字段就是一些double类型数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-15 21:07:16 From FishC Mobile | 显示全部楼层
wp231957 发表于 2020-4-15 21:04
可以说,各种数据库sql语法应该是大同小异,但也不能完全一致:

你这个问题  我在mysql上试验通过(我 ...

万一有很多门的课程  这样的话应该是不行的吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-16 10:21:17 | 显示全部楼层
各位i大佬,能否提供一些思路 不需要啥代码 思路对的就可以啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-17 17:18:32 | 显示全部楼层
CREATE TABLE SC_AVG_SCORE
(
        CNO VARCHAR(255) PRIMARY KEY(CNO),
        AVG_SCORE FLOAT
)

INSERT INTO SC_AVG_SCORE(CNO,AVG_SCORE)
        SELECT CNO,AVG(SCORE)
        FROM SC
        GROUP BY CNO;

SELECT * FROM SC;

UPDATE SC SET SC.SCORE = SC_AVG_SCORE.AVG_SCORE FROM SC,SC_AVG_SCORE
        WHERE SC_AVG_SCORE.CNO = SC.CNO AND SC.SCORE < SC_AVG_SCORE.AVG_SCORE;

SELECT * FROM SC;

或者
SELECT * FROM SC;

UPDATE SC SET SC.SCORE = SC_AVG_SCORE1.AVG_SCORE
                FROM SC,(        SELECT CNO,AVG(SCORE) AS AVG_SCORE
                                        FROM SC
                                        GROUP BY CNO
                                ) AS SC_AVG_SCORE1
                                WHERE SC_AVG_SCORE1.CNO = SC.CNO AND SC.SCORE < SC_AVG_SCORE1.AVG_SCORE;

SELECT * FROM SC;

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 14:19:39 From FishC Mobile | 显示全部楼层
给update加个where条件
update 表 set 列.成绩=平均成绩分数 where 学生成绩<平均成绩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 14:21:55 From FishC Mobile | 显示全部楼层
update sc set score = 平均成绩分数 where score<平均分数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 14:22:49 From FishC Mobile | 显示全部楼层
update操作的时候谨慎操作,都是教训
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 14:26:09 From FishC Mobile | 显示全部楼层
但是这个只能针对单表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-25 15:00:13 | 显示全部楼层
一世长安呢 发表于 2020-4-25 14:19
给update加个where条件
update 表 set 列.成绩=平均成绩分数 where 学生成绩

我加了啊 你看后面SC_AVG_SCORE1.CNO = SC.CNO AND SC.SCORE < SC_AVG_SCORE1.AVG_SCORE
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-25 18:27:21 | 显示全部楼层
wuliangtdi 发表于 2020-4-25 15:00
我加了啊 你看后面SC_AVG_SCORE1.CNO = SC.CNO AND SC.SCORE < SC_AVG_SCORE1.AVG_SCORE

超出我的知识范围了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-29 08:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表