打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用VFP的眼光来看待常见的关系代数
用VFP的眼光来看待常见的关系代数

 在讲述数据库理论的书籍中,常见的关系代数通常包括以下几种:并、交、差、积、选择、投影和连接等

下面我们就以VFP程序设计中的观点来谈谈这些关系代数:

并(返回一个关系由指定关系中的所有元素构成),此关系代数并相当于VFP的select语句中的UNION子句

交(返回的关系由同时出现在两个指定的关系中的元组构成),此关系代数交相当于VFP的select语句中的in或exists子句

差(返回的关系由哪些属于第一个关系而不属于第二个关系的元组构成),此关系代数相当于VFP的select语句中的not in或not exists子句

积(返回一个关系,包含任意两个分别来自指定关系的元组组合的所有可能元组),此关系代数相当于VFP的select语句中的全连接

选择(返回一个关系,其中的元组来自指定关系中所有满足指定条件的元组),此关系代数相当于VFP中select语句中的where子句

投影(返回一个关系,有去掉若干属性列后的指定关系中剩余的所有(子)元组组成),此关系代数相当于VFP中select语句中的字段选择列表

连接(返回关系中的元组是两个元组的组合,这两个元组来自两个指定的关系,需要满足的条件是此两个关系存在相同的属性,且在相同的属性上有相同的值),此关系代数相当于VFP中select语句中的连接(join)

现在有数据库info,主要储存参加兴趣活动人员的名单,里面有数学组和文学组两个表,具体数据如下

表名:数学组                                                            
学号         姓名        班级    
40601001 张发        140
30602026 李明        135
30603022 李保国        135

表名:文学组 
学号         姓名        班级
40601001 张发        140
40601234 王海        145
40601045 张波        141

关系代数并:返回所有参加兴趣活动的人员名单
语句如下:
SELECT * FROM 数学组 UNION select * FROM 文学组
结果如下:
学号         姓名 班级
30602026 李明 135
30603022 李保国 135
40601001 张发 140
40601045 张波 141
40601234 王海 145

关系代数交:返回同时参加数学组和文学组的兴趣活动人员名单
语句如下:
SELECT * FROM 数学组 WHERE 学号 in (SELECT 学号 FROM 文学组)
结果如下:
学号         姓名 班级
40601001 张发 140

关系代数差:返回参加数学组但没有参加其它兴趣活动小组的人员名单
语句如下:
SELECT * FROM 数学组 WHERE 学号 not in (SELECT 学号 FROM 文学组)
结果如下:
学号         姓名 班级
30602026 李明 135
30603022 李保国 135

关系代数积:返回每一个人参加的兴趣活动小组的统计
语句如下:
SELECT *,IIF(ISNULL(数学组.学号),"    ","参加") as 参加数学组,IIF(ISNULL(文学组.学号),"  "," 参加") as 参加文学组 FROM 数学组 FULL JOIN 文学组 ON 数学组.学号=文学组.学号
结果如下:
学号_a 姓名_a 班级_a 学号_b 姓名_b 班级_b 参加数学组 参加文学组
40601001 张发 140 40601001 张发 140 参加  参加
30602026 李明 135    参加 
30603022 李保国 135    参加 
   40601234 王海 145   参加
   40601045 张波 141   参加
在刚刚连接查询的基础上再次查询得出结果:
SELECT IIF(ISNULL(学号_a),学号_b,学号_a) as 学号,参加数学组,参加文学组 FROM query
结果如下:
学号     参加数学组 参加文学组
40601001 参加  参加
30602026 参加 
30603022 参加 
40601234   参加
40601045   参加


关系代数选择:返回135班参加数学兴趣活动小组的人员名单
语句如下:
SELECT * FROM 数学组 WHERE 班级=135
结果如下:
学号         姓名 班级
30602026 李明 135
30603022 李保国 135

关系代数投影:返回参加数学兴趣活动小组人员的姓名和学号信息
语句如下:
SELECT 姓名,学号 FROM 数学组
结果如下:
姓名   学号
张发 40601001
李明 30602026
李保国 30603022

关系代数连接:返回同时参加两个兴趣活动小组人员信息
语句如下:
SELECT 数学组.* FROM 数学组 inner join 文学组 on 数学组.学号=文学组.学号
结果如下:
学号         姓名 班级
40601001 张发 140

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
4-1
第02章 关系型数据库基础
关系模型介绍
四年级(上册)数学计算题200道
SQL语句复习
VFP中SQL语句的灵活运用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服