书接上回
做完了查询操作后,接着学习数据操纵吧
#1.将所有选修 001 课程的同学的成绩增加 5 分。
obviously,使用
update<表> set <语句> where <条件>
update Score
set score=score+5
where courseNo='001';
#2.将李小勇同学选修课程的成绩增加 30%。
只要注意where后面的范围,我这里使用的是嵌套。
update Score
set score=1.3*score
where courseNo in(select courseNo from Score
where studentNo in(select studentNo from Student where studentName='李小勇'));
#3.将每个班级的学生人数填入到班级表的 ClassNum 列中。
这里where后面我用的and
update Class
set classNum=(
select count(studentNo)
from Student
where Student.classNo=Class.classNO
group by Student.classNo);
#4.在 Student 表中添加一条学生记录 (学号:0800016,姓名:张三,籍贯: 福建)。
insert into Student(studentNo,studentName,[native])
values('0800016','张三','福建');
#5.求出每门课程的选修人数,把结果存放在新表 CountC 中。(用 SELECT INTO 语句实现)
Select count(studentNo) as '选修人数'
into CountC
from Score
group by courseNo;
#6.求出每个学生的选修门数和平均分,把结果存放在新表 CountSC 中。(用INSERT SELECT 语句实现)
创建新表CountS
Create table CountSC(
studentNo char(7) not null.选修门数 char(7),平均分 char(20));
接着插入数据,这里要注意CountSC有三个列,在insert into中select 就要对应三个列。
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。
Insert into CountSC
select distinct studentNo,count(courseNo)as '选修门数',avg(score)as'平均分'
from Score
group by studentNo;
#7.删除刘方晨同学所有的选修记录
使用DELETE
不能写 delete * !!
Delete from Score
where studentNo=(select studentNo from Student where studentName='刘方晨');
#8.删除选修了“操作系统”课程的选课记录。
这和上面的7有异曲同工之秒,还是很简单的
Delete from Score
where courseNo=(select courseNo from Course where courseName='操作系统');
我们知道还有一个删除是drop,关于delete和drop之间的区别,详情见大佬的文章里:
sql数据库中的 delete 与drop的区别_sql中drop和delete区别-CSDN博客
END——