根据提供的实验报告,我们可以深入解析该实验中的各个知识点与实现步骤。本次实验主要涉及数据库的基本操作,包括数据定义语言(DDL)和数据操纵语言(DML)的应用。具体包括创建表、修改表、插入数据等操作。下面将逐一展开。
### 1. 数据库表的创建
#### 例1-1:建立数据库表
- **知识点**:在本例中,首先创建了四个基本的数据库表:`Course`、`Student`、`Teach`。这些表的设计体现了数据库设计的基本原则,即如何合理地组织数据,确保数据的一致性和完整性。
- **表Course**:存储课程信息,包括课程编号(CNO)、课程名称(CNAME)和课程时长(CTIME)。这里使用了`CHAR`类型来存储字符数据,`NUMERIC`类型来存储数值数据。
- **表Student**:存储学生信息,包括学号(SNO)、姓名(SNAME)、系别(SDEPT)、班级(SCLASS)、性别(SSEX)和年龄(SAGE)。注意这里的SNAME字段长度为8,并且允许为空。
- **表Teach**:存储授课信息,包括教师姓名(TNAME)、性别(TSEX)、课程编号(CNO)、授课日期(TDATE)和所在系别(TDEPT)。该表还包含了外键约束,用于维护与其他表之间的参照完整性。
#### SQL代码示例:
```sql
CREATE TABLE Course (
CNO CHAR(3) PRIMARY KEY,
CNAME CHAR(16),
CTIME NUMERIC(3)
);
INSERT INTO Course VALUES ('001', '数学分析', '144');
-- 其他插入语句省略
CREATE TABLE Student (
SNO CHAR(5) PRIMARY KEY,
SNAME CHAR(8),
SDEPT CHAR(2),
SCLASS CHAR(2),
SAGE NUMERIC(2)
);
INSERT INTO Student VALUES ('96001', '马小燕', 'CS', '01', 21);
-- 其他插入语句省略
CREATE TABLE Teach (
TNAME CHAR(8),
TSEX CHAR(2),
CNO CHAR(3),
TDATE SMALLDATETIME,
TDEPT CHAR(2),
PRIMARY KEY (TNAME, CNO, TDEPT),
FOREIGN KEY (CNO) REFERENCES Course(CNO)
);
INSERT INTO Teach VALUES ('王成刚', '男', '004', '1999.9.5', 'CS');
-- 其他插入语句省略
```
### 2. 修改数据库表
#### 例1-2:修改数据库表
- **知识点**:在本例中,需要向`Student`表中添加一个新的字段`SEX`,用来存储学生的性别信息。这涉及到如何使用SQL命令来修改现有的表结构。
- **SQL代码**:
```sql
ALTER TABLE Student ADD SEX CHAR(2);
```
#### 例1-3:修改列名
- **知识点**:有时候需要更改表中某个字段的名称。例如,将`Student`表中的`SEX`字段改为`SSEX`。这同样需要通过SQL命令来实现。
- **SQL代码**:
```sql
EXEC sp_rename 'Student.SEX', 'SSEX', 'COLUMN';
```
#### 例1-4:修改字段属性
- **知识点**:如果需要改变某个字段的数据类型或是否允许为空等属性,可以使用`ALTER TABLE`命令。
- **SQL代码**:
```sql
ALTER TABLE Student ALTER COLUMN SNAME CHAR(10) NOT NULL;
```
### 总结
本次实验报告通过具体的实例,展示了如何使用SQL语言来进行数据库的基本操作,包括创建表、插入数据、修改表结构等。这些操作是数据库管理中最基础也是最重要的部分,对于理解数据库的工作原理以及如何高效地管理和利用数据具有重要的意义。