1、创建成绩表,字段包括:学生姓名,语文成绩,数学成绩,英语成绩

向表中插入多条数据;
查询:

  (1) 查询所有学生的数学成绩和总成绩

  (2) 查询所有学生的语文和数学成绩和,按从高到低排序

  (3) 查询班级总成绩最高的学生姓名

  (4) 查询班里所有姓李学生的总成绩最高的姓名

创建表

CREATE TABLE grade (
name VARCHAR(20) NOT NULL ,
chinese_score FLOAT NOT NULL ,
math_score FLOAT NOT NULL ,
english_score FLOAT NOT NULL
) CHARACTER SET utf8;

  

mysql> DESC grade;
+---------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| name | varchar(20) | NO | | NULL | |
| chinese_score | float | NO | | NULL | |
| math_score | float | NO | | NULL | |
| english_score | float | NO | | NULL | |
+---------------+-------------+------+-----+---------+-------+

  

插入记录

INSERT grade VALUES('李白',88,99,77),('杜甫',77,88,99),('白居易',99,88,77);

  

1、

mysql> SELECT SUM(math_score) FROM grade;
+-----------------+
| SUM(math_score) |
+-----------------+
| 275 |
+-----------------+
1 row in set (0.00 sec)

  

2、

mysql> SELECT name,chinese_score+math_score AS '语文+数学' FROM grade ORDER BY chinese_score+grade.math_score DESC ;
+-----------+---------------+
| name | 语文+数学 |
+-----------+---------------+
| 李白 | 187 |
| 白居易 | 187 |
| 杜甫 | 165 |
+-----------+---------------+
3 rows in set (0.00 sec)

  

3、

mysql> SELECT name AS '姓名',chinese+math+english AS '总分' FROM grade WHERE(chinese+math+english=(SELECT MAX(chinese+math+english)FROM grade));
+--------+--------+
| 姓名 | 总分 |
+--------+--------+
| 李白 | 264 |
+--------+--------+
1 row in set (0.00 sec)

4、

mysql> SELECT name AS '姓名',chinese+math+english AS '总分' FROM grade WHERE(chinese+math+english=(SELECT MAX(chinese+math+english)FROM grade)and name like '李%');
+--------+--------+
| 姓名 | 总分 |
+--------+--------+
| 李白 | 264 |
+--------+--------+
1 row in set (0.00 sec)

另一种方法,高分排序,取第一个,order by ,limit 1

2、创建一张某超市的购物表,字段包括:商品名,购物价格,商品生茶日期,商品分类;

向该表中插入多条数据;

查询:(1)每一类商品花的总价格

(2)统计每类商品各有多少件

(3)统计水果花了多少钱(两种方式实现)

(4)统计购买的2017-01-12日生产的商品中价格最贵的商品(插入的数据中包括2017-01-12生产的商品)

(5)统一购买商品的总价格

CREATE TABLE order_menu(
id INT PRIMARY KEY auto_increment,
product_name VARCHAR (20),
price FLOAT(6,2),
born_date DATE,
class VARCHAR (20)
) CHARACTER SET utf8; INSERT order_menu (product_name,price,born_date,class) VALUES
("苹果",20,20170112,"水果"),
("香蕉",80,20170602,"水果"),
("水壶",120,20170112,"电器"),
("被罩",70,20170612,"床上用品"),
("音响",420,20170112,"电器"),
("床单",55,20170612,"床上用品"),
("草莓",34,20170612,"水果"); mysql> DESC order_menu;
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| product_name | varchar(20) | YES | | NULL | |
| price | float(6,2) | YES | | NULL | |
| born_date | date | YES | | NULL | |
| class | varchar(20) | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

  

1、

mysql> SELECT class,sum(price) FROM order_menu GROUP BY class;
+--------------+------------+
| class | sum(price) |
+--------------+------------+
| 床上用品 | 125.00 |
| 水果 | 134.00 |
| 电器 | 540.00 |
+--------------+------------+
3 rows in set (0.00 sec)

  

2、

mysql> SELECT class,count(product_name) FROM order_menu GROUP BY class;
+--------------+---------------------+
| class | count(product_name) |
+--------------+---------------------+
| 床上用品 | 2 |
| 水果 | 3 |
| 电器 | 2 |
+--------------+---------------------+
3 rows in set (0.00 sec)

  

3、

mysql> SELECT sum(price) FROM order_menu WHERE class='水果';
+------------+
| sum(price) |
+------------+
| 134.00 |
+------------+
1 row in set (0.00 sec)

3、

mysql> SELECT class,sum(price) FROM order_menu GROUP BY class HAVING class='水果';
+--------+------------+
| class | sum(price) |
+--------+------------+
| 水果 | 134.00 |
+--------+------------+
1 row in set (0.00 sec)

  

4、

