《Visual FoxPro程序设计案例教程》的第9章主要介绍了SQL的数据操作,包括数据的插入、更新和删除,以及数据查询的功能。以下是这些知识点的详细解释:
**5.3 SQL的数据更新功能**
5.3.1 数据插入
SQL提供了两种插入数据的方法:
1. **使用常量插入一条记录**:通过指定表名和列名,然后用VALUES关键字跟随着常量值。如果未指定列名,所有列都需要赋值。例如,插入一个学生记录到学生表中:
```sql
INSERT INTO 学生 VALUES('20050110', '张亮', 20, '数学')
```
2. **插入子查询的结果**:允许一次插入多条记录。例如,计算每个系的平均年龄并存储到新的表中:
```sql
INSERT INTO 系平均年龄 SELECT 所在系, AVG(年龄) FROM 学生 GROUP BY 所在系
```
5.3.2 数据更新
使用UPDATE语句可以修改表中已存在的记录。它包含SET子句来指定要更新的列和新的值,以及可选的WHERE子句来限定更新的记录。例如:
1. **更新所有学生的年龄**:
```sql
UPDATE 学生 SET 年龄 = 年龄 + 2
```
2. **特定条件下更新记录**:如将VB课程的成绩乘以1.4:
```sql
UPDATE 选课 SET 成绩 = 成绩 * 1.4 WHERE 课程号 = (SELECT 课程号 FROM 课程 WHERE 课程名 = 'VB')
```
5.3.3 数据删除
DELETE FROM语句用于删除表中的记录。可以使用WHERE子句来指定删除条件。如果不加WHERE,将删除所有记录。例如:
1. **删除数学系学生的选课记录**:
```sql
DELETE FROM 选课 WHERE 学号 IN (SELECT 学号 FROM 学生 WHERE 所在系 = '数学')
```
**5.4 SQL的数据查询功能**
5.4.1 SELECT语句
SELECT语句是SQL的核心,用于从表中选取满足特定条件的记录。其基本结构包括SELECT子句、FROM子句和WHERE子句,还可以添加其他子句进行排序、分组等操作。例如:
1. **基本查询**:选取所有字段:
```sql
SELECT * FROM 表名
```
2. **筛选记录**:使用WHERE子句:
```sql
SELECT * FROM 表名 WHERE 条件表达式
```
3. **分组数据**:使用GROUP BY子句:
```sql
SELECT 分组列 FROM 表名 GROUP BY 分组列
```
4. **去除重复记录**:使用DISTINCT关键字:
```sql
SELECT DISTINCT 目标列 FROM 表名
```
5. **排序结果**:使用ORDER BY子句:
```sql
SELECT * FROM 表名 ORDER BY 排序列 ASC/DESC
```
6. **分组条件过滤**:使用HAVING子句:
```sql
SELECT 分组列 FROM 表名 GROUP BY 分组列 HAVING 组筛选条件
```
以上是Visual FoxPro中SQL数据操作的基本知识点,涵盖了数据的增、删、改、查四大核心功能。这些知识对于理解和编写SQL语句至关重要,是数据库管理的基础。