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握手完成连接. 需要注 ...
随机推荐
- 微信营销 推广 会议签到 活动签到 复用微信3D动画签到系统
适用场合 本软件适合各行各业,尤其世界500强上市公司,推广产品,聚集微信粉丝和人气.如大型展销会,新产品发布,主题活动推广,年会晚会等.各种商业和演出场合. 软件有试用版可供下载试用. 特色功能 顾 ...
- C#3DES加密了解一下
最近一个项目中,因为服务端是用的java开发的,客户端是用的C#,由于通信部分采用到了3DES加密,所以做个记录,以备以后需要的时候直接用. 这是对方(java)的加密算法,和网上流传的代码也差不多( ...
- Charles的Https抓包及弱网配置
一.Charles的主要功能 (1)截取Http 和 Https 网络封包. (2)支持重发网络请求,修改请求参数,方便后端调试. (3)支持模拟弱网环境. 二.配置简单抓包 1.设置系统代理:勾选P ...
- java rmi浅谈
首先比较下RPC和RMI的差别: 首先java提供了RMI的api,jdk1.5之后虚拟机自动生成两个类:存根类stub和骨架类skelton. stub是给客户端的,当客户端调用远程对象的一个方法时 ...
- python 注册表重置ie代理 ss使用后的代理恢复
每次用完ss客户端,浏览器代理都不会改回来,不想手动改,只能用python脚本处理了. import winreg def disableProxy(): proxy = "" x ...
- 【积累】LinqToSql复合查询结果转DataTable数据
最近的项目用到了大量的复合查询结果用于数据源,绑定到数据控件上. 为了方便,我们把它转换成DataTable的数据源形式.请看下面的示例: 1)思考自己需要的数据,然后组合,因此创建一个新的类: // ...
- Ext.Net中如何获取组件
我们在编写函数function的时候,常常需要用到页面上的组件.这时候就需要调用组件. 在Ext.net中,调用组件可以用.App.ID.(ID指的是想要调用的组件的ID). 例如: 我写一个函数需要 ...
- 【bzoj4750】密码安全 单调栈
题目描述 模10^9+61 输入 第一行包含一个正整数 T ,表示有 T 组测试数据. 接下来依次给出每组测试数据.对于每组测试数据: 第一行包含一个正整数 n . 第二行包含 n 个非负整数,表示 ...
- ScrollBarsEnabled的使用
在WinForm中通过WebBrowser获取网页,我想把WebBrowser的ScollBar去掉,我的网页不需要滚动条. 设置方法如下:单击WebBrowser设计页面,在属性页面有一个Scrol ...
- ASP.NET页面之间传值Session(2)
想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽. 优点:1.使用简单,不仅能传递简单数据类型,还能传递对象. 2 ...