数据库设计 Relational Language
创始人
2024-03-22 02:13:35

除了最为常用的SQL语句之外,还存在着几种不常用的数据库语言,这里简单介绍,了解即可。

Relational Algebra(RA)

一种程序性语言,可以与SQL对应着转换,语法即转换规则如下:

  1. σ:与WHERE对应,表示查询条件
  2. Λ:与AND对应,在查询条件中做与
  3. ν:与OR对应,在查询条件中做或
  4. ¬:与NOT对应,在查询条件中做非
  5. Π:与SELECT对应,表示查询列
  6. x:笛卡尔积,用于连接多个数据表,没有明确的关键字对应,相当于FROM之后写多个数据表,通常与WHERE一起使用
  7. ⋈:与JOIN对应,用于横向连接多个数据表,下标的条件即为JOIN条件,相当于JOIN ON之后的条件,默认为INNER JOIN
    ⟕,⟖,⟗:分别对应LEFT JOIN,RIGHT JOIN和OUTTER JOIN,下标同样对应ON
  8. U:与UNION对应,用于纵向连接两个结构一样的数据表或查询结果,也就是取并集
  9. ∩:与INTERSECT对应,用于取两个结构相同的数据表或查询结果的交集
  10. -:与EXCEPT对应,从 - 之前的数据表中删除 - 之后的数据表中的数据
  11. ←:与WITH AS对应,设计预订的查询语句,并为其起一个名字,结构为 name ← sql
  12. ρ:与AS部分对应,用于重命名获取的列
  13. ():与FROM对应,表示查询的数据表
    具体条件以下标的形式写在符号的右下角。

例如:
在这里插入图片描述
对应 SELECT * FROM instructor JOIN teaches ON instructor.ID = teaches.ID WHERE dept_name = ‘Physics’;

与SQL语句的不同

  1. SQL语句是支持内部进行算数运算的,但RA不支持
  2. 不能排序,即没有与ORDER BY对应的符号
  3. 无法聚合,即没有与COUNT,AVG,MIN,MAX等函数对应的关键字

Tuple Relational Calculus(TRC)

RA是从行为上描述我们需要咋样将数据从数据库中取出,而RC包括TRC和DRC都是从逻辑上描述我们需要从数据库中取出什么样的数据,因此RC语言不能直接与SQL语句进行转换,这里只简单介绍两种RC语言的语法。
TRC就是用一个集合表示要查询的数据,左边为要查询的列,右边为数据所有满足的条件。
例如:
{ S.name | Student(S) Λ S.grade > 90 } 表示查询所有分数大于90的学生的名字。
在这里插入图片描述
需要注意的是,TRC与逻辑运算一致,都有所有(ALL)和存在(EXIST)的区别。
在这里插入图片描述

Domain Relational Calculus(DRC)

DRC与TRC类似,只是在写法上有一些不同,这里只举几个例子,即可领会其中的区别:
DRC在右侧必须是与数据表结构严格对应,如果一个列不需要返回,那么只要在左侧不写就好。
{ | ε STUDENT} :去所有学生的所有数据
{ | ε STUDENT} Λ i =123 } : 取所有学号为123的学生的数据
{ | ε STUDENT} Λ i =456 }:取学号为456的学生的名字
{ | ε instructor Λ s > 80000}:取薪水大于80000的讲师的id
在这里插入图片描述
:Find the names of all instructors in the Physics department together with the course id of all courses they teach
在这里插入图片描述
: Find the names of all instructors whose department is in the Watson building

相关内容

热门资讯

AI进医院,边界在哪? 数据来源:国家卫生健康委等 随着深度学习技术的突破和大数据时代的到来,AI(人工智能)正加速应用到医...
扬泰机场飞行区南区滑行道正式投... (来源:中国民航网)转自:中国民航网《中国民航报》、中国民航网 记者胡夕姮 通讯员武小吉 报道:1月...
1月23日生意社炼焦煤基准价为... 生意社01月23日讯 1月23日,生意社炼焦煤基准价为1476.25元/吨,与本月初(...
广西气象代表团访问越南 应越南气象和水文局邀请,1月12日至16日,广西壮族自治区气象局代表团赴越南访问。此次访问既是落实第...
券商晨会精华:商业航天产业正迈... 财联社1月23日讯,昨日市场午后震荡回升,三大指数集体翻红,创业板指走势较强。沪深两市成交额2.69...