基于关系域演算的QBE语言

QBE(Query By Example)简介:

  • 操作独特,基于屏幕表格的查询语言,不用书写复杂的公式,只需将条件填在表格中即可
  • 是一种高度非过程化的查询语言
  • 特别适合于终端用户的使用


QBE界面:

基于关系域演算的QBE语言_第1张图片

关系名:填入要查询的关系表格

属性名:用于显示对应关系名区关系的所有属性名

操作命令区:用于书写查询操作的命令

  • Print 或 P.    →    显示输出操作
  • Delete 或 D.    →    删除操作
  • Insert 或 I.    →    插入操作
  • Update 或 U    →    更新操作

询条件:用于书写查询条件,例如"Age<17"等

示例:

①Student表元组删除:

基于关系域演算的QBE语言_第2张图片

②找出年龄小于17岁的所有女同学:


  • 如果没有符号,则默认等号,例如上面的"Female"其实就是"=Female"
  • 各个条件之间是"且"的关系

③将张三同学的年龄更新为19岁



QBE中的"与"和"或

①找出年龄小于17或者年龄大于20的所有同学的姓名


  • 如果值下面有下划线,例如上面的X和Y,那么说明其为域变量,被称为示例元素,示例元素下划线上面的值不起作用,只用于占位或是连接条件
  • 如果只显示姓名,就在姓名那一列下面打上"P.",而不是在操作区,上同

②找出年龄大于17且小于等于20的所有同学的姓名


上面两个条件的示例元素都是X,这也意味着>17和≤20两个条件被连接了,就相当于"且"的关系

③找出年龄小于17的男生或者年龄大于20的女生的所有同学姓名


"与""或""非"可以放在操作区中,对整体条件而言,相当于将该行条件放在括号中


QBE的查询条件(用示例元素实现多个表的连接)

①查询李明老师教过的所有学生的信息

基于关系域演算的QBE语言_第3张图片

当检索涉及多个表时,可利用同一连接条件使用相同的示例元素来实现多个表的连接

②查询计算机系年龄大于19岁或者性别为男的同学的姓名

基于关系域演算的QBE语言_第4张图片

其中"张三""李四"只是为了区分,相当于是随便打的,所有下划线上面的名字都可以随意,下同


用QBE进行查询的构造

①将每位同学的年龄增加1岁

基于关系域演算的QBE语言_第5张图片

②找出比男同学张三年龄大的所有男同学的姓名

基于关系域演算的QBE语言_第6张图片

③找出成绩不及格同学的姓名及不及格的课程和分数

注意要同时打印同学姓名、课程和分数

基于关系域演算的QBE语言_第7张图片



你可能感兴趣的:(#,数据库)