要使用包括如下三个表的“教学管理”数据库JXGL:

(1)学生表Student,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno。

(2)课程表Course,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno。

(3)学生选课SC,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:SC(Sno,Cno,Grade),其中主码为(Sno,Cno)。

基于“教学管理”数据库JXGL,试用SQL的查询语句表达下列更新操作:

1.在学生表Student和学生选课表SC中分别添加如下两表中的记录

INSERT INTO Student VALUES('98010','赵青江',18,'男','CS')
INSERT INTO Student VALUES('98011','张丽萍',19,'女','CH')
INSERT INTO Student VALUES('98012','陈景欢',20,'男','IS')
INSERT INTO Student VALUES('98013','陈婷婷',16,'女','PH')
INSERT INTO Student VALUES('98014','李军',16,'女','EH') --注意‘李军’两个字之间没有空格
INSERT INTO SC VALUES('98010','1',87)
INSERT INTO SC VALUES('98010','2',null)
INSERT INTO SC VALUES('98010','3',80)
INSERT INTO SC VALUES('98010','4',87)
INSERT INTO SC VALUES('98010','6',85)
INSERT INTO SC VALUES('98011','1',52)
INSERT INTO SC VALUES('98011','2',47)
INSERT INTO SC VALUES('98011','3',53)
INSERT INTO SC VALUES('98011','5',45)
INSERT INTO SC VALUES('98012','1',84)
INSERT INTO SC VALUES('98012','3',null)
INSERT INTO SC VALUES('98012','4',67)
INSERT INTO SC VALUES('98012','5',81)

2.备份Student表到TS中

SELECT * INTO TS FROM Student

3.给IS系的学生开设7号课程,建立所有相应的选课记录,成绩暂定为60分

INSERT INTO SC
SELECT Sno,'7',60 --开设的课程号为7,成绩暂定为60
FROM Student
WHERE Sdept='IS'

4.把年龄小于等于16的女生记录保存到表TS中

INSERT INTO TS
SELECT *
FROM Student
WHERE Sage<=16 AND Ssex='女'

5.在表Student中检索每门课均不及格的学生学号、姓名、年龄、性别及所在系等信息,并把检索到的信息存入TS表中

INSERT INTO TS
SELECT *
FROM Student
WHERE Sno IN(SELECT SnoFROM SCGROUP BY SnoHAVING MAX(Grade)<60) --所选所有课程最高成绩小于60分,说明该同学每门课均不及格

6.将学号为“98011”的学生姓名改为’刘华’,年龄增加1岁

UPDATE Student
SET Sname = '刘华'
WHERE Sno = '98011'  --分两步操作来完成更新
UPDATE Student
SET Sage = Sage+1
WHERE Sno = '98011'

7.把选修了“数据库系统”课程而成绩不及格的学生的成绩全改为空值(NULL)

UPDATE SC
SET Grade = null --注意null不可以加单引号
WHERE Grade <60 AND Cno IN(SELECT CnoFROM CourseWHERE Cname='数据库系统')

8.将Student的前4位学生的年龄均增加1岁

UPDATE Student
SET Sage = Sage+1
WHERE Sno IN(SELECT TOP(4) Sno --用top筛选出前4位学生FROM Student)

9.学生王林在3号课程考试中作弊,该课成绩改为空值(NULL)

UPDATE SC
SET Grade = null
WHERE Cno = '3' AND Sno IN(SELECT SnoFROM StudentWHERE Sname = '王林')

10.把成绩低于总平均成绩的女同学成绩提高5%

UPDATE SC
SET Grade = Grade * 1.05
WHERE Grade<(SELECT AVG(Grade) FROM SC) --成绩低于总平均成绩
AND Sno IN(SELECT Sno FROM Student WHERE Ssex = '女')  --该同学为女同学

11.在基本表SC中修改课程号为“2”号课程的成绩,若成绩小于等于80分时降低2%,若成绩大于80分时降低1%(用两个UPDATE语句实现)

#方法1 用两个UPDATE语句实现
UPDATE SC
SET Grade = Grade*0.98
WHERE Cno = '2' AND Grade<=80
UPDATE SC
SET Grade = Grade*0.99
WHERE Cno = '2' AND Grade>80#方法2 用一个UPDATE语句实现
UPDATE SC
SET Grade =
CASE
WHEN Grade<=80 THEN Grade*0.98
WHEN Grade>80 THEN Grade*0.99
END
WHERE Cno = '2'

12.利用“SELECT INTO ……”命令来备份Student、SC、Course三表,备份表名分别是TSTUDENT、TSC、TCourse

SELECT * INTO TSTUDENT FROM Student;
SELECT * INTO TSC FROM SC;
SELECT * INTO TCourse FROM Course;

13.在基本表SC中删除尚无成绩的选课元组

DELETE SC
WHERE GRADE IS NULL

14.把“钱横”同学的选课情况全部删去

DELETE SC
WHERE Sno IN(SELECT SnoFROM StudentWHERE Sname = '钱横')

15.能删除学号为“98005”的学生记录吗?一定要删除该记录的话,该如何操作?给出操作命令

DELETE SC
WHERE Sno = '98005'

16.清空STUDENT与Course两表

