一、绪论

  两个多星期前,我的导师布置了一道作业,就是利用对象查询语言(OQL)对常规的SQL需求进行求解。而对于我一个在面向对象数据库方面,经验可谓无足轻重的新手来说,确实难以下手。不用说,我肯定在拿到题目的瞬间,就想到网上查看有没有类似的答案,可是也基本是瞬间让我倒吸了口冷水:目前有的大部分都是SQL语言的,而就连OQL方面的内容却也是零星散乱的,更加不要说是答案了。不过幸好,在经过两三天都苦熬到凌晨一、两点钟的情况下,自己对OQL有了基本的见解。在作业完成之后,也得到了导师的认可,所以我觉得有必要分享一下个人的解题思路和见解。

二、面向对象数据库设计过程

  这里明明不是说该怎么解题吗,为什么提起面向对象数据库设计过程了呢?由于导师仅给了题目,而没有对对象数据库的结构和联系进行描述,也就是说解题的范围很广。所以,只有明确了对象查询语言(OQL)的应用,是在整个面向对象数据库设计过程的那一阶段,才能帮助我们更好地“凭空”造出一个对象数据库,进而更好地理解题目。

  首先,对象数据库的设计过程分为五步走: 需求分析  -> 画对象联系图,即OR图 ->   建立模型  -> ADT建库  -> OQL数据操作    。整体来看,OQL数据操作的确与对象数据库的设计过程关系不大,但我此处申明的是:要先有库,才能查询。

三、题目与答案

.检索"英语"专业学生所学课程的信息,包括学号、姓名、课程名和分数。
  SELECT S.student_number,S.student_name,S.C.course_name,S.C.grade FROM student S WHERE S.M.major_name="英语";
2检索”数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数。
  SELECT S.student_number,S.student_name,S.M.major_name,S.C.grade FROM student S WHERE S.C.course_name="数据库原理" AND S.C.grade>90;
3检索不学课程号为“C123”课程的学生信息,包括学号,姓名和专业。 
  SELECT S.student_number,S.student_name,S.M.major_name FROM student S WHERE S.student_number NOT IN ( SELECT S.student_number FROM S.course C WHERE C.course_number="C123");

4检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业。 
  SELECT S.student_number,S.student_name,S.M.major_name FROM student S WHERE S.student_number NOT IN ( SELECT S.student_number FROM S.course C WHERE C.grade < 60);

5检索至少选修了李强同学所选修的全部课程的学生姓名。
  SELECT DISTINCT S.student_number FROM student S WHERE S.C.course_number IN ( SELECT S.C.course_number FROM student S WHERE S.student_name="李强");

对象查询语言(OQL)的应用实例的更多相关文章

  1. jhat中的OQL(对象查询语言)

    http://blog.csdn.net/wanglha/article/details/40181767 jhat中的OQL(对象查询语言) 如果需要根据某些条件来过滤或查询堆的对象,这是可能的,可 ...

  2. Java虚拟机性能监测工具Visual VM与OQL对象查询语言

    1.Visual VM多合一工具 Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具,它集成了多种性能统计工具的功能,使用 Visual VM 可以代替jstat.jmap.jha ...

  3. JVM 对象查询语言(OQL)[转载]

    最近生产环境出现一个很奇怪的问题,测试环境无法重现,本地直连生产无法重现.于是用上 jmap + Java VisualVM 的 OQL (Object Query Language) 分析问题. 关 ...

  4. ORM查询语言OQL

    ORM查询语言(OQL)简介--高级篇(续):庐山真貌 相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎 ...

  5. JAVA之旅(十二)——Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口

    JAVA之旅(十二)--Thread,run和start的特点,线程运行状态,获取线程对象和名称,多线程实例演示,使用Runnable接口 开始挑战一些难度了,线程和I/O方面的操作了,继续坚持 一. ...

  6. Object.create() 的含义:从一个实例对象,生成另一个实例对象

    出处:https://wangdoc.com/javascript/oop/object.html#objectcreate 生成实例对象的常用方法是,使用new命令让构造函数返回一个实例.但是很多时 ...

  7. JS中构造函数与原型对象的同名属性,实例会取哪一个

    构造函数与原型对象的同名属性,实例会取哪一个? 看了下面的过程,再回忆JS高程3里关于这部分的示意图.实例my在new的时候,本身就获得了a属性,所以my.a是1,倘若在new的时候如果没有赋予a属性 ...

  8. python中类对象、实例对象、类属性、实例属性、类方法、实例方法、静态方法

    类对象.类属性与实例对象.实例属性的区别 在Python中一切皆是对象,类是一个特殊的对象即类对象,描述类的属性称为类属性.类属性在内存中只有一份,在__init__外部定义. 通过类创建的对象称为实 ...

  9. OQL对象查询语言

    在用mat工具分析内存使用情况查询OutOfMemory原因时,OQL会有很大帮助,所以先在这里总结一下. 基本语法: select <javascript expression to sele ...

随机推荐

  1. Note | 北航《网络安全》复习笔记

    目录 1. 引言 2. 计算机网络基础 基础知识 考点 3. Internet协议的安全性 基础知识 考点 4. 单钥密码体制 基础知识 考点 5. 双钥密码体制 基础知识 考点 6. 消息认证与杂凑 ...

  2. 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 5

    18.5  使用PDO对象 PDO扩展类库为PHP访问数据库定义了一个轻量级.一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据,大大简化了数据 ...

  3. eclipse强行停止buliding workspace

    使用Eclipse的过程中可能会遇到buliding workspace卡在一半走不动的情况. 出现这个情况往往是因为Eclipse太调皮了,需要拉出去打屁股,打一顿就好了. 开玩笑的,事实上出现这个 ...

  4. 五分钟搞定 HTTPS 配置,二哥手把手教

    01.关于 FreeSSL.cn FreeSSL.cn 是一个免费提供 HTTPS 证书申请.HTTPS 证书管理和 HTTPS 证书到期提醒服务的网站,旨在推进 HTTPS 证书的普及与应用,简化证 ...

  5. 数据库——SQL-SERVER练习(1)连接与子查询

    一.实验准备 1.复制实验要求文件及“CREATE-TABLES.SQL”文件, 粘贴到本地机桌面. 2.启动SQL-SERVER服务. 3. 运行查询分析器, 点击菜单<文件>/< ...

  6. [反汇编]函数开始部分利用mov ebx,esp找到返回地址(_KTRAP_FRAME结构)

    我们理解call原理,首先将返回地址压入栈中,之后执行调用. 因此,在一个函数开始部分,esp依旧是上一个栈帧的esp,此时esp指向返回地址. 这就意味着使用 mov ebx,esp,之后 [ebx ...

  7. 如何将vim改造为python的IDE

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Jeffrey Wang PS:如有需要Python学习资料的小伙 ...

  8. C#中巧用Lambda表达式实现对象list进行截取

    场景 有一个对象的list,每个对象有唯一的属性Id,并且是从1递增,现在要根据此Id属性进行截取. 其中DataTreeNode 实现 Global.Instance.PrepareCompareD ...

  9. C#中对文件进行选择对话框打开和保存对话框进行复制

    场景 通过文件选择对话框选择文件 复制文件到指定路径 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号霸道的程序猿获取编程相关电子书.教 ...

  10. CSS @规则

    最近在看极客时间winter大神的重学前端系列,遇到了许多不常用但是很重要的知识点.感觉视野得到了极大的开阔(打个广告,哈哈). 其中css @规则令人印象深刻.简单的做下笔记: @namespace ...