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

例题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. Snap和Flatpak 通吃所有发行版的打包方式。
  2. mysql不支持addbatch_【MySql】Java 批量插入数据库addBatch
  3. 10元权限gm游戏_游戏P图超能打!揭秘10年老本儿500元升级计划
  4. u盘添加veket linux,veket要怎样才能安在u盘上?
  5. wpf template的code写法
  6. Flutter如何与Native(Android)进行交互
  7. C4C HTML mashup debug
  8. golang 字符串操作实例
  9. Web前端开发面试考点指南
  10. java 生成枚举_为什么编译器在Java中生成Enums?
  11. linux mint安装类型,如何在Linux Mint 16中正确安装Ubuntu One
  12. HDU 1074 Doing Homework 状态压缩 + 搜索
  13. 阅读圣经丨变量引起的上下文
  14. 把树莓派用于YAAW离线下载的Mass Storage U盘用虚拟目录建到Vsftpd的子目录里去
  15. 用c#语言制作点歌程序,c#实现KTV点歌系统
  16. 台式计算机那里可以录音,录音机怎么录音?电脑录音介绍
  17. 通信行业英文缩写整理(待更新)
  18. solr4.3 solrconfig.xml配置文件
  19. 用apktool反编译,修改添加smali文, 再打包apk遇到的64k问题的解决方法 Unsigned short value out of range: 65536
  20. Convex Optimization 凸优化学习 第三章 凸函数(一)

热门文章

  1. android控件复制,修改Delphi 10.1.2 edit控件在android的复制、剪切和粘贴样式
  2. 零拷贝:mmap和sendFile 的区别
  3. Ubuntu实用工具安装(不断更新)
  4. Hadoop历险记(七 Hive配置和启动hiveservice2服务)
  5. 西门子200/300PLC转以太网同时实现PPI/MPI/DP转modbus通信
  6. 品牌营销策略:如何有效打造品牌知名度与口碑?
  7. 毕业设计-基于微信小程序的精准健康管理系统
  8. 王者荣耀服务器维护9月27,《王者荣耀》ios更新不了怎么办 9月27日更新失败解决方法...
  9. 编程读取SMBIOS指定Type信息
  10. 12.OpenWrt-OPKG包管理