### 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
MySQL命令行爱好者在日常工作中经常会使用到各种工具来提高工作效率,而mycli就是这样一个专为MySQL、MariaDB和Percona设计的高级命令行接口。mycli不仅提供了自动补全功能,还支持语法高亮,极大地提升了数据库管理的便捷性和舒适性。 mycli是由dbcli团队开发的一个开源项目,其源代码托管在GitHub上(https://github.com/dbcli/mycli),用户可以通过参与Gitter聊天室或加入Mailing List(https://groups.google.com/forum/#!forum/mycli-users)来获取帮助和支持。 安装mycli非常简单,如果你熟悉Python包的安装,只需要在命令行运行`pip install mycli`即可。对于macOS用户,可以通过homebrew进行安装:`brew update && brew install mycli`。如果遇到安装问题,可以参考官方的安装页面获取详细的步骤。 使用mycli时,只需在命令行输入`mycli`并加上相应的选项和参数。例如,要连接到名为my_database的数据库,可以使用以下命令: ```bash mycli my_database ``` 或者,如果你想指定用户名、主机和端口,命令如下: ```bash mycli -u my_user -h my_host.com -P 3306 my_database ``` mycli还支持通过URL格式连接数据库: ```bash mycli mysql://my_user@my_host.com:3306/my_database ``` mycli提供了多种连接选项,如设置主机地址(-h, --host),端口(-P, --port),用户(-u, --user),Socket文件(-S, --socket),密码(-p, --password, --pass)以及SSL相关设置等。此外,还有其他实用选项,如版本信息(-V, --version),详细输出(-v, --verbose),以及自定义提示符(-R, --prompt)等。 mycli的自动补全功能可以帮助用户快速输入数据库对象名称,如表名、列名等。语法高亮则让SQL语句在终端中更加清晰易读。同时,mycli还可以记录查询日志(-l, --logfile)并提供别名DSN配置(-d, --dsn, --list-dsn)。 mycli作为一个强大的MySQL命令行工具,不仅提高了数据库操作的效率,也提升了用户体验。对于那些经常在命令行下工作的数据库管理员和开发者来说,mycli是一个不可或缺的利器。它通过自动化和优化交互式体验,使得数据库管理变得更为轻松和愉快。
2024-10-04 22:55:41 62KB mysql 命令行必备工具 cli命令行
1
MySQL命令文档
2023-07-17 10:19:00 44KB MySQL命令文档
1
学习mysql的同学注意啦,该文档有最详细的mysql命令,共享。
2023-07-17 10:18:13 94KB mysql 命令 大全
1
oracle常见SQL命令,oracle查询系统信息命令。。
2023-05-31 19:35:45 2KB oracle
1
计算机二级考试MySQL知识点基础篇,MYSQL常用命令,具体如下 常用MYSQL命令(将计算机二级站点加入收藏夹)   启动:net start mySql;   进入:mysql -u root -p/mysql -h localhost -u root -p databaseName;   列出数据库:show databases;   选择数据库:use databaseName;   列出表格:show tables;   创建数据表:mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1),    -> birth D
2023-03-21 20:26:15 42KB mysql mysql创建数据库 SQL
1
mySql命令大全。你用到的这里全部已经总结好了,使用markdown打开。简洁清晰明了。
2022-11-04 14:05:49 7KB mysql 常用命令
1
mysql命令大家经常会用到,但是很少有朋友整理吧,最近项目不多,抽个时间把mysql数据库命令总结给大家,需要的朋友可以参考下
2022-10-29 17:22:24 108KB mysql命令大全 mysql命令行操作
1
数据库课程设计:校园二手商品交易管理系统(跳蚤市场) 含课程设计报告、数据库备份文件.bak文件、导出的SQL命令.sql 数据库系统课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。本课程分为系统分析、数据库设计两个阶段进行。应用程序设计作为选做内容。
2022-10-04 09:04:22 363KB 数据库
1
alfred-mysql命令行
2022-07-11 19:01:47 1KB mysql
1