根据提供的文件信息,我们可以归纳出一系列关于Oracle数据库操作的关键知识点,包括数据插入(Insert)、查询(Select)等基本操作,并且结合具体实例进行详细解析。
### 数据插入(Insert)
在Oracle数据库中,`INSERT`语句用于将新的记录添加到表中。其基本语法结构如下:
```sql
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
```
#### 示例解析
1. **学生表插入数据**:
- 插入学生表(student)的数据,例如:
```sql
INSERT INTO easyman.student VALUES ('s001', '', 23, '');
```
- 这里`student`表包含四个字段:学号(sno)、姓名(name)、年龄(age)以及备注(comment)。由于部分字段未给出名称,我们只能假设字段顺序。例如,第一个插入语句表示向`student`表中添加了一条记录,学号为`s001`,年龄为23岁,其他两字段为空值。
2. **教师表插入数据**:
- 同样地,对于`teacher`表的数据插入,如:
```sql
INSERT INTO easyman.teacher VALUES ('t001', '');
```
- 此处我们假设`teacher`表有教师编号(tno)和教师姓名(tname)两个字段。这条语句表示向`teacher`表中添加了一个教师编号为`t001`的新记录,教师姓名未提供。
3. **课程表插入数据**:
- 对于`course`表的插入操作,如:
```sql
INSERT INTO easyman.course VALUES ('c001', 'J2SE', 't002');
```
- 此处我们假设`course`表包括课程编号(cno)、课程名称(cname)以及授课教师编号(tno)三个字段。该语句表示向`course`表中添加了一个新记录,其中课程编号为`c001`,课程名称为`J2SE`,授课教师编号为`t002`。
### 数据查询(Select)
#### 示例解析
1. **查询学生表中的所有记录**:
- 使用`SELECT * FROM easyman.student;`可以获取`student`表中的所有数据。
2. **查询教师表中的所有记录**:
- 类似地,`SELECT * FROM easyman.teacher;`则用于获取`teacher`表中的所有数据。
3. **查询课程表中的所有记录**:
- `SELECT * FROM easyman.course;`可以获取`course`表中的所有数据。
4. **复杂查询**:
- **查询在`c001`课程中成绩高于`c002`课程的学生编号**:
```sql
SELECT sno FROM easyman.sc WHERE cno = 'c001' AND score > ANY (SELECT score FROM easyman.sc WHERE cno = 'c002');
```
这条SQL语句首先通过子查询找出`c002`课程的所有成绩,然后使用`ANY`关键字与`c001`课程的成绩进行比较,找出那些在`c001`课程中成绩更高的学生编号。
- **查询每个学生的平均成绩高于60分的学生编号及其平均成绩**:
```sql
SELECT sno, AVG(score) AS 平均成绩 FROM easyman.sc GROUP BY sno HAVING AVG(score) > 60;
```
这条SQL语句首先通过`GROUP BY`对每个学生的分数进行分组,接着使用`AVG`函数计算平均成绩,并通过`HAVING`子句筛选出平均成绩高于60分的学生。
以上是基于给定文件信息所提取的关键知识点及其解析。这些练习题覆盖了Oracle数据库中增删改查的基本操作,有助于初学者理解并掌握Oracle数据库的基础知识。
- 1
- 2
前往页