SQL练习与试题解析
需积分: 9 53 浏览量
更新于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语句。在实际操作中,应根据需求定义这些表的结构,并根据需要编写相应的增删改查语句。
109 浏览量
2020-09-14 上传
2023-07-21 上传
2023-06-11 上传
2024-01-12 上传
2023-05-11 上传
2023-09-13 上传
2023-05-15 上传
2024-09-28 上传
qq_29516417
- 粉丝: 0
- 资源: 2
最新资源
- C语言快速排序算法的实现与应用
- KityFormula 编辑器压缩包功能解析
- 离线搭建Kubernetes 1.17.0集群教程与资源包分享
- Java毕业设计教学平台完整教程与源码
- 综合数据集汇总:浏览记录与市场研究分析
- STM32智能家居控制系统:创新设计与无线通讯
- 深入浅出C++20标准:四大新特性解析
- Real-ESRGAN: 开源项目提升图像超分辨率技术
- 植物大战僵尸杂交版v2.0.88:新元素新挑战
- 掌握数据分析核心模型,预测未来不是梦
- Android平台蓝牙HC-06/08模块数据交互技巧
- Python源码分享:计算100至200之间的所有素数
- 免费视频修复利器:Digital Video Repair
- Chrome浏览器新版本Adblock Plus插件发布
- GifSplitter:Linux下GIF转BMP的核心工具
- Vue.js开发教程:全面学习资源指南