数据库 第八次实验 数据更新

2021011212

针对stu数据库中的student、course和sc三个表实现以下查询:
1、插入一门新课程记录
    课程号:8,课程名:C程序设计,学分:3。

INSERT  INTO courselyu(cno,cname,ccredit)
         VALUES ('8', 'C程序设计', 3)


2、所有学生都选8号课程,将选课记录插入到SC中。需要把8的东西删掉,才可以用


INSERT  INTO sclyx(sno,cno)
SELECT sno,cno
FROM studentlyx,courselyu
WHERE cno='8'


3、将8号课程的学分改为4分。

 UPDATE courselyu
 SET    courselyu.ccredit=4
 WHERE  courselyu.cno='8'

 

4、将所在系为‘cs’并且年龄小于20岁的学生的所在系改为‘ma’。

UPDATE studentlyx
SET sdept='MA'
WHERE sdept='CS 'AND sage<20

5、删掉所有年龄小于20岁并且所在系为‘is’的学生记录。


6、将邓军所选课程的成绩都提高10分。

UPDATE sclyx
SET    grade=grade+10
WHERE  sno in
(select sno
From studentlyx
Where sname='邓军')


7、删除‘C程序设计’课程的选课记录。

DELETE from sclyx
Where cno in
(select cno
From courselyu
Where courselyu.cname='C程序设计' )


8、将年龄最小的学生的所在系去掉。

UPDATE studentlyx 
SET studentlyx.sdept=NULL
WHERE sage IN ( 
SELECT min_sage FROM ( 
SELECT MIN(sage) AS min_sage FROM studentlyx
					) AS a 
    )

 

 总结

 You can't specify target table 'studentlyx' for update in FROM clause  错误

它的意思是说,不能在同一语句中,先select出同一表中的某些值,再update这个表,即不能依据某字段值做判断再来更新某字段的值。

引用

 MySQL出现You can‘t specify target table for update in FROM clause错误的解决方法_一个写湿的程序猿的博客-优快云博客MySQL出现You can‘t specify target table for update in FROM clause错误的解决方法https://blog.youkuaiyun.com/qq_32727095/article/details/124492897

在做多表查询,或者查询的时候产生新的表的时候会出现这个错误:Every derived table must have its own alias(每一个派生出来的表都必须有一个自己的别名)。

引用

Every derived table must have its own alias(sql语句错误解决方法)_MonoWx的博客-优快云博客1. 在做多表查询,或者查询的时候产生新的表的时候会出现这个错误:Every derived table must have its own alias(每一个派生出来的表都必须有一个自己的别名)。eg:delete from stock where (org_id,material_id,state) in (SELECT * from (select org_id,ma...https://blog.youkuaiyun.com/qq_32863631/article/details/83024322

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值