现有关系数据库如下: 学生(学号,姓名,性别,专业) 课程(课程号,课程名,先修课,学分) 学习(学号,课程号,分数) (1)用关系代数表达式实现: 检索所有选修了课程号为“C111”的课程的学生的学号、姓名和分数(2)用SQL语句实现: 创建课程表,课程号为主码,课程名不允许为空,先修课参照课程号。 (3)用SQL语句实现:向课程表中插入一条记录,课程号为“C111”,课程名为数据库原理,先修课为空,学分为4. (4) 用SQL语句实现: 将课程号为“C111”的课程的学分修改为5; (5) 用SQL语句实现:检索“网工"专业学生所学课程的信息,包括学号、姓名、课程名和分数;(6) 用SQL语句实现: 删除选修了"数据库原理”并且分数为空的选课信息。

时间: 2024-04-05 11:34:01 浏览: 78
(1) 关系代数表达式: π 学生.学号, 学生.姓名, 学习.分数 (σ 课程.课程号='C111' ∧ 学生.学号=学习.学号 ∧ 课程.课程号=学习.课程号) (2) SQL语句: CREATE TABLE 课程 ( 课程号 VARCHAR(20) PRIMARY KEY, 课程名 VARCHAR(50) NOT NULL, 先修课 VARCHAR(20) REFERENCES 课程(课程号) ); (3) SQL语句: INSERT INTO 课程 (课程号, 课程名, 先修课, 学分) VALUES ('C111', '数据库原理', NULL, 4); (4) SQL语句: UPDATE 课程 SET 学分=5 WHERE 课程号='C111'; (5) SQL语句: SELECT 学生.学号, 学生.姓名, 课程.课程名, 学习.分数 FROM 学生, 课程, 学习 WHERE 学生.学号=学习.学号 AND 课程.课程号=学习.课程号 AND 学生.专业='网工'; (6) SQL语句: DELETE FROM 学习 WHERE 课程号='C111' AND 分数 IS NULL;
相关问题

现有学生课程数据库: S(Sno,S name, S sex, Sage, S dept) , 对应如下:学生(学号,姓名,性别,年龄,所在系) C(C no,Cname,Cp no, Credit) , 对应如下:课程(课号,课程名,先修课,学分) SC(Sno, C no,Grade) , 对应如下: 选课(学号,课号,成绩) 请用关系代数表达式描述如下查询要求: 1.查询选修课程名为“数学”的学生号和学生姓名;2.查询至少选修了课程号为“01”和“03”的学生号;3.查询选修了“操作系统”或“数据库

1. π Sno, S name (σ Cname = "数学"(SC ⋈ C)) 2. π Sno ((σ Cno = "01"(SC)) ⋂ (σ Cno = "03"(SC))) 3. π Sno ((σ Cname = "操作系统"(SC ⋈ C)) ∪ (σ Cname = "数据库"(SC ⋈ C)))

有学生一课程关系数据库,各关系表描述如下: 学生(学号,姓名,性别,年龄,系)课程(课程号,课程名,先修课,学分)选课(学号,课程号,成绩) 用 SQL 语句实现下列问题 1、向学生选修课程表中插入元组"学生S6选修课程号C2"。2、查询每个学生的学号、姓名及其所选课程的课程名: 3、检索姓"李"且倒数第2个字为"华"字的学生的姓名和学号: 4、删除选课成绩在60分以下的学生记录; 5、把"大学英语"课程成绩提高5%; 6、求出男同学的每一年龄组(超过4人)有多少人? 7、定义视图 S _ age ,其中包括学生学号以及每个学生选修课程的门数(要求成绩非空)和平均成绩; 8、查询每个学生的选课总学分,要求列出学生学号和总学分(说明:考试成绩超过60才能获得此课程的学分) 9、查询计算机系成绩在80分以上的学生姓名、课程名和成绩,并按成绩降序排列结果; 10、查询既选修了"数据库"又选修了"操作系统"的学生学号及姓名。