DELETE SC  --在清空STUDENT之前需要将SC选课表一并删除(外键约束条件)
DELETE STUDENT
DELETE COURSE

17.如何又从备份表中恢复所有的三表

INSERT INTO STUDENT SELECT * FROM TSTUDENT
INSERT INTO COURSE SELECT * FROM TCOURSE
INSERT INTO SC SELECT * FROM TSC

18.删除姓“张”的学生记录

DELETE SC --完整性约束条件要求先删除SC关系表中姓“张”的学生选课记录
WHERE Sno IN(SELECT SnoFROM StudentWHERE Sname LIKE '张%')
DELETE Student
WHERE Sname LIKE '张%'

SQL语言——更新操作命令相关推荐

  1. SQL语言基础教学 | Mysql 入门教学

    SQL语言基础教学 SQL(Structured Query Language)是一种用于管理关系型数据库的标准语言.本文将介绍SQL语言基础,包括SQL语言的基本语法.数据类型.数据查询.数据更新等 ...

  2. 数据库SQL语言学习--数据查询(持续更新中)

    数据库SQL语言学习--数据查询(持续更新中) 上机练习1 1.              启动SQL Server 2008中的 SQL Server Management Studio. 2.   ...

  3. 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中)

    数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中) 上机练习2 1.              启动SQL Server 2008中的 SQL Server Management ...

  4. (长期更新)MySQL:常见的SQL语言

    (长期更新)MySQL:常见的SQL语言 以下的语言,都是我在初次学习MySQL时,遇到的常用SQL语言,对于基础的巩固有着很大的用处. 本次SQL代码的运行都在cmd上进行简单操作 在启动MySQL ...

  5. 数据库SQL语言学习--上机练习4(视图)(持续更新中)

    数据库SQL语言学习--上机练习4(视图)(持续更新中) 上机练习4 一.实验目的 1. 熟悉和掌握对数据表中视图的查询操作和 SQL 命令的使用: 2. 熟悉和掌握对数据表中视图的更新操作和 SQL ...

  6. 如何管理和使用哪些命令操作MySQL数据库?(基本操作,SQL语言,DDL,DML,DQL,DCL,Windows字符和图形界面MySQL安装)

    文章目录 前言 一:数据库基本操作命令 1.1:MySQL常用管理操作是哪些? 1.2:查看数据库列表信息的命令是? 1.3:查看数据库中的数据表信息命令是? 1.4:显示数据表的结构(字段)命令是? ...

  7. SQL语言基本语句介绍

        表的建立 关系数据库的主要特点之一就是用表的方式组织数据.表是SQL语言存放数据.查找数据以及更新数据的基本数据结构.在SQL语言中,表有严格的定义,它是一种二维表,对于这种表有如下规定: 1 ...

  8. 45岁的 SQL 语言要被淘汰了?

    在 SQL 被引入的 45 年中,它经历了许多数据库的诞生和消亡,也经历了许多数据处理方式的诞生和消亡. 以下为译文: 四十五年前,两位年轻的IBM研究人员在数据库上提出了一种新的语言,这是一种关系型 ...

  9. (Oracle学习笔记) sql语言

    文章目录 一.sql特点 二.sql语言分类 三.表空间 查询表空间 创建表空间 修改表空间名称 增加表空间大小 减小表空间大小 删除表空间 四.用户管理 查询用户 新建用户 修改用户口令 修改默认表 ...

最新文章

  1. matlab中的mkdir函数_科学网—Matlab中计算函数运行时间的三种方法及判断新建文件夹 - 张伟的博文...
  2. socket连接 代码
  3. 关于微信 setData 回调函数中的坑
  4. powerdesigner自动生成代码的修改
  5. P1476 休息中的小呆
  6. 两个特征是独立好还是正相关好_2021考研数学概率典型例题,都给你总结好啦!...
  7. [转载] java注释
  8. 如何让外网访问本地电脑(笔记本):路由映射篇
  9. 算法题存档20190127
  10. (99)FPGA最大延迟与最小延迟基础
  11. leetcode刷题:删除链表中的节点
  12. 剑指Offer的学习笔记(C#篇)-- 二叉树的下一个节点(好理解版本)
  13. AOJ2025 Eight Princes
  14. 【原创】我的辞职申请(2005-10-27)
  15. RESTful从入门到熟练,看完这篇就够了
  16. 老站长心语:网站由小到大的建站经历
  17. 设计模式之禅——模板方法模式(Template Method Pattern)
  18. 淘宝用户行为统计分析-python
  19. 湍流的特点是什么?雷诺数的物理阐释?
  20. Kasan - Linux 内核的内存检测工具

热门文章

  1. 四极管:IIC之AVR 24c64读写
  2. Office 365平台及其价值主张
  3. 数学术语的英汉对照(权威,全面)
  4. c++ 实现贪吃蛇(含技术难点解析和完整代码)
  5. IDEA: 自动优化导包 Auto Import
  6. spry使用视频_Spry Fox如何利用Cloud Build
  7. jQuery的jsTree入门使用
  8. 分享|2023年全球市场准入认证咨讯
  9. IC工程师入门必学《Verilog超详细教程》(附下载)
  10. CSS代码常用代码以及前端图片代码