QBE(Query By Example)简介:
- 操作独特,基于屏幕表格的查询语言,不用书写复杂的公式,只需将条件填在表格中即可
- 是一种高度非过程化的查询语言
- 特别适合于终端用户的使用
QBE界面:
关系名:填入要查询的关系表格
属性名:用于显示对应关系名区关系的所有属性名
操作命令区:用于书写查询操作的命令
- Print 或 P. → 显示输出操作
- Delete 或 D. → 删除操作
- Insert 或 I. → 插入操作
- Update 或 U → 更新操作
查询条件:用于书写查询条件,例如"Age<17"等
示例:
①Student表元组删除:
②找出年龄小于17岁的所有女同学:
- 如果没有符号,则默认等号,例如上面的"Female"其实就是"=Female"
- 各个条件之间是"且"的关系
③将张三同学的年龄更新为19岁
QBE中的"与"和"或
①找出年龄小于17或者年龄大于20的所有同学的姓名
- 如果值下面有下划线,例如上面的X和Y,那么说明其为域变量,被称为示例元素,示例元素下划线上面的值不起作用,只用于占位或是连接条件
- 如果只显示姓名,就在姓名那一列下面打上"P.",而不是在操作区,上同
②找出年龄大于17且小于等于20的所有同学的姓名
上面两个条件的示例元素都是X,这也意味着>17和≤20两个条件被连接了,就相当于"且"的关系
③找出年龄小于17的男生或者年龄大于20的女生的所有同学姓名
"与""或""非"可以放在操作区中,对整体条件而言,相当于将该行条件放在括号中
QBE的查询条件(用示例元素实现多个表的连接)
①查询李明老师教过的所有学生的信息
当检索涉及多个表时,可利用同一连接条件使用相同的示例元素来实现多个表的连接
②查询计算机系年龄大于19岁或者性别为男的同学的姓名
其中"张三""李四"只是为了区分,相当于是随便打的,所有下划线上面的名字都可以随意,下同
用QBE进行查询的构造
①将每位同学的年龄增加1岁
②找出比男同学张三年龄大的所有男同学的姓名
③找出成绩不及格同学的姓名及不及格的课程和分数
注意要同时打印同学姓名、课程和分数