实验内容
根据数据库
db_student
中的tb_student
表、tb_score
、tb_course
,完成下列更新语句
表结构
- tb_student(sno,sn,dept,sex,birthday,polity)
- tb_score(sno,cno,score)
- tb_cource(cno,cn,ct,th)
任务题解
任务一
向学生表中插入一条记录,学号为 00000000,姓名为 XXX,性别为 X 的记录。
INSERT INTO tb_student(sno,sn,sex) VALUES('00000000','XXX','X')
任务二
向学生有中插入一条记录,各字段值依次为:00000000,name,sex,department,XXXX-XX-XX,polity。
INSERT INTO tb_student(sno,sn,sex,dept,birthday,polity) VALUES('00000000','name','sex','department','XXXX-XX-XX','polity')
任务三
在课程表中添加一门新课程,其信息为:(‘C8’,‘计算机新技术’,‘XXX’)。
ALTER TABLE tb_course ADD na varchar(10) null INSERT INTO tb_course(cno,cn,na) VALUES('c8','计算机新技术','XXX')
任务四
在选修关系表 SC 中添加所有学生对’C8’课程的选修关系记录,成绩暂定为 60,请用一条命令完成本批量添加任务。
INSERT INTO tb_score(sno,cno,score) SELECT sno,'c8',60 -- cno/score 定值 from tb_student
任务五
将女生的所有数据形成一张新表,表名为 student_girl。
select * INTO student_girl FROM tb_student WHERE sex='女'
任务六
将学生表中姓名为 XX 同学,性别改为女,出生日期为 1998-1-1。
UPDATE tb_student SET sex='女',birthday='1998-1-1' WHERE sn='XX'
任务七
将 tb_score 表中的 c04 的课程折合为 60%并加上 40 分。
UPDATE tb_score SET score=score*0.6+40 WHERE cno='c04'
任务八
将选修数据结构课程的学生成绩增加 15 分。
UPDATE tb_score SET score=score+15 WHERE cno=(SELECT cno FROM tb_course WHERE cn='数据结构')
任务九
把选“计算机新技术”课程的男学生的成绩暂全部初始化重新设置为 0。
UPDATE tb_score SET score=0 WHERE sno IN (SELECT sno FROM tb_student WHERE sex='男') AND cno=(SELECT cno -- 两个并列关系子查询 FROM tb_course WHERE cn='计算机新技术')
任务十
删除学生表中所有姓张的同学。
DELETE FROM tb_student WHERE LEFT JOIN(sn,1)='张' -- 或 WHERE sn LIKE '张%'
任务十一
删除 student 表中不及格同学的所有信息。
DELETE FROM tb_student WHERE sno=(SELECT DISTINCT sno FROM tb_score WHERE score<60)
任务十二
XXX 同学的学生信息及其选课情况等全部删除。
-- 删除顺序颠倒会导致成绩表中无法找到XXX学生学号 -- 1.删除成绩表XXX成绩信息 DELETE FROM tb_score WHERE sno=(SELECT sno FROM tb_student WHERE sn='XXX') -- 2.删除XXX学生信息 DELETE FROM tb_student WHERE sn='XXX'
任务十三
删除学生表中所有学生信息(两种方法)。
-- method1 DELETE FROM tb_student -- method2 TRUNCATE TABLE tb_student
在修改表信息书写 SQL
语句时,遵循 SET
、UPDATE
、WHERE
的书写顺序
即首先设置值,然后选定作用范围,最后增加限制条件。这样思路会更加清晰