insert 复合语句和 update 复合语句

时间:2023-02-05 02:19:17

有两个表

班级ID 班名
1 一年级
2 二年级
3 三年级  

学号 学生名 班级ID
1 aaa 1
2 bbb 2
     

请问我要插入学生,资料显示有:学号、学生名和班名

大概就是这样的思路:insert into student(学号,学生名,班级ID) values('3','ccc',(select 班级ID from class where 班名='三年级'))但是这个是错误的表达。

最后的表达是:insert into student(学号,学生名,班级ID) select '3','ccc',班级ID from class where 班名='三年级'


类似这样的复合语句,但是是update语句的复合语句:update student set 学生名='ddd',班级ID=(select 班名 from class where 班名='二年级') where 学号='2'

类似的例题还有:

1、f_lang(语言表)

l_code(语言简称) l_name(语言名称)
chi 汉语
eng 英语

2、f_publ(出版社表)

p_code(出版社编号) p_name(出版社名称)
1212 清华大学出版社
1313 机械工业出版社

3、f_books(图书表)

b_no(流水号) b_name(书名) b_lang(语种简称) b_publ(出版社编号)
1 数学 chi 1313
2 网络 eng 1313

有窗口获得的数据有:

数学
英语
清华大学出版社
(也就是更改了《数学》的“语种”和“出版社”两个字段)

个人开始的思路是:

update f_books set b_name='数学',b_lang=(select l_code from f_lang where l_name='英语'),b_publ=(select p_code from f_publ where p_name='清华大学出版社') where b_no='1'