1、向学生选修课程表中插入元组"学生S6选修课程号C2"。 ``` INSERT INTO 选课 (学号, 课程号) VALUES ('S6', 'C2'); ``` 2、查询每个学生的学号、姓名及其所选课程的课程名: ``` SELECT 学生.学号, 学生.姓名, 课程.课程名 FROM 学生, 选课, 课程 WHERE 学生.学号 = 选课.学号 AND 选课.课程号 = 课程.课程号; ``` 3、检索姓"李"且倒数第2个字为"华"字的学生的姓名和学号: ``` SELECT 学号, 姓名 FROM 学生 WHERE 姓名 LIKE '李%华_'; ``` 4、删除选课成绩在60分以下的学生记录: ``` DELETE FROM 选课 WHERE 成绩 < 60; ``` 5、把"大学英语"课程成绩提高5%: ``` UPDATE 选课 SET 成绩 = 成绩 * 1.05 WHERE 课程号 = 'C1'; ``` 6、求出男同学的每一年龄组(超过4人)有多少人? ``` SELECT FLOOR(年龄 / 10) * 10 AS 年龄段, COUNT(*) AS 人数 FROM 学生 WHERE 性别 = '男' GROUP BY 年龄段 HAVING COUNT(*) > 4; ``` 7、定义视图 S_age ,其中包括学生学号以及每个学生选修课程的门数(要求成绩非空)和平均成绩; ``` CREATE VIEW S_age AS SELECT 学号, COUNT(*) AS 选课门数, AVG(成绩) AS 平均成绩 FROM 选课 WHERE 成绩 IS NOT NULL GROUP BY 学号; ``` 8、查询每个学生的选课总学分,要求列出学生学号和总学分(说明:考试成绩超过60才能获得此课程的学分) ``` SELECT 选课.学号, SUM(课程.学分) AS 总学分 FROM 选课, 课程 WHERE 选课.课程号 = 课程.课程号 AND 成绩 > 60 GROUP BY 选课.学号; ``` 9、查询计算机系成绩在80分以上的学生姓名、课程名和成绩,并按成绩降序排列结果; ``` SELECT 学生.姓名, 课程.课程名, 选课.成绩 FROM 学生, 选课, 课程 WHERE 学生.学号 = 选课.学号 AND 选课.课程号 = 课程.课程号 AND 学生.系 = '计算机系' AND 选课.成绩 > 80 ORDER BY 选课.成绩 DESC; ``` 10、查询既选修了"数据库"又选修了"操作系统"的学生学号及姓名。 ``` SELECT 学生.学号, 学生.姓名 FROM 学生, 选课 AS s1, 选课 AS s2 WHERE 学生.学号 = s1.学号 AND 学生.学号 = s2.学号 AND s1.课程号 = 'C1' AND s2.课程号 = 'C3'; ```

相关推荐

一、用SQL语言创建一个名为School的数据库 1)所有数据文件存放于非C:盘的其它盘下以学生的学号姓名,命名的文件夹内。 2)数据库的属性如下: 主数据文件的大小为5MB,文件【按兆字节】的方式增长,一次增长2MB,最大容量20MB; 事务日志文件大小为4MB,文件【按百分比】的方式增长,一次增长25%,最大容量10MB; 二级数据文件,文件名为scg1dt1,文件大小1MB,【按兆字节】方式增长,增长量为1MB,最大容量10MB,存放于名为SCGroup1文件组中。 3)修改数据库: 修改主数据文件的大小为10MB,增长方式改为【按百分比】增长,一次增长20%; 为SCGroup1文件组增加一个名为scg1dt2的数据文件,其属性同scg1dt1; 2、管理数据库 使用sp_helpdb命令查看数据库School信息; 使用sp_helpfile命令查看主数据文件信息; 使用sp_helpfilegroup命令查看SCGroup1文件组信息; 二、在school数据库中创建如下三个新表: 1)学生表(Student) 属性名 含义 数据类型 约束 Sno 学号 Char(10) 主键(primary key) Sname 姓名 char(10) 非空 Ssex 性别 char(2) 非空;且只能取值‘男’、‘女’ Sage 年龄 int 大于等于10岁,小于等于45岁 Sdept 所在系 char(10) 数据如下: 学号 Sno 姓名 Sname 性别 Ssex 年龄 Sage 所在系 Sdept 200215121 李勇 男 20 CS 200215122 刘晨 女 19 CS 200215123 王敏 女 18 MA 200215125 张立 男 19 IS 2)课程表(Course) 属性名 含义 数据类型 约束 Cno 课程号 int 主键(primary key) Cname 课程名 char(10) 唯一、非空 Cpno 先修课程号 int 外键,参照Cno Ccredit 学分 int 1,2,3,4 数据如下:课程号 课程号 Cno 课程名 Cname 先行课 Cpno 学分 Ccredit 1 数据库 5 4 2 数学 2 3 信息系统 1 4 4 操作系统 6 3 5 数据结构 7 4 6 数据处理 2 7 PASCAL语言 6 4 8 DB_Design 1 4 3)学生选课表(SC) 属性名 含义 数据类型 约束 Sno 学号 Char(10) 外键,参照Student.Sno, Cno 课程号 int 外键,参照Course.Cno, Grade 成绩 int 大于等于0,小于等于100 注: 数据如下: 学号 Sno 课程号 Cno 成绩 Grade 200215121 1 92 200215121 2 85 200215121 3 88 200215122 2 90 200215122 3 80 200215123 3 200215125 4 1、管理数据表 1)查看Student表的信息。 2)在SC表中添加由(Sno,Cno)共同构成的主键(primary key)约束。 3)在Student表中添加一列 属性名 含义 数据类型 约束 Scity 籍贯 char(10) 4)为Course表增加计算列Cmoney“重修费”,其值为“学分*100” 记录上述操作的SQL语句和运行结果。 2、约束管理 1)在SC表中添加由(Sno,Cno)共同构成的主键(primary key)约束。 2)删除student表中的sno一列,查看运行结果是否有误,并分析原因如何解决。 3)为student表的“所在系”列添加默认值约束,默认值为‘CS’ 4)删除3)的默认值约束

最新推荐

recommend-type

SQL语言嵌套查询和数据更新操作

19. 查询每位学生选修了课程的学生信息(显示:学号,姓名,课程号,课程名,成绩); 20. 查询没有选修课程的学生的基本信息; 21. 查询选修了3门以上课程的学生学号; 22. 查询选修课程成绩至少有一门在80分...
recommend-type

Lan仿朋友圈系统开源,可用于表白墙等微商相册,商品图册等.rar

Lan仿朋友圈系统开源,可用于表白墙等微商相册,商品图册等.rarLan仿朋友圈系统开源,可用于表白墙等微商相册,商品图册等.rar
recommend-type

C++基础辅助类库.zip

比如异步进行-Thread,安全句柄-CHandle,资源守卫-Guard,XML解析-rapidxml,以及其他注册表、文件基础操作。用于更加高效、安全的进行C++开发。温馨提示:至少需要支持C++0x标准的编译器。
recommend-type

集团企业IT技术架构规划方案qy.pptx

集团企业IT技术架构规划方案qy.pptx
recommend-type

智能监控JAR进程:Bash脚本助力运维.zip

本Bash脚本用于自动化管理Java JAR应用的启动、停止及监控。首先检查JAR进程是否在运行,如在运行则安全终止。随后,使用预设的Java参数启动JAR文件,并将输出和错误日志重定向至日志文件。启动后,脚本持续监控JAR进程状态,确保其在预设时间内成功启动。本脚本提供了灵活的配置和错误处理机制,为Java应用的运维管理带来了便捷与可靠性。
recommend-type

RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz

REALTEK 8188FTV 8188eus 8188etv linux驱动程序稳定版本, 支持AP,STA 以及AP+STA 共存模式。 稳定支持linux4.0以上内核。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

Redis验证与连接:快速连接Redis服务器指南

![Redis验证与连接:快速连接Redis服务器指南](https://img-blog.csdnimg.cn/20200905155530592.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNTg5NTEw,size_16,color_FFFFFF,t_70) # 1. Redis验证与连接概述 Redis是一个开源的、内存中的数据结构存储系统,它使用键值对来存储数据。为了确保数据的安全和完整性,Redis提供了多
recommend-type

gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker app:app 报错 ModuleNotFoundError: No module named 'geventwebsocket' ]

这个报错是因为在你的环境中没有安装 `geventwebsocket` 模块,可以使用下面的命令来安装: ``` pip install gevent-websocket ``` 安装完成后再次运行 `gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker app:app` 就不会出现这个报错了。
recommend-type

c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf

校园超市商品信息管理系统课程设计旨在帮助学生深入理解程序设计的基础知识,同时锻炼他们的实际操作能力。通过设计和实现一个校园超市商品信息管理系统,学生掌握了如何利用计算机科学与技术知识解决实际问题的能力。在课程设计过程中,学生需要对超市商品和销售员的关系进行有效管理,使系统功能更全面、实用,从而提高用户体验和便利性。 学生在课程设计过程中展现了积极的学习态度和纪律,没有缺勤情况,演示过程流畅且作品具有很强的使用价值。设计报告完整详细,展现了对问题的深入思考和解决能力。在答辩环节中,学生能够自信地回答问题,展示出扎实的专业知识和逻辑思维能力。教师对学生的表现予以肯定,认为学生在课程设计中表现出色,值得称赞。 整个课程设计过程包括平时成绩、报告成绩和演示与答辩成绩三个部分,其中平时表现占比20%,报告成绩占比40%,演示与答辩成绩占比40%。通过这三个部分的综合评定,最终为学生总成绩提供参考。总评分以百分制计算,全面评估学生在课程设计中的各项表现,最终为学生提供综合评价和反馈意见。 通过校园超市商品信息管理系统课程设计,学生不仅提升了对程序设计基础知识的理解与应用能力,同时也增强了团队协作和沟通能力。这一过程旨在培养学生综合运用技术解决问题的能力,为其未来的专业发展打下坚实基础。学生在进行校园超市商品信息管理系统课程设计过程中,不仅获得了理论知识的提升,同时也锻炼了实践能力和创新思维,为其未来的职业发展奠定了坚实基础。 校园超市商品信息管理系统课程设计的目的在于促进学生对程序设计基础知识的深入理解与掌握,同时培养学生解决实际问题的能力。通过对系统功能和用户需求的全面考量,学生设计了一个实用、高效的校园超市商品信息管理系统,为用户提供了更便捷、更高效的管理和使用体验。 综上所述,校园超市商品信息管理系统课程设计是一项旨在提升学生综合能力和实践技能的重要教学活动。通过此次设计,学生不仅深化了对程序设计基础知识的理解,还培养了解决实际问题的能力和团队合作精神。这一过程将为学生未来的专业发展提供坚实基础,使其在实际工作中能够胜任更多挑战。