MySQL 查询语句练习1
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的更多相关文章
- MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图
http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...
- mysql查询语句,通过limit来限制查询的行数。
mysql查询语句,通过limit来限制查询的行数. 例如: select name from usertb where age > 20 limit 0, 1; //限制从第一条开始,显示1条 ...
- MYSQL查询语句大全集锦
MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...
- MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介
网站或服务的性能关键点很大程度在于数据库的设计(假设你选择了合适的语言开发框架)以及如何查询数据上. 我们知道MySQL的性能优化方法,一般有建立索引.规避复杂联合查询.设置冗余字段.建立中间表.查询 ...
- MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)
在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:
- mysql查询语句集
1. mysql 查询出某字段的值不为空的语句 1.不为空 select * from table where id <> ""; select * from tabl ...
- [转]MySQL查询语句执行过程详解
Mysql查询语句执行原理 数据库查询语句如何执行?语法分析:首先进行语法分析,对使用sql表示的查询进行语法分析,生成查询语法分析树.语义检查:检查sql中所涉及的对象以及是否在数据库中存在,用户是 ...
- Mysql查询语句中字符型字段不区分大小写解决方法
项目中和前端联调的时候,发现Mysql查询语句中字符型字段值过滤是不区分大小写的,之前没有关注过这个设置,特意去网上看了下,原因是Mysql中“COLLATE”属性区分大小写,而该属性默认值为“utf ...
- php面试专题---MYSQL查询语句优化
php面试专题---MYSQL查询语句优化 一.总结 一句话总结: mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存) ...
- Mysql查询语句执行过程
Mysql查询语句执行过程 Mysql分为server层和存储引擎两部分,或许可以再加一层连接层 连接层(器) Mysql使用的是典型的C/S架构.连接器通过典型的TCP握手完成连接. 需要注 ...
随机推荐
- 名字管理系统demo
# 名字管理系统demo # 打印功能提示 print('欢迎使用名字管理系统v6.6.6') print('1:添加一个名字') print('2:删除一个名字') print('3:修改一个名字' ...
- Linux编译安装opencv
参考https://blog.csdn.net/huang826336127/article/details/78760885 一.下载opencv源码包 下载地址:https://opencv.or ...
- Leetcode 675.为高尔夫比赛砍树
为高尔夫比赛砍树 你被请来给一个要举办高尔夫比赛的树林砍树. 树林由一个非负的二维数组表示, 在这个数组中: 0 表示障碍,无法触碰到. 1 表示可以行走的地面. 比1大的数 表示一颗允许走过的树的高 ...
- day02 智能合约
上午 1>部署智能合约网络 语法 require 2>利用第三方的节点 同步到以太坊 3>智能合约部署的步骤: 1.查看区块 2.发布合约 deploy后台经历的事情:就是部署合约的 ...
- JavaScript - Standard built-in objects
标准对象分类 Value Properties 以下全局属性返回一个简单的值:它们没有属性或者方法: Infinity NaN undefined null literal Function Prop ...
- B - 整数区间
B - 整数区间 Time Limit: 1000/1000MS (C++/Others) Memory Limit: 65536/65536KB (C++/Others) Problem Descr ...
- linux之shell脚本学习篇一
此文包含脚本服务请求,字符串截取,文件读写内容,打印内容换行. #!/bin/bashretMsg="";while read LINEdo echo "t ...
- ASP.NET MVC如何使用输出缓存
通过这篇文章你将学习到在MVC中如何使用输出缓存,业务逻辑我就不多介绍了,主要是Outputcache的基本使用.至于数据缓存还是等我的下一篇文章吧,一步一步来不急的. 输出缓存的使用方法是在Co ...
- (转)mongdb性能优化收集
一.数据库最大连接数问题当你在后台日志中,发现大量“connection refused because too many open connections: 819”信息时,一般跟你没有设置合适的最 ...
- 一个python游戏源码
#finalPyPong.py import pygame,sys class MyBallClass(pygame.sprite.Sprite): def __init__(self,image_f ...