在进行数据库查询时,有时需要用到对既有的数据表进行多表查询得出的临时条件的数据表,就可以暂时创建成为虚表,并赋予简单明了的字段名以及临时表名。

例题a:查询出每门课程低于平均成绩的学生姓名、课程名称、分数

分析:

1. 要完成题目,首先需要一张所有学生的课程及分数表,所需字段:学生姓名、课程名称、分数;

select a.Name as Name,b.C_name as C_name,b.Grade as Grade from students a,score b where a.Id=b.stu_id; #可以将临时创建的虚表定义为st,以备后用

2. 另外还需要一张各课程的平均分数的表,所需字段:课程名称、平均分数

select C_name,avg(Grade) as avgScore from score group by C_name; #创建虚表av

3. 利用新建的虚表st、av完成题目

select st.*,av.avgscore from

(select a.Name as Name,b.C_name as C_name,b.Grade as Grade

from students a,score b

where a.Id=b.stu_id) as st,

(SELECT C_name,avg(Grade) as avgScore from score group by C_name) as av

where st.C_name=av.C_name and st.Grade

例题b:查询同时参加计算机和英语考试的学生的信息

分析:

1. 要完成题目,分别需要所有学习计算机课程的学生id,以及所有学习英语课程的学生id,所需字段:学生ID,课程名称;

(SELECT stu_id AS stu_id1,c_name FROM scoreWHEREc_name = "计算机") AS computer;

(SELECT stu_id AS stu_id2,c_name FROM scoreWHEREc_name = "英语") ASenglish;

2. 通过各个表中的学生学号信息,找出同事参加计算机和英语考试的学生的信息

SELECT students.*

FROM

students,

(SELECT stu_id AS stu_id1,c_name FROM scoreWHEREc_name = "计算机") AS computer,

(SELECT stu_id AS stu_id2,c_name FROM score WHERE c_name = "英语") AS english

where computer.stu_id1=english.stu_id2 and students.id=computer.stu_id1;

MySQL数据库虚表_【MYSQL】创建虚表来辅助数据库查询相关推荐

  1. mysql基本语句实验二 修改表的结构-- 1、修改数据库-- 修改实验一中创建的学生管理数据库studentmanager的字符集为gbk。

    -- 1.修改数据库 -- 修改实验一中创建的学生管理数据库studentmanager的字符集为gbk. alter database studentmanager DEFAULT CHARACTE ...

  2. mysql实例管理工具巨杉_使用_操作_MySQL实例_关系型数据库实例_文档中心_SequoiaDB巨杉数据库...

    使用 用户安装好 MySQL 实例组件后,可直接通过 MySQL Shell 使用标准的 SQL 语言访问 SequoiaDB 巨杉数据库. 连接MySQL实例与数据库分布式存储引擎 配置 Sequo ...

  3. java获取mysql的数据_【助教】Java获取数据库数据展示

    本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...

  4. 软件测试mysql常用语句_【松勤软件测试】数据库常见面试题总结

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 数据库在笔试题的时候会让你写,但是在面试的时候,面试官不会说出题目给你,让你口头回答这道题这么做,有时候他可能会问删除用什么命名或者啥的,虽然基础,但是真 ...

  5. win7两个mysql数据同步_两台服务器两个数据库怎么实现数据同步备份。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 SQL Server 2008 镜像 环境设置. 初始环境: 1.主机 Win7 + SQL Server 2008 R2 IP地址:192.168.56 ...

  6. mysql 元数据获取_[MySQL] 获取元数据的步骤

    [MySQL] 获取元数据的方法 MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysql ...

  7. mysql异常恢复工具_[MySQL异常恢复]mysql ibd文件恢复

    在mysql中由于某种原因保存有ibd文件,但是表已经被删除或者frm文件损坏亦或者ibdata文件损坏/丢失等.本文模拟在这种情况下,通过mysql自身技术即可完成ibd文件恢复. 测试环境mysq ...

  8. mysql 索引未命中_联合索引命中率问题导致SQL查询效率慢的问题

    执行 MySQL DumpSlow 结果是:Count: 1358  Time=0.33s (448s)  Lock=0.00s (0s)  Rows=2.5 (3343) Count:出现次数 Ti ...

  9. mysql grant select()_[MySQL] - MySQL的Grant命令

    MySQL 赋予用户权限命令的简单格式可概括为: grant权限on数据库对象to用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grantselectonte ...

  10. azure云服务器搭建连接_如何创建到Azure SQL数据库的链接服务器

    azure云服务器搭建连接 Linked servers allow to access data from another SQL Server or another data source (e. ...

最新文章

  1. pandas将dataframe的索引转化为列表list数据(convert dataframe index into a list)
  2. 第二课unit2 控制对文件的访问
  3. 设置 Nuget 本地源、在线私有源、自动构建打包
  4. ubuntu下chrome以代理模式启动
  5. Python 测试开发教程
  6. jmeter 获取全部响应_Jmeter获取响应结果中参数出现的次数
  7. php模板引擎循环start,PHP模板引擎Smarty内建函数section,sectionelse用法详解
  8. js cookie 存储checkbox_浏览器数据存储方式总结,网友:“精辟”!
  9. Redisson 配置
  10. 中国大学MOOC 视频字幕获取方法
  11. Centos 安装Flash控件
  12. 【Java】为什么不推荐程序员去外包公司?
  13. SourceInsight4.0的使用
  14. 麻将判断胡牌 java_麻将基本胡的算法——Java
  15. 【B站】陈睿:令人刮目相看的年轻一代
  16. mongoDb一对多之springboot demo
  17. Alpha选股:资本资产定价模型(CAPM)
  18. 高通SDX62平台 MBIM搜网、查询信号等功能异常
  19. ElasticSerach 出现 high disk watermark [90%] exceeded on
  20. 算法:挑选出100瓶药水中有且仅有1瓶毒药水所需的最少老鼠数量?

热门文章

  1. 坐缆车题解-dijkstra
  2. ffmpeg将文件夹中的一批图片转成视频
  3. 试题 算法提高 找出出卖耶稣的人(Java)
  4. C语言小游戏快速入门--三子棋
  5. CUCM实现黑名单功能
  6. 蓝桥杯-------美丽的2 java实现
  7. [摄影基本学习]-03-基础了解(从零开始手把手教你学摄影)
  8. java图片路径怎么设_java图片路径问题
  9. 知客CRM签约建研科技股份有限公司设计软件事业部
  10. 拉格朗日乘子法、极大似然估计、EM算法