在本实验中,我们主要涉及了数据库的基本操作,包括创建数据库和数据表,以及执行SQL查询和更新操作。以下是对这些知识点的详细说明: 1. **数据库和表的创建**: - `CREATE DATABASE` 语句用于创建一个新的数据库,这里是创建名为 `Student` 的数据库。 - `CREATE TABLE` 语句用于定义表结构。这里创建了三个表:`Students`、`Courses` 和 `SC`。每个表都有其特定的字段,如 `Students` 表包含学生ID(SNO)、姓名(SNAME)、性别(SEX)、出生日期(BDATE)、身高(HEIGHT)和专业(DEPARTMENT)。`Courses` 表包含课程ID(CNO)、课程名称(CNAME)、课时(LHOUR)、学分(CREDIT)和学期(SEMESTER)。`SC` 表用于记录学生选课情况,包含学生ID(SNO)、课程ID(CNO)和成绩(GRADE)。 2. **主键和外键**: - 主键(Primary Key)是用来唯一标识表中每一行数据的字段,如 `Students` 表中的 `SNO` 和 `Courses` 表中的 `CNO`。 - 外键(Foreign Key)是引用另一个表的主键的字段,用于建立表之间的关联。在这里,`SC` 表中的 `SNO` 和 `CNO` 分别是 `Students` 和 `Courses` 表的外键,通过它们建立了 `Students`、`Courses` 和 `SC` 之间的联系。 3. **数据插入**: - 数据插入通常使用 `INSERT INTO` 语句,但在题目描述中并未提供具体数据,所以这部分未展开。 4. **SQL查询**: - (1)查询身高大于1.80m的男生的学号和姓名,使用 `SELECT SNO, SNAME FROM Students WHERE HEIGHT > 1.8`。 - (2)查询计算机系秋季所开课程的课程号和学分数,使用 `SELECT CNO, CREDIT FROM Courses WHERE SEMESTER = '秋季'`。 - (3)查询选修计算机系秋季课程的男生的姓名、课程号、学分数、成绩,使用 `INNER JOIN` 将 `Students`、`SC` 和 `Courses` 表连接,并根据条件筛选,查询语句如下: ```sql SELECT s.SNAME, SC.CNO, c.CREDIT, SC.GRADE FROM students s INNER JOIN SC ON sc.SNO = s.SNO INNER JOIN Courses c ON sc.CNO = c.CNO WHERE s.DEPARTMENT = '计算机系' AND s.SEX = '男' AND c.SEMESTER = '秋季' ``` - (4)查询至少选修一门以“EE”开头的课程的女生的姓名,使用 `SELECT DISTINCT s.sname FROM Students s, SC WHERE s.sno = sc.sno AND s.sex = '女' AND sc.cno LIKE 'EE%'`。 - (5)查询每位学生的选修课程数量和总平均成绩,使用 `GROUP BY` 和聚合函数 `COUNT` 和 `AVG`,查询语句如下: ```sql SELECT COUNT(c.CNO) AS 课程门数, AVG(SC.GRADE) AS 总平均成绩 FROM students s INNER JOIN SC ON sc.SNO = s.SNO INNER JOIN Courses c ON sc.CNO = c.CNO GROUP BY s.SNO ``` - (6)查询每门课程的学生人数、最高成绩、最低成绩和平均成绩,使用 `GROUP BY` 结合聚合函数 `COUNT`、`MAX`、`MIN` 和 `AVG`,查询语句如下: ```sql SELECT cname, COUNT(cno), MAX(grade), MIN(grade), AVG(grade) FROM students NATURAL JOIN sc NATURAL JOIN courses GROUP BY cname ``` 5. **更新操作**: 更新操作通常使用 `UPDATE` 语句,但题目没有提供具体的更新需求,所以这部分未展开。 这些是实验题涉及到的基础数据库操作,包括数据表的创建、数据的查询和更新。在实际应用中,还需要了解其他概念,如索引、视图、存储过程等,以及更复杂的查询技巧,例如子查询、联接操作和窗口函数等。
- 2302_789016482023-07-03资源中能够借鉴的内容很多,值得学习的地方也很多,大家一起进步!
- 粉丝: 87
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助