除了最为常用的SQL语句之外,还存在着几种不常用的数据库语言,这里简单介绍,了解即可。
一种程序性语言,可以与SQL对应着转换,语法即转换规则如下:
例如:
对应 SELECT * FROM instructor JOIN teaches ON instructor.ID = teaches.ID WHERE dept_name = ‘Physics’;
RA是从行为上描述我们需要咋样将数据从数据库中取出,而RC包括TRC和DRC都是从逻辑上描述我们需要从数据库中取出什么样的数据,因此RC语言不能直接与SQL语句进行转换,这里只简单介绍两种RC语言的语法。
TRC就是用一个集合表示要查询的数据,左边为要查询的列,右边为数据所有满足的条件。
例如:
{ S.name | Student(S) Λ S.grade > 90 } 表示查询所有分数大于90的学生的名字。
需要注意的是,TRC与逻辑运算一致,都有所有(ALL)和存在(EXIST)的区别。
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