### Visual FoxPro中SQL命令语法及示例 #### 1. 准备 - **1.1 创建文档中所要使用到的数据库及环境配置** 在开始学习Visual FoxPro (VFP) 中的SQL命令之前,需要创建一个用于演示的基础数据库环境。以下是创建过程的步骤: ```sql CLOSE ALL CLEAR ALL SET SAFETY OFF IF NOT DIRECTORY('e:\我的数据库\') THEN MD 'e:\我的数据库\' // 创建目录 ELSE DELETE FILE 'e:\我的数据库\*.*' // 清空目录 ENDIF SET DEFAULT TO 'e:\我的数据库\' // 设置默认路径 CREATE DATABASE '学生信息' // 创建数据库 ``` 这段代码首先关闭了所有已打开的文件,清理了内存,并设置了系统安全模式关闭。接着检查并创建了必要的文件夹,并清空该文件夹中的所有文件。最后设置了系统的默认目录,并创建了一个名为“学生信息”的数据库。 - **1.2 数据库中所包含的表** 为了展示SQL命令的应用场景,本文档创建了三个表:“课程”、“成绩”和“学生”,每个表的具体字段如下所示: - **课程表**: 包含课程号、课程名、先行课和学分。 - **成绩表**: 包含学号、课程号和成绩。 - **学生表**: 包含学号、姓名和性别。 这些表的数据示例如下: | 课程号 | 课程名 | 先行课 | 学分 | |--------|------------|--------|------| | 1 | 计算机基础 | 0 | 3 | | 学号 | 课程号 | 成绩 | |------|--------|-------| | 1 | 2 | 89 | | 学号 | 姓名 | 性别 | |------|--------|------| | 1 | 张小艳 | 女 | - **1.3 约定** 为了确保SQL命令的正确性和一致性,以下是一些约定: - 下划线部分与方括号或逗号之间的关系,表明某些元素可以被重复使用。 - 特定的前缀或后缀用来指示数据类型的书写格式,如表示字符型列名的书写方式,需要用特定的符号括起来。 - 各种前缀和后缀的含义如下表所示: | 前缀/后缀 | 说明 | |-----------|--------------| | exp | 表达式 | | var | 变量 | | n | 数值型或整型 | | list | 列表 | | c | 字符型 | | l | 逻辑型 | #### 2. 创建表 (CREATE TABLE) - **2.1 示例_创建表** 创建表是SQL中最基本的操作之一,下面的SQL语句展示了如何创建上述提到的三个表: ```sql CREATE TABLE 课程 ( 课程号 n(4), 课程名 c(20), 先行课 n(4), 学分 n(2) ); CREATE TABLE 成绩 ( 学号 n(4), 课程号 n(4), 成绩 n(3) ); CREATE TABLE 学生 ( 学号 n(4), 姓名 c(10), 性别 c(2) ); ``` #### 3. 修改表结构 (ALTER TABLE) - **3.1 添加新列或修改列** 当需要向表中添加新的列或修改现有列时,可以使用ALTER TABLE命令: ```sql ALTER TABLE 课程 ADD COLUMN 课程简介 c(255); ALTER TABLE 课程 MODIFY COLUMN 课程名 c(30); ``` - **3.2 仅添加/修改列的约束** 有时候可能只需要添加或修改某个列的约束条件: ```sql ALTER TABLE 课程 ADD CONSTRAINT CK_课程 CHECK (学分 > 0); ``` - **3.3 删除列约束** 如果不再需要某个约束,可以通过以下命令来删除它: ```sql ALTER TABLE 课程 DROP CONSTRAINT CK_课程; ``` - **3.4 添加主索引、唯一索引、外码约束** 在表中添加主键、唯一索引或者外键约束可以增强数据的一致性: ```sql ALTER TABLE 课程 ADD PRIMARY KEY (课程号); ALTER TABLE 课程 ADD UNIQUE (课程名); ALTER TABLE 成绩 ADD FOREIGN KEY (课程号) REFERENCES 课程 (课程号); ``` - **3.5 添加/修改表约束** 可以添加或修改表级别的约束: ```sql ALTER TABLE 课程 ADD CONSTRAINT PK_课程 PRIMARY KEY (课程号); ``` - **3.6 删除主索引、表自定义约束、列、唯一索引、外码约束** 如果需要删除这些约束,可以使用以下命令: ```sql ALTER TABLE 课程 DROP PRIMARY KEY; ALTER TABLE 课程 DROP CONSTRAINT PK_课程; ALTER TABLE 成绩 DROP FOREIGN KEY FK_课程; ``` - **3.7 重命名列** 如果需要更改某列的名称,可以使用以下命令: ```sql ALTER TABLE 课程 RENAME COLUMN 先行课 TO 前置课程; ``` #### 4. 删除表 (DROP TABLE) - **4.1 示例_删除表** 当不再需要某个表时,可以使用DROP TABLE命令将其删除: ```sql DROP TABLE 课程; ``` #### 5. 插入数据 (INSERT INTO) - **5.1 示例_插入数据** 向表中插入数据是非常常见的操作: ```sql INSERT INTO 课程 (课程号, 课程名, 先行课, 学分) VALUES (1, '计算机基础', 0, 3); ``` #### 6. 修改数据 (UPDATE) - **6.1 示例_修改数据** 更新表中的数据也很常见: ```sql UPDATE 课程 SET 课程名 = '基础计算机科学' WHERE 课程号 = 1; ``` #### 7. 删除数据 (DELETE FROM) - **7.1 示例_删除数据** 删除表中的记录可以用以下命令: ```sql DELETE FROM 课程 WHERE 课程号 = 1; ``` #### 8. 数据查询 (SELECT) - **8.1 Select命令各子句执行顺序** SELECT命令的执行顺序通常为FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY。了解这一点对于编写高效的查询非常重要。 - **8.2 Select子句** 选择哪些列被返回: ```sql SELECT 课程号, 课程名 FROM 课程; ``` - **8.3 From子句** 指定查询的目标表: ```sql SELECT * FROM 课程; ``` - **8.4 Where子句** 用于筛选查询结果: ```sql SELECT * FROM 课程 WHERE 课程号 = 1; ``` - **8.5 Groupby子句和Having子句** 用于对结果进行分组并过滤分组后的结果: ```sql SELECT 课程名, COUNT(*) AS 课程数量 FROM 课程 GROUP BY 课程名 HAVING COUNT(*) > 1; ``` - **8.6 Orderby子句** 对结果进行排序: ```sql SELECT * FROM 课程 ORDER BY 课程号 ASC; ``` - **8.7 Into/In子句** 指定查询结果的输出位置: ```sql SELECT * FROM 课程 INTO CURSOR TempTable; ``` #### 9. 合并查询 (UNION) - **9.1 示例_合并查询** 将两个或多个SELECT语句的结果合并在一起: ```sql SELECT 课程号, 课程名 FROM 课程 UNION SELECT 课程号, 课程名 FROM 成绩; ``` #### 10. 嵌套查询 - **10.1 示例_嵌套查询** 在一个SELECT语句中使用另一个SELECT语句作为子查询: ```sql SELECT * FROM 课程 WHERE 课程号 IN (SELECT 课程号 FROM 成绩); ``` #### 11. 将查询的结果插入其它表 - **11.1 示例_将查询结果插入其它表** 将一个查询的结果插入到另一个表中: ```sql INSERT INTO 新表 (列1, 列2) SELECT 列1, 列2 FROM 旧表 WHERE 条件; ``` #### 12. 实际应用举例 - **12.1 示例_实际应用** 为了更好地理解如何在实际应用中使用这些SQL命令,以下是一个综合的例子: ```sql -- 创建新表 CREATE TABLE 新表 (课程号 n(4), 课程名 c(30)); -- 插入数据 INSERT INTO 新表 (课程号, 课程名) SELECT 课程号, 课程名 FROM 课程; -- 更新数据 UPDATE 新表 SET 课程名 = '高级计算机基础' WHERE 课程号 = 1; -- 查询并合并结果 SELECT * FROM 新表 UNION SELECT * FROM 课程 INTO CURSOR TempTable; -- 使用嵌套查询 SELECT * FROM 新表 WHERE 课程号 IN (SELECT 课程号 FROM 成绩); -- 删除表 DROP TABLE 新表; ``` 以上例子涵盖了从创建表、插入数据、更新数据、查询数据到删除表的整个流程,同时也展示了SQL命令在实际应用中的强大功能。 本文档详细介绍了Visual FoxPro 9.0中的SQL命令语法,并通过实例演示了如何创建、修改和查询数据。这些基础知识对于初学者来说至关重要,能够帮助他们快速上手并掌握Visual FoxPro中的SQL操作。
2024-12-04 16:40:42 282KB SQL visual foxpro
1
微软的FoxPro小组准备在2004年底发布最新版FoxPro。这条消息使某些人感到很惊讶,因为 我们经常可以听到一些无知的人问“FoxPro?它还存在啊?”。但是在FoxPro社团中下一版 本的FoxPro引起了很大的骚动。新版中将包含一个更快的本地数据引擎,支持更多的数据类 型,SQL语句执行中更大的一致性,一个完全重新设计的可扩展报表编写器,以及一系列效 率和功能增强特性。
2024-10-31 14:24:32 10.31MB Microsoft Visual FoxPro 汉化补丁
1
Visual FoxPro是一款经典的关系型数据库管理系统(RDBMS),由Microsoft公司开发,它以其轻量级、高效能和用户友好的界面而广受好评。在20世纪90年代中期,Visual FoxPro(VFP)成为了许多企业和个人开发者的首选数据库工具,尤其是在小型到中型企业应用中。 1. **发展历程**: Visual FoxPro起源于Fox Software的FoxBase,一款基于DOS操作系统的数据库系统。随着Windows的崛起,FoxBase演化为FoxPro,随后在1995年被Microsoft收购,并发展成面向对象编程的Visual FoxPro。VFP 6.0是其重要版本之一,提供了更丰富的图形用户界面和更强的编程能力。 2. **特性与优势**: - **小巧高效**:相比其他大型数据库系统,Visual FoxPro占用的系统资源较少,运行速度快,尤其适合处理中等规模的数据。 - **易用性**:VFP拥有直观的可视化开发环境,使得数据库设计和程序编写相对简单,适合初学者入门。 - **强大的数据库功能**:支持SQL查询,可以创建复杂的表、视图和索引,进行数据管理。 - **面向对象编程**:VFP引入了类的概念,支持面向对象编程,能够构建可重用的代码模块。 - **报表和表单设计**:内置的报表设计器和表单设计器使得数据展示和交互操作变得方便。 - **集成开发环境**:IDE提供了代码编辑器、调试器、项目管理器等工具,有助于提高开发效率。 3. **文件结构**: 在提供的压缩包文件中,"visual foxpro v6.0.exe"很可能是VFP 6.0的安装程序,用户可以通过这个文件安装该软件。而"多多软件站-www.ddooo.com.url"可能是一个链接,指向一个软件下载网站,用户可以通过这个链接获取更多关于VFP的信息或者更新。 4. **应用领域**: - **桌面应用**:VFP常用于开发桌面应用程序,如库存管理系统、财务软件等。 - **教学**:由于其易学性,VFP曾被许多大学和培训机构作为数据库编程课程的教学工具。 - **小型企业**:对于资源有限的小型企业,VFP是一个经济实惠的数据库解决方案。 5. **未来发展**: 虽然Visual FoxPro已经停止更新,但它的社区依然活跃,许多老用户仍在维护和使用基于VFP的应用。同时,开发者可以利用VFP的知识过渡到其他更现代的数据库技术,如.NET框架或Microsoft SQL Server。 6. **学习资源**: 对于想学习或重温VFP的用户,可以从网上找到大量的教程、论坛讨论和代码示例,如通过"多多软件站"这样的平台获取相关资料。 总结来说,Visual FoxPro是一款具有历史地位的数据库软件,尽管已被更新的技术取代,但它的设计理念和编程模式对现代数据库系统仍有启示作用。对于初次接触数据库管理和编程的用户,Visual FoxPro仍是一个值得学习的平台。
2024-08-22 16:55:49 32.21MB foxpro
1
此Visual FoxPro 9.0 (SP1)简体中文安装版是在原英文版基础上经过汉化重新打包制作而成,已集成SP1补丁,安装时不需输入序列号,不需再汉化,一次性安装成功后即为简体中文版。
2024-05-23 15:28:08 203.57MB
1
早期的练习代码,工具早就已经淘汰了,没有太多价值的代码了。 权当自己备份吧。 FoxPro原名FoxBase,最初是由美国Fox Software公司于1988年推出的数据库产品,在DOS上运行,与xBase系列兼容。FoxPro是FoxBase的加强版,最高版本曾出过2.6。之后于1992年,Fox Software公司被Microsoft收购,加以发展,使其可以在Windows上运行,并且更名为 Visual FoxProFoxPro比FoxBASE在功能和性能上又有了很大的改进,主要是引入了窗口、按钮、列表框和文本框等控件,进一步提高了系统的开发能力。
2024-02-04 17:15:03 487KB foxpro
1
Visual FoxPro 2.5-6.0,可做收藏、学习、研究。Visual FoxPro简称VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。Visual FoxPro源于美国Fox Software公司推出的数据库产品FoxBase,在DOS上运行,与xBase系列相容。FoxPro原来是FoxBase的加强版,最高版本曾出过2.6。之后,Fox Software被微软收购,加以发展, 使其可以在 Windows 上运行, 并且更名为 Visual FoxPro。目前最新版为 Visual FoxPro 9.0,而在学校教学和教育部门考证中还依然延用经典版的 Visual FoxPro 6.0。在桌面型数据库应用中,处理速度极快,是日常工作中的得力助手。
2023-12-21 20:07:48 354.64MB Visual FoxPro 2.5-6.0
1
如何用VFP制作带二维码的证件_Visual_FoxPro_9.0
2023-04-22 13:43:45 123KB vfp
1
Visual FoxPro 6.0/8.0/9.0运行所需动态库,很方便!
2023-03-15 18:07:30 10.73MB FoxPro 运行库
1
《Visual FoxPro程序设计》授课课件5
2022-12-20 18:26:54 246KB 文档资料
1
基于Visual Foxpro 计算机课程设计-- 学生成绩管理系统,适合初学Visual Foxpro的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学Visual Foxpro 程序设计的小伙伴们,你们的成长是我最大的幸福
1