mysql 查询小demo

两张表的的结构如下,需求是写出从one表到two表和从two表到one表的查询转换。

create table student_one(
	name varchar(50) default ‘‘ not null,
	type varchar(10) not null default 0,
	score float(5,2) not null default 0.00
)Engine=innodb;

create table student_two(
	name varchar(50) default ‘‘ not null,
	math  float(5,2) not null default 0.00,
	english float(5,2) not null default 0.00,
	chinese float(5,2) not null default 0.00
)Engine=innodb;

  目前表中数据如下所示

以表one为基准查出表two的格式的语句如下:

select a.name,a.score as ‘math‘,b.score as ‘chinese‘,c.score as ‘english‘
from student_one a join student_one b join student_one c
on a.name=b.name and a.name=c.name and b.name=c.name
where a.type=‘math‘ and b.type=‘chinese‘ and c.type=‘Engine‘;

查询结果如下图所示:

  

以表two为基准查出表one的格式的语句如下:

select a.name,a.math as score,‘math‘ as type from student_two a
union
select b.name,b.english as score,‘english‘ as type from student_two b
union
select c.name,c.chinese as score,‘chinese‘ as type from student_two c;

  查询结果如下:

时间: 2024-10-12 22:10:35

mysql 查询小demo的相关文章

Mysql查询小作业

数据准备drop table if exists class;create table class(    class_no int(2) unsigned zerofill primary key auto_increment comment '班级编号',    class_name varchar(30) not null comment '班级名称');insert into class values(1, '培优班');insert into class values(2, '普通班'

SpringBoot-Vue实现增删改查及分页小DEMO

前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot搭配vue完成前后端分离项目的开发流程. 开发栈 前端 开发工具:WebStorm 开发框架:vue + axios 包管理工具: npm 打包工具:webpack 后端 开发工具:IDEA 开发框架:Springboot + mybatis 打包工具:maven 数据库: MySQL PS:假设以上的的工具你都安装好啦,写CRUD小DEMO时进坑了,这篇

第一个spring小demo

工作中用spring有一年多了,基本弄懂了bean配置文件的配置,但是却没有对spring配置文件,加载有更多的认识,今天动手写了第一个spring的小demo. 这个demo之前是想做web版的,但是web的启动比较麻烦,不如直接使用main方法执行直观,所以,就使用main方法来读取配置文件,启动spring. 看一下项目的结构  其中src部分是项目源码 和 配置文件applicationContext.xml WebContent 目录下面的WEB-INF/lib 目录下面存放的是spr

Mysql查询缓存碎片、缓存命中率及Nagios监控

Mysql 的优化方案,在互联网上可以查找到非常多资料,今天对Mysql缓存碎片和命中率作了详细了解,个人作了简单整理. 一.Mysql查询缓存碎片和缓存命中率. mysql> SHOW STATUS LIKE 'qcache%'; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | Qcache_free_blocks | 5 |

mysql查询缓存打开、设置、参数查询、性能变量意思

http://blog.sina.com.cn/s/blog_75ad10100101by7j.html http://www.cnblogs.com/zemliu/archive/2013/08/03/3234372.html 第一: query_cache_type 使用查询缓存的方式 一般,我们会把 query_cache_type 设置为 ON,默认情况下应该是ON mysql> select @@query_cache_type;+--------------------+| @@qu

MYSQL查询性能优化

查询的基础知识 MySQL查询过程如下图所示: MySQL是通过查询语句的哈希查找来命中缓存的,需要注意的是如果查询语句大小写不一致或者有多余的空格,是不会命中缓存的. 一个查询通常有很多执行方式,查询优化器通过计算开销(随机读取次数)来选择最优的查询. MySQL把所以的查询都当做联接来处理,联接是按照循环嵌套的策略来执行的,如下图所示: 查询的优化和限制 我们需要知道查询优化器会做哪些优化,这样在写查询的时候就可以不需要考虑手动来做这些优化,把这些事情交给查询优化器去做是更好的选择,查询优化

MySQL查询数据表中数据记录(包括多表查询)

MySQL查询数据表中数据记录(包括多表查询) MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: select selection_list // 要查询的内容,选择哪些列 from table_list // 从什么表中查询,从何处选择行 where primary_

window10系统下使用python3.3版本实现mysql查询

参考文档: 兔大侠整理的MySQL-Python(MySQLdb)封装类 Python安装模块出错(ImportError: No module named setuptools)解决方法 环境 windows10 | python3.3 1.确保已经安装setuptools 方法如下:>下载安装的脚本https://bootstrap.pypa.io/ez_setup.py,下载该脚本后运行 >python ez_setup.py >即可.脚本会自动判断python的版本,自动下载,安

MySQL查询缓存打开、设置、参数查询、性能变量

query_cache_type 使用查询缓存的方式 一般,我们会把query_cache_type 设置为 ON,默认情况下应该是ON mysql> SELECT @@query_cache_type; +--------------------+ | @@query_cache_type | +--------------------+ | ON | +--------------------+ query_cache_type有3个值 0代表关闭查询缓存OFF,1代表开启ON,2(DEMA