### 江苏科技大学数据库概论课程实验报告知识点解析
#### 实验背景及目标
本实验报告来源于江苏科技大学的一门数据库概论课程,主要目的是帮助学生理解和掌握数据库系统的相关概念和技术,尤其是数据定义语言(Data Definition Language, DDL)的使用方法。通过实践操作,学生能够熟悉SQL语句在数据库设计中的应用,包括数据库、表和索引的创建等。
#### 实验内容概述
本实验主要包括以下几个方面:
1. **数据库的定义**:学习如何使用SQL语言创建数据库。
2. **表和视图的定义**:掌握创建表以及视图的方法。
3. **索引的定义**:了解索引的概念及其创建方式。
#### 数据定义
数据定义是指利用SQL语言中的DDL语句来创建或修改数据库对象的过程。这些数据库对象包括数据库、表、视图、索引等。
#### 实验具体步骤
##### 创建和使用数据库
1. **创建数据库**:首先需要使用`CREATE DATABASE`命令创建一个数据库,这里创建了一个名为“学号后三位”的数据库。
```sql
CREATE DATABASE 学号后三位;
```
2. **使用数据库**:使用`USE`命令切换到新创建的数据库。
```sql
USE 学号后三位;
```
##### 创建和使用表、视图
1. **创建表**:创建三个表,分别是教师表(JS)、课程表(Course)和授课表(SK)。
- **教师表(JS)**
```sql
CREATE TABLE JS110 (
Tno CHAR(7),
Tname CHAR(10),
Tsex CHAR(2),
Birthday DATE,
Dept CHAR(20),
Sid CHAR(18)
);
```
- **课程表(Course)**
```sql
CREATE TABLE Course110 (
Cno CHAR(10),
Cname CHAR(20),
Credit SMALLINT,
property CHAR(10),
Hours INT
);
```
- **授课表(SK)**:设置主键和外键约束。
```sql
CREATE TABLE SK110 (
Tno CHAR(7),
Cno CHAR(10),
Hours INT,
PRIMARY KEY (Tno, Cno),
FOREIGN KEY (Tno) REFERENCES JS110(Tno),
FOREIGN KEY (Cno) REFERENCES Course110(Cno)
);
```
2. **插入数据**:向每个表中插入示例数据。
- **教师表(JS)**
```sql
INSERT INTO JS110 (Tno, Tname, Tsex, Birthday, Dept, Sid)
VALUES ('T001', '刘薇', '女', '1971-3-20', '电信', '551021197103203121'),
('T002', '张骐劲', '男', '1963-7-13', '数理', '32010119630713318X'),
-- 其他记录省略
;
```
- **课程表(Course)**
```sql
INSERT INTO Course110 (Cno, Cname, Credit, property, Hours)
VALUES ('01010101', '大学英语1', 4, '考试', NULL),
('01010102', '普通物理1', 4, '考试', NULL),
-- 其他记录省略
;
```
- **授课表(SK)**
```sql
INSERT INTO SK110 (Tno, Cno, Hours)
VALUES ('T001', '01010105', 64),
('T002', '01010102', 64),
-- 其他记录省略
;
```
3. **查看表内容**:使用`SELECT * FROM 表名;`命令来查看各个表的内容。
```sql
SELECT * FROM JS110;
SELECT * FROM Course110;
SELECT * FROM SK110;
```
##### 索引
1. **创建索引**:为了提高查询效率,可以对表中的某些列创建索引。
```sql
CREATE INDEX idx_Js_Tno ON JS110 (Tno);
CREATE INDEX idx_Course_Cno ON Course110 (Cno);
```
##### 修改表结构
1. **添加列**:可以在已有的表中添加新的列。
```sql
ALTER TABLE SK110
ADD Type CHAR(4);
```
2. **修改列**:也可以对现有列进行修改。
```sql
ALTER TABLE SK110
MODIFY Hours INT NOT NULL;
```
#### 结论
通过本次实验,学生不仅掌握了使用SQL语句创建数据库、表、视图和索引的基本技能,还学会了如何插入数据、查看表内容以及修改表结构等高级操作。这些实践经验对于日后从事数据库管理和开发工作具有重要的意义。此外,通过实际操作加深了对数据库系统原理的理解,有助于培养学生的逻辑思维能力和问题解决能力。