SQL练习与试题解析
需积分: 9 112 浏览量
更新于2024-07-21
收藏 23KB DOCX 举报
"SQL语句练习题,包括学生与课程关系、职工社团数据库问题,以及创建、查询和授权等操作的SQL实现"
SQL是Structured Query Language的缩写,是用于管理和处理关系数据库的标准语言。本练习题涵盖了多个SQL知识点,包括表设计、主键与外键、查询语句、视图创建、条件查询、聚合函数以及权限管理。
1. 学生与课程关系的E-R图:
- 学生实体:包含学号、姓名、性别、出生日期、民族、班级、家庭住址和联系电话属性。
- 课程实体:包含课程ID和课程名称属性。
- 学习关系实体:连接学生和课程,记录学号、课程ID和成绩。
2. 主键字段:
- 学生表的主键是“学号”。
- 课程表的主键是“课程ID”。
- 学习表的主键是组合键“学号+课程ID”。
3. SQL语句实例:
- (1) 查询所有男同学的基本信息:`SELECT * FROM 学生 WHERE 性别 = '男'`
- (2) 查询学号、姓名、班级、课程名称、成绩:`SELECT 学生.学号, 学生.姓名, 学生.班级, 课程.课程名称, 学习.成绩 FROM 学生 JOIN 学习 ON 学生.学号 = 学习.学号 JOIN 课程 ON 学习.课程ID = 课程.课程ID`
- (3) 查询成绩高于平均成绩的信息:需先计算平均成绩,然后比较,具体实现可能涉及子查询或窗口函数。
- (4) 查询民族为汉族或回族的学生信息:`SELECT * FROM 学生 WHERE 民族 IN ('汉', '回')`
- (5) 查询成绩在70-80分间的学生姓名、课程名称和成绩:`SELECT 学生.姓名, 课程.课程名称, 学习.成绩 FROM 学生 JOIN 学习 ON 学生.学号 = 学习.学号 JOIN 课程 ON 学习.课程ID = 课程.课程ID WHERE 学习.成绩 BETWEEN 70 AND 80`
4. 职工社团数据库相关操作:
- 定义表及参照关系:
- `CREATE TABLE 职工 (职工号 CHAR(10) PRIMARY KEY, 姓名 VARCHAR(50), 年龄 INT, 性别 CHAR(1))`
- `CREATE TABLE 社会团体 (编号 CHAR(10) PRIMARY KEY, 名称 VARCHAR(100), 负责人 CHAR(10), 活动地点 VARCHAR(200), FOREIGN KEY (负责人) REFERENCES 职工(职工号))`
- `CREATE TABLE 参加 (职工号 CHAR(10), 编号 CHAR(10), 参加日期 DATE, PRIMARY KEY (职工号, 编号), FOREIGN KEY (职工号) REFERENCES 职工(职工号), FOREIGN KEY (编号) REFERENCES 社会团体(编号))`
- 视图创建:
- 社团负责人视图:`CREATE VIEW 社团负责人 AS SELECT 编号, 名称, 负责人, 职工表.姓名, 职工表.性别 FROM 社会团体 JOIN 职工表 ON 社会团体.负责人 = 职工表.职工号`
- 参加人情况视图:`CREATE VIEW 参加人情况 AS SELECT 职工表.职工号, 职工表.姓名, 社会团体.编号, 社会团体.名称, 参加.参加日期 FROM 职工表 JOIN 参加 ON 职工表.职工号 = 参加.职工号 JOIN 社会团体 ON 参加.编号 = 社会团体.编号`
- 其他查询和操作请参考上述SQL语句的模式进行编写。
5. 数据库权限管理:
- 为用户李平分配权限:`GRANT SELECT, INSERT, DELETE ON 社会团体, 参加 TO '李平';`
- 李平转授权限:`GRANT SELECT, INSERT, DELETE ON 社会团体, 参加 TO '其他用户';`
此外,题目中还提到建立一个名为student的数据库表和一个名为computer的数据表,但具体的字段和操作未给出,所以无法提供相应的SQL语句。在实际操作中,应根据需求定义这些表的结构,并根据需要编写相应的增删改查语句。
120 浏览量
2020-09-14 上传
2021-10-10 上传
2023-07-21 上传
2023-06-11 上传
2024-01-12 上传
2023-05-11 上传
2023-09-13 上传
2023-05-15 上传
qq_29516417
- 粉丝: 0
- 资源: 2
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建