根据提供的信息,我们可以总结出以下相关的数据库实验知识点:
### 数据库查询基础
1. **连接查询(JOIN):**
- 使用多个表进行查询时,经常需要用到连接查询。
- **示例:** `SELECT students.ѧ, course.γ, grade.ɼ FROM students, course, grade WHERE students.ѧ = grade.ѧ AND course.γ̱ = grade.γ̱ AND (course.γ = 'ߵѧ' OR course.γ = 'ѧӢ');`
- **解析:** 这个查询是从`students`、`course`和`grade`三个表中选取数据。通过WHERE子句中的条件,将三个表连接起来,并筛选出课程名为“ߵѧ”或“ѧӢ”的学生成绩。
2. **嵌套查询:**
- 嵌套查询是指在一个查询语句中包含另一个查询语句。
- **示例:** `SELECT * FROM students WHERE <(SELECT MIN() FROM students WHERE 学院 = '') AND 学院 != '';`
- **解析:** 此查询首先执行内层的子查询`(SELECT MIN() FROM students WHERE 学院 = '')`,找出所有学院为空的学生记录中的最小值,然后与外层查询中学院不为空的所有学生的记录进行比较。
3. **子查询作为条件:**
- 在WHERE子句中使用子查询作为过滤条件。
- **示例:** `SELECT ʦ FROM teacher, course WHERE course.ʦ = teacher.ʦ AND course.γ̺ = (SELECT γ̺ FROM course WHERE γ̺ = 'C5');`
- **解析:** 此查询从`teacher`和`course`两个表中选取教师名,其中课程代码为`C5`。
4. **NOT EXISTS子句:**
- `NOT EXISTS`用于检查子查询是否返回行。如果子查询返回0行,则结果为真;否则为假。
- **示例:** `SELECT 学号 FROM students WHERE NOT EXISTS (SELECT * FROM 選選1 WHERE 選1.γ = '' AND NOT EXISTS (SELECT * FROM 選選2 WHERE students.學号 = 選2.學號 AND 選2.γ = 選1.γ));`
- **解析:** 这个查询查找所有学生学号,这些学生没有选修任何课程。
### 视图操作
1. **创建视图:**
- 视图是基于一个或多个表的虚拟表,可以简化复杂的查询,提高安全性。
- **示例:** `CREATE OR REPLACE VIEW 0801 (學號, 名稱, 學分) AS SELECT students.學號, students.名稱, students.學分 FROM students;`
- **解析:** 创建了一个名为`0801`的视图,包含学生表中的學號、名稱和學分字段。
2. **修改视图:**
- 可以通过`CREATE OR REPLACE VIEW`语句来修改现有的视图。
- **示例:** `CREATE OR REPLACE VIEW 全部学生 (學號, 名稱, 课程编号, 课程名称, 成绩) AS SELECT students.學號, students.名稱, course.课程编号, course.课程名称, grade.成绩 FROM students, course, grade WHERE students.學號 = grade.學號 AND course.课程编号 = grade.课程编号;`
- **解析:** 修改了视图,现在包含学生基本信息以及他们所选课程的详细信息。
3. **使用视图查询:**
- **示例:** `SELECT * FROM 全部学生;`
- **解析:** 查询`全部学生`视图中的所有记录。
### 表操作
1. **添加列:**
- 可以使用`ALTER TABLE`语句向已有的表中添加新的列。
- **示例:** `ALTER TABLE students ADD (column_name varchar2(15));`
- **解析:** 向`students`表中添加了一个新的列`column_name`,数据类型为`varchar2(15)`。
2. **插入数据:**
- **示例:** `INSERT INTO course VALUES ('080', 'C', '3', '125', '333');`
- **解析:** 向`course`表中插入一条新记录。
### 分组与聚合函数
1. **分组查询:**
- 使用`GROUP BY`对结果集按一个或多个列进行分组。
- **示例:** `CREATE OR REPLACE VIEW 平均成绩 (學號, 名稱, 平均成绩) AS SELECT grade.學號, students.名稱, AVG(grade.成绩) FROM students, grade, course WHERE students.學號 = grade.學號 AND course.课程编号 = grade.课程编号 GROUP BY grade.學號, students.名稱;`
- **解析:** 创建了一个名为`平均成绩`的视图,计算每个学生的平均成绩。
2. **聚合函数:**
- SQL支持多种聚合函数,如`AVG`、`SUM`、`MAX`、`MIN`等。
- **示例:** `SELECT AVG(grade.成绩) FROM students, grade, course WHERE students.學號 = grade.學號 AND course.课程编号 = grade.课程编号;`
- **解析:** 计算所有学生的平均成绩。
以上就是从给定的文件标题、描述、标签和部分内容中提取出来的关键知识点。这些知识点覆盖了SQL语言中常用的查询技巧、表操作以及视图的使用,对于学习和掌握数据库管理系统非常有帮助。