mysql> SELECT product_name,price FROM order_menu WHERE born_date=20170112 ORDER BY price DESC limit 1;
+--------------+--------+
| product_name | price |
+--------------+--------+
| 音响 | 420.00 |
+--------------+--------+
1 row in set (0.00 sec)

  

5、

mysql> SELECT sum(price) FROM order_menu;
+------------+
| sum(price) |
+------------+
| 799.00 |
+------------+
1 row in set (0.00 sec)

  

MySQL 查询语句练习1的更多相关文章

  1. MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图

    http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...

  2. mysql查询语句,通过limit来限制查询的行数。

    mysql查询语句,通过limit来限制查询的行数. 例如: select name from usertb where age > 20 limit 0, 1; //限制从第一条开始,显示1条 ...

  3. MYSQL查询语句大全集锦

    MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...

  4. MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介

    网站或服务的性能关键点很大程度在于数据库的设计(假设你选择了合适的语言开发框架)以及如何查询数据上. 我们知道MySQL的性能优化方法,一般有建立索引.规避复杂联合查询.设置冗余字段.建立中间表.查询 ...

  5. MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)

    在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:

  6. mysql查询语句集

    1. mysql 查询出某字段的值不为空的语句 1.不为空 select * from table where id <> ""; select * from tabl ...

  7. [转]MySQL查询语句执行过程详解

    Mysql查询语句执行原理 数据库查询语句如何执行?语法分析:首先进行语法分析,对使用sql表示的查询进行语法分析,生成查询语法分析树.语义检查:检查sql中所涉及的对象以及是否在数据库中存在,用户是 ...

  8. Mysql查询语句中字符型字段不区分大小写解决方法

    项目中和前端联调的时候,发现Mysql查询语句中字符型字段值过滤是不区分大小写的,之前没有关注过这个设置,特意去网上看了下,原因是Mysql中“COLLATE”属性区分大小写,而该属性默认值为“utf ...

  9. php面试专题---MYSQL查询语句优化

    php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...

  10. Mysql查询语句执行过程

    Mysql查询语句执行过程   Mysql分为server层和存储引擎两部分,或许可以再加一层连接层   连接层(器) Mysql使用的是典型的C/S架构.连接器通过典型的TCP握手完成连接. 需要注 ...

随机推荐

  1. java编程思想 内容总结

    Java编程思想重点笔记(Java开发必看) Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面 试过程中,而且 ...

  2. C++STL——set

    一.相关定义 set 集合,有唯一性,即每一个元素只有一个: 是一个有序的容器,里面的元素都是排序好的: 支持插入,删除,查找等操作. 注意 set中的元素可以是任意类型的,但是由于需要排序,所以元素 ...

  3. Remix-Solidity IDE上run选项下Environment选择Web3 Provider,出现不能连接到测试网Ganache提示

    解决办法:通常情况下,自己使用的浏览器IDE是:https://ethereum.github.io/browser-solidity,如果出现连接不到Ganache测试网的提示,可以使用另一种浏览器 ...

  4. http长连接和短连接以及连接的本职

    HTTP长连接和短连接原理浅析 本文主要讲了,http长连接本质是tcp的长连接. 网络通信过程中,建立连接的本质是什么? 连接的本质 建立连接这个词,是从早期的电话系统中来的,那个时候,“建立连接” ...

  5. 浅谈c语言和c++中struct的区别

    今天做二叉树的时候,发现利用结构体有点乱,不知道怎么回事,我之前知道c语言中声明一个结构体变量时需要通过 struct 结构体名 变量名,而在c++中,可以不要struct,由于可以利用typedef ...

  6. Hadoop2.6.0 完全分布式搭建

    1 搭建这个完全分布式的前提环境: 配置好了jdk环境 配置好了ssh免密码登录(详见我的另外一篇博客,专门说ssh免密码登录) 我这里设置了四台机器,一台做master,另外三台做slave,hos ...

  7. wutianqi 博客 母函数

    母函数(Generating function)详解 — Tanky Woo 在数学中,某个序列的母函数(Generating function,又称生成函数)是一种形式幂级数,其每一项的系数可以提供 ...

  8. Top K 算法详解

    http://xingyunbaijunwei.blog.163.com/blog/static/7653806720111149318357/ 问题描述         百度面试题:        ...

  9. 健康领域今年开始井喷了,养老地产和私人医生这两个领域目测成为下一轮BAT在健康领域布局的竞争方向

    医疗行业做了六年多的时间,今年到了井喷的阶段,腾讯先是入股了丁香园,然后又一亿美金融资挂号网,春雨医生获得5000万美元的C轮融资,这是要上市的节奏.. 从互联网战略上,健康网和医疗网都是做资料刚开始 ...

  10. hibernate笔记(四)

    目标: 一.hibernate查询 二.hibernate对连接池的支持 三.二级缓存 一.hibernate查询 1. 查询概述 1) Get/load主键查询 2) 对象导航查询 3) HQL查询 ...