数据更新主要为增删改查操作,需要记住语法结构。
下面开始做题。
- 1
SQL更新:修改“高等数学”课程倒数三名成绩,在原来分数上减5分。
学生数据库db_student包括三个数据表student(学生表)、course(课程表)和sc(选课表)。表结构如下:
1、student(学生表):
SNO学号CHAR(7)
SNAME姓名CHAR(10)
SSEX性别CHAR(2)
SAGE年龄SMALLINT
SDEPT所在系 VARCHAR(20)
2、course(课程表)
CNO课程号CHAR(10)
CNAME课程名VARCHAR(20)
CCREDIT学分SMALLINT
SEMSTER学期SMALLINT
PERIOD学时SMALLINT
3、sc(选课表)
SNO 学号CHAR(7)
CNO 课程号CHAR(10)
GRADE 成绩 SMALLINT
UPDATE sc
SET grade=grade-5
WHERE cno IN (SELECT cno FROM course WHERE cname='高等数学')
and grade is not null
ORDER BY grade LIMIT 3;
- 2
SQL更新:删除-删除“吴宾”的所有成绩记录
student:
sc:
course:
DELETE FROM sc WHERE sno IN(SELECT sno FROM student where sname='吴宾');
- 3
SQL删除:删除计算机系学生的所有成绩记录。
student表:
sc表
delete from sc
where sno in (select sno from student where sdept='计算机系');
- 4
SQL删除:删除“9531102”学生“C05”课程的成绩记录
表结构如第一题。
DELETE FROM sc
WHERE cno='C05' AND sno='9531102';
- 5
修改borrow表增加一列;修改日期数据(两条语句完成)
修改borrow表增加借书日期bdate列,列类型为datetime;
将机械系的同学的借书日期值修改为还书日期的前两个月的时间。
用两条语句完成,日期的修改可以用date_add( )或adddate( )。
原表结构如下:
card(借书卡) 表:cno 卡号,name 姓名,class 班级
borrow(借书记录)表 :cno 借书卡号,bno 书号,rdate 还书日期
alter table borrow
add column bdate datetime;
update borrow
set bdate = date_add(rdate,interval - 2 month)
where cno in
(select cno
from card
where deptName = '机械系');
- 6
SQL更新:将所有学生的年龄增加1岁
表结构如第一题。
UPDATE student SET sage=sage+1;
- 7
插入图书信息,将图书信息插入到book表中,其中书号 7, 书名 组合数学, 作者 刘迪, 价格 36.70, 数量 37。
表结构如下:
book(图书) 表:bno 书号,bname 书名,author 作者,price 单价,quantity 库存数
insert into book
values(7,'组合数学','刘迪',36.70,37);
- 8
SQL插入:在学生表Student中插入数据
Sno:9512102 Sname:刘晨 Ssex:男 Sage:20 Sdept:计算机系
表结构如下:student(学生表)
INSERT INTO student
VALUES('9512102','刘晨','男',20,'计算机系');
- 9
SQL插入:在课程表Course中插入数据
Cno:C06 Cname:数据结构 Ccredit:5 Semster:4
表结构如下:course(课程表)
INSERT INTO course
VALUES('C06','数据结构',5,4,NULL);
- 10
SQL更新:修改-“张海”的“计算机导论”课程成绩为70。
student:
sc:
course:
UPDATE sc
SET grade=70
WHERE sno IN (SELECT sno FROM student WHERE sname='张海')
AND cno IN (SELECT cno FROM course WHERE cname='计算机导论');
- 11
SQl删除:删除“张海”的所有成绩记录
表结构如第一题。
DELETE FROM sc
WHERE sno IN(SELECT sno FROM student WHERE sname='张海');
- 12
SQl更新:将所有平均分为75分以上的学生的各门课成绩在原来基础上加5分
表结构如第一题。
update sc
set grade = grade + 5
where sno in
(
select sno from
(
select sno from sc
group by sno
having avg(grade) >= 75
) as A
);
- 13
向student表中一次插入多行数据
一次向student表中插入两条记录,其中王大力的系别用缺省值赋值。
两行数据的学号,姓名,性别,年龄和系别分别如下:
9520103,王敏,女,20,信息系;
9520104,王大力,男,19。
student表结构:
insert into student values('9520103','王敏','女',20,'信息系'),('9520104','王大力','男',19,'计算机系');
- 14
SQL更新:修改“9512101”的“C01”课程成绩为85
表结构如第一题。
UPDATE sc SET grade=85 WHERE cno='C01' AND sno='9512101';
- 15
在sc表中插入计算机系所有学生C01课程的选课记录。
表结构如第三题。
INSERT INTO sc(sno,cno)
SELECT sno,'C01' FROM student
WHERE sdept='计算机系' ;
- 16
SQL删除:删除“数据库基础”的全部记录(包括课程信息,成绩信息)
表结构如第一题。
delete from sc where cno in(select cno from course where cname='数据库基础' );
delete from course where cname='数据库基础';
- 17
SQL更新:修改计算机系李勇的VB课程成绩为60。
表结构如第十题。
update sc set grade=60
where sno in
(select sno from student where sname='李勇' and sdept='计算机系')
and cno in
(select cno from course where cname='VB');
- 18
使用insert set 向sc表中插入一条选课记录,姓名为周璐的学生,课程名为数据库原理与应用的课程的选课记录。
表结构如第十题。
insert into sc
set sno=(
select sno
from student
where sname='周璐'),
cno=(
select cno
from course
where cname='数据库原理与应用');
- 19
SQL插入:插入一条学生数据(9913101,王红,女)
表结构如第一题。
insert into student(sno,sname,ssex)
values('9913101','王红','女');
- 20
SQL插入:在选课表SC中插入95211班学生选修C04的选课信息
提示:多行数据插入,插入的数据的sno从student表中查询而来,插入的cno为“C04”
表结构如第一题。
INSERT INTO sc(sno,cno)
SELECT sno,cno FROM student,course
WHERE sno LIKE '95211%' and cno='C04';