本题目要求编写UPDATE语句,
把所有低于75分的女生成绩提高5%;
表结构:
请在这里写定义表结构的SQL语句。例如:
CREATE TABLE `stu` (
`sno` char(4) NOT NULL,
`sname` char(8) NOT NULL,
`sex` tinyint(1) DEFAULT NULL,
`mno` char(2) DEFAULT NULL,
`birdate` datetime DEFAULT NULL,
`memo` text,
PRIMARY KEY (`sno`)
);
CREATE TABLE `sc` (
`sno` char(4) NOT NULL,
`cno` char(4) NOT NULL,
`grade` decimal(6,1) DEFAULT NULL,
PRIMARY KEY (`sno`,`cno`),
CONSTRAINT `fk_sc_sno` FOREIGN KEY (`sno`) REFERENCES `stu` (`sno`)
)
表样例
请在这里给出上述表结构对应的表样例。例如
stu
表:
sc
表:
输出样例:
例如:
修改女生成绩后的sc
表如下:
思路:
1. 使用UPDATE语句指定要更新的表为成绩表(sc)。
2. 使用SET子句将成绩(grade)字段更新为原值乘以1.05,即增加5%。
3. 使用WHERE子句筛选出成绩低于75的记录,并且学生的性别为女性(sex=0)。
4. 子查询部分(sno in (select sno from stu where sex=0))是为了获取性别为女性的学生的学号(sno)。
5. 执行该更新语句后,满足条件的记录的成绩将会增加5%。
6.请注意,执行更新操作前请确保已经备份数据或确认操作的正确性,以免造成不可逆的数据损失
update sc
set grade=grade*1.05
where grade<75 and sno in(select sno from stu where sex=0)