使用SQL进行集合查询和数据维护

使用SQL进行集合查询和数据维护

[TOC]

1.分别查询“计科系学生”和“所有男生”的并集,交集和差集。(15分)

--并集

SELECT *

FROM Student

WHERE Sdept='计算机系'

UNION

SELECT *

FROM Student

WHERE Sex='男'

--交集

SELECT *

FROM Student

WHERE Sdept='计算机系'

INTERSECT

SELECT *

FROM Student

WHERE Sex='男'

--差集

SELECT *

FROM Student

WHERE Sdept='计算机系'

EXCEPT

SELECT *

FROM Student

WHERE Sex='男'

2.查询选修了“10001”号课程或选修了“10005”课程的学生学号。(5分)

SELECT Sno

FROM SC

WHERE Cno='10001'

UNION

SELECT Sno

FROM SC

WHERE Cno='10005'

3.查询同时选修了“10001”和“10005” 号课程的学生学号。(5分)

SELECT Sno

FROM SC

WHERE Cno='10001'

INTERSECT

SELECT Sno

FROM SC

WHERE Cno='10005'

4.查询选修了“10001”号课程,但没选“10005” 号课程的学生学号。(5分)

SELECT Sno

FROM SC

WHERE Cno='10001'

EXCEPT

SELECT Sno

FROM SC

WHERE Cno='10005'

Ø *维护操作*

5.在学生表中插入一条新的学生记录,数据可自拟。(注意,插入的数据需满足完整性约束)(5分)

INSERT INTO Student

VALUES('20030101','王芳','女',19 ,'计算机系')

6.插入一条选课记录,学号:10010118,课程号:20008,能否插入成功?为什么?(5分)

INSERT INTO SC(Sno,Cno)

VALUES('10010118','20008')

不能,错误提示:NSERT 语句与 FOREIGN KEY 约束"FK_Sno"冲突。Cno是外键,参照Course中Cno的数值,Course中不存在课程号为“20008”的课程记录。

7.查询每个系及其人数,将查询结果插入到新表Sdept_Count中(10分)

--创建表

CREATE TABLE Sdept_Count(

Sdept varchar(50),

SNum int

)

--插入操作

INSERT INTO Sdept_Count(Sdept,SNum)

SELECT Sdept,COUNT(Sno)

FROM Student

GROUP BY Sdept

8.将学生“徐庆”的所在系修改为“计算机系”(5分)

UPDATE Student

SET Sdept='计算机系'

WHERE Sname='徐庆'

9.将所有课程的学分Credit提高1分。(5分)

UPDATE Course

SET Credit=Credit+1

10.将“徐庆”同学的学号修改为“19010101”,能否修改成功?为什么?(5分)

UPDATE Student

SET Sno='19010101'

WHERE Sname='徐庆'

不能修改成功,因为该生在SC表中存在选课记录。

11.将选修了“计算机基础”这门课的学生成绩提高0.2(10分)

UPDATE SC

SET Score=Score*1.2

WHERE Sno IN(SELECT SNO

FROM SC

WHERE Cno=(SELECT Cno

FROM Course

WHERE Cname='计算机基础'))

12.删除学号为“10010118”的学生记录。能否成功删除?不能删除的原因?如何解决?(10分)

不能删除,原因是SC表中还存在外键的约束,即“10010118”的选课记录。如果要成功删除学生“10010118”,需要先删除其所有选课记录。

DELETE FROM SC

WHERE Sno='10010118'

``

DELETE FROM Student

WHERE Sno='10010118'

13.删除“计算机基础”这门课不及格的选课记录(10分)

DELETE FROM SC

WHERE Score<60 AND Cno=

(SELECT Cno

FROM Course

WHERE Cname='计算机基础')

14.把选课表SC清空。(5分)

DELETE FROM SC

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1).创建数据库 create database学生选课数据库 2).创建四张表 Create table Stu...
    blvftigd阅读 5,523评论 0 0
  • 一。数据库基本概念:数据、数据库。数据模型/DBMS(数据库管理系统)/DBS(数据库系统)二。数据库内部组成二维...
    S_s_s_a53f阅读 3,483评论 0 0
  • 单表查询 只在一个表中查询数据 多表查询 同时查询多个表 说明:这是在学生表student和成绩表SC中查询成绩大...
    爱撒谎的男孩阅读 4,908评论 0 2
  • 介绍多表查询等复杂SQL语句。 关系数据库的查询结果都是一个结果表(也是关系) 集聚函数 基本语法 统计元组个数C...
    zealscott阅读 4,274评论 0 0
  • 作为一枚Java后端开发者,数据库知识必不可少,对数据库的掌握熟悉度的考察也是对这个人是否有扎实基本功的考察。特别...
    丶Orz丶阅读 3,226评论 0 0