二张表,sx(学号,姓名),sy(学号,年龄),学号是主键,sx有100条记录,sy有30条记录。问题一:
运行如下sql语句后,生成的视图stu中记录数不是100,而是超过100,可能是什么原因?
create view stu(学号,姓名,年龄)
as
select sx.学号,姓名,年龄
from sx,sy
where sx.学号=sy.学号(+);问题二:
在表sx_sy(学号,姓名,年龄)已经有sx的100条记录的情况下,我想把sy中的年龄记录插入sx_sy表,
用语句update sx_sy set 年龄=(select 年龄 from sy where sy.学号=sx_sy.学号)可以实现;
那么,是否可以用insert实现?类似下面的sql语句为什么不行(报错,标识符无效)?
insert into sx_sy(年龄)select 年龄 from sy where sx_sy.学号=sy.学号;谢谢!
运行如下sql语句后,生成的视图stu中记录数不是100,而是超过100,可能是什么原因?
create view stu(学号,姓名,年龄)
as
select sx.学号,姓名,年龄
from sx,sy
where sx.学号=sy.学号(+);问题二:
在表sx_sy(学号,姓名,年龄)已经有sx的100条记录的情况下,我想把sy中的年龄记录插入sx_sy表,
用语句update sx_sy set 年龄=(select 年龄 from sy where sy.学号=sx_sy.学号)可以实现;
那么,是否可以用insert实现?类似下面的sql语句为什么不行(报错,标识符无效)?
insert into sx_sy(年龄)select 年龄 from sy where sx_sy.学号=sy.学号;谢谢!
问题2:sql语句有问题
应该这样:insert into sx_sy(年龄)select sy.年龄 from sy,sx_sy where sx_sy.学号=sy.学号;
运行如下sql语句后,生成的视图stu中记录数不是100,而是超过100,可能是什么原因?
create view stu(学号,姓名,年龄)
as
select sx.学号,姓名,年龄
from sx,sy
where sx.学号=sy.学号(+);-------------------
造成这个问题的原因是sy中存在重复记录
问题二:
在表sx_sy(学号,姓名,年龄)已经有sx的100条记录的情况下,我想把sy中的年龄记录插入sx_sy表,
用语句update sx_sy set 年龄=(select 年龄 from sy where sy.学号=sx_sy.学号)可以实现;
那么,是否可以用insert实现?类似下面的sql语句为什么不行(报错,标识符无效)?
insert into sx_sy(年龄)select 年龄 from sy where sx_sy.学号=sy.学号;------------------
语法不正确
就算你连语法修改正确了,可以插入,也会造成重复记录
update语句是更新表中的已有记录
insert语句是往表中新增记录