基于jxgl数据库的SQL查询实战:筛选学生信息

需积分: 0 2 下载量 92 浏览量 更新于2024-08-04 收藏 395KB DOCX 举报
在本次《数据库系统实验》中,学生郝裕玮针对Lab41任务,主要操作是在名为jxgl的数据库上进行SQL语句的实践。实验环境配置为Windows10操作系统和MySQLWorkbench 8.0 CE版本的DBMS。实验的核心内容围绕如何使用SQL查询来获取特定信息,具体涉及以下几个部分: 1. **查询学生信息**: 实验的第一步是通过SQL语句检索年龄大于23岁的男性学生的学号和姓名。这需要用到`SELECT`语句,结合`WHERE`子句来指定条件,如`SELECT sno, sname FROM student WHERE sage > 23 AND ssex = '男';`,这样可以筛选出符合条件的学生信息。 2. **查询女学生选课情况**: 第二个查询目标是找出至少选修一门课程的女学生姓名。这需要联合`student`和`sc`表,通过`INNER JOIN`或`GROUP BY`语句来实现。可能的查询语句如`SELECT sname FROM student s JOIN sc ON s.sno = sc.sno WHERE s.ssex = '女' GROUP BY s.sname HAVING COUNT(sc.cn) > 0;`,这里假设`s.sname`为女学生姓名,`sc.cn`为课程编号,通过课程数量判断是否有选课记录。 3. **数据库结构和表关联**: 实验中创建了`student`、`course`和`sc`三个表,其中`sc`表作为连接表,确保了学生表和课程表之间的关联性。`foreign key`约束确保了数据一致性,防止插入错误的学号或课程号。同时,对表的字符集进行了设置,如`VARCHAR`字段使用`utf8_general_ci`编码,以便支持中文字符的正确存储和查询。 4. **数据插入和表结构定义**: 实验还包含了创建表和插入数据的过程,比如创建`student`表时设置了`sn`为主键,确保每个学生的学号唯一。在插入数据时,严格按照规定格式执行,如插入学生的姓名、年龄、性别等字段。 通过这个实验,学生不仅锻炼了SQL语言的使用能力,还加深了对关系数据库设计、表间关系理解和查询优化的理解,有助于提升数据库管理及数据分析的基础技能。