根据给定的文件信息,我们可以总结出以下关于数据库实验及SQL操作的重要知识点:
### 一、数据库基础概念
#### 1. 数据库(Database)
- **定义**:数据库是按照一定的结构存储在计算机上的数据集合。
- **作用**:用于存储、检索、管理和更新数据。
#### 2. 关系型数据库(Relational Database)
- **定义**:一种以表格形式组织的数据模型。
- **特点**:使用表格来表示实体和它们之间的关系。
#### 3. SQL (Structured Query Language)
- **定义**:用于管理关系型数据库的标准语言。
- **功能**:支持数据查询、数据操纵、数据定义和数据控制等操作。
### 二、数据库表(Table)设计
#### 1. 表的设计原则
- **属性**(Attribute):表中的每一列称为一个属性。
- **元组**(Tuple):表中的每一行称为一个元组或记录。
- **关键字**(Key):用于唯一标识每条记录的字段或字段组合。
- **主键**(Primary Key):作为关键字的一种,确保表中数据的唯一性。
#### 2. 实验案例分析
- **学生表**(Student): sno, sname, sex, age, dept
- **sno**: 学号,作为主键。
- **sname**: 姓名。
- **sex**: 性别。
- **age**: 年龄。
- **dept**: 所属系名。
- **课程表**(Course): cno, cname, tname
- **cno**: 课号,作为主键。
- **cname**: 课名。
- **tname**: 教师名。
- **选课表**(Score): sno, cno, grade
- **sno**: 学号,与学生表关联。
- **cno**: 课号,与课程表关联。
- **grade**: 成绩。
#### 3. SQL语句示例
- **创建数据库**:
```sql
create database CWH;
```
- **创建表**:
- **学生表**:
```sql
create table s (
sno CHAR(2) PRIMARY KEY,
sname CHAR(8) UNIQUE,
sex CHAR(2),
age INT,
dept NCHAR(100)
);
```
- **课程表**:
```sql
create table c (
cno CHAR(5) PRIMARY KEY,
cname CHAR(10),
tname CHAR(20)
);
```
- **选课表**:
```sql
create table sc (
sno CHAR(2),
cno CHAR(5),
grade SMALLINT,
PRIMARY KEY(sno, cno),
FOREIGN KEY(sno) REFERENCES s(sno),
FOREIGN KEY(cno) REFERENCES c(cno)
);
```
- **插入数据**:
- **学生表**:
```sql
insert into s values('01', '王一', '男', 18, 'CS');
```
- **课程表**:
```sql
insert into c values('c1', '数据结构', '许雨辰');
```
- **选课表**:
```sql
insert into sc values('01', 'm1', 85);
```
### 三、SQL查询基础
#### 1. 基本查询语句
- **SELECT**: 用于检索数据。
- **FROM**: 指定要检索数据的表。
- **WHERE**: 添加条件过滤结果集。
#### 2. 示例查询
- **查询所有学生的姓名和年龄**:
```sql
SELECT sname, age FROM s;
```
- **查询选修了'数据结构'课程的学生姓名及其成绩**:
```sql
SELECT s.sname, sc.grade
FROM s, c, sc
WHERE s.sno = sc.sno AND c.cno = sc.cno AND c.cname = '数据结构';
```
通过以上内容的学习,可以了解到如何设计数据库表、创建数据库及表,并进行数据的增删改查操作。这对于初学者来说是非常重要的基础,掌握了这些技能后,可以更好地理解和应用SQL语句,进行数据管理和查询。