Mysql入门练习题
1、在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄
mysql> select name,age from students where age>25 and gender='M';
+---------------+-----+
| name | age |
+---------------+-----+
| Xie Yanke | 53 |
| Ding Dian | 32 |
| Yu Yutong | 26 |
| Shi Qing | 46 |
| Tian Boguang | 33 |
| Xu Xian | 27 |
| Sun Dasheng | 100 |
| Song Jiang | 45 |
| Zhang Sanfeng | 94 |
+---------------+-----+
9 rows in set (0.00 sec)
2、以ClassID为分组依据,显示每组的平均年龄
mysql> select classid,avg(age) from students group by classid;
+---------+----------+
| classid | avg(age) |
+---------+----------+
| 2 | 36.0000 |
| 1 | 20.5000 |
| 4 | 24.7500 |
| 3 | 20.2500 |
| 5 | 46.0000 |
| 7 | 19.6667 |
| 6 | 20.7500 |
| NULL | 58.2500 |
+---------+----------+
8 rows in set (0.00 sec)
3、显示第2题中平均年龄大于30的分组及平均年龄
mysql> select classid,avg(age) from students group by classid having avg(age)>30;
+---------+----------+
| classid | avg(age) |
+---------+----------+
| 2 | 36.0000 |
| 5 | 46.0000 |
| NULL | 58.2500 |
+---------+----------+
3 rows in set (0.00 sec)
4、显示以L开头的名字的同学的信息
mysql> select * from students where name like 'l%';
+-------+--------------+-----+--------+---------+-----------+
| StuID | Name | Age | Gender | ClassID | TeacherID |
+-------+--------------+-----+--------+---------+-----------+
| 8 | Lin Daiyu | 17 | F | 7 | NULL |
| 14 | Lu Wushuang | 17 | F | 3 | NULL |
| 17 | Lin Chong | 25 | M | 4 | NULL |
| 27 | li | 10 | F | NULL | NULL |
| 31 | Lin Chaoying | 93 | F | NULL | NULL |
+-------+--------------+-----+--------+---------+-----------+
5 rows in set (0.00 sec)
5、显示TeacherID非空的同学的相关信息
mysql> select * from students where teacherid is not null;
+-------+-------------+-----+--------+---------+-----------+
| StuID | Name | Age | Gender | ClassID | TeacherID |
+-------+-------------+-----+--------+---------+-----------+
| 1 | Shi Zhongyu | 22 | M | 2 | 3 |
| 2 | Shi Potian | 22 | M | 1 | 7 |
| 3 | Xie Yanke | 53 | M | 2 | 16 |
| 4 | Ding Dian | 32 | M | 4 | 4 |
| 5 | Yu Yutong | 26 | M | 3 | 1 |
+-------+-------------+-----+--------+---------+-----------+
5 rows in set (0.00 sec)
6、以年龄排序后,显示年龄最大的前10位同学的信息
mysql> select * from students order by age desc limit 10;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
| 25 | Sun Dasheng | 100 | M | NULL | NULL |
| 29 | Zhang Sanfeng | 94 | M | NULL | NULL |
| 31 | Lin Chaoying | 93 | F | NULL | NULL |
| 30 | Miejue Shitai | 77 | F | NULL | NULL |
| 3 | Xie Yanke | 53 | M | 2 | 16 |
| 6 | Shi Qing | 46 | M | 5 | NULL |
| 28 | Song Jiang | 45 | M | NULL | NULL |
| 13 | Tian Boguang | 33 | M | 2 | NULL |
| 4 | Ding Dian | 32 | M | 4 | 4 |
| 24 | Xu Xian | 27 | M | NULL | NULL |
+-------+---------------+-----+--------+---------+-----------+
10 rows in set (0.00 sec)
7、查询年龄大于等于20岁,小于等于25岁的同学的信息
mysql> select * from students where age>=20 and age<=25;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
| 1 | Shi Zhongyu | 22 | M | 2 | 3 |
| 2 | Shi Potian | 22 | M | 1 | 7 |
| 9 | Ren Yingying | 20 | F | 6 | NULL |
| 11 | Yuan Chengzhi | 23 | M | 6 | NULL |
| 16 | Xu Zhu | 21 | M | 1 | NULL |
| 17 | Lin Chong | 25 | M | 4 | NULL |
| 18 | Hua Rong | 23 | M | 7 | NULL |
| 21 | Huang Yueying | 22 | F | 6 | NULL |
| 22 | Xiao Qiao | 20 | F | 1 | NULL |
| 23 | Ma Chao | 23 | M | 4 | NULL |
| 26 | wang | 20 | M | NULL | NULL |
+-------+---------------+-----+--------+---------+-----------+
11 rows in set (0.00 sec)
mysql> select * from students where age between 20 and 25;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
| 1 | Shi Zhongyu | 22 | M | 2 | 3 |
| 2 | Shi Potian | 22 | M | 1 | 7 |
| 9 | Ren Yingying | 20 | F | 6 | NULL |
| 11 | Yuan Chengzhi | 23 | M | 6 | NULL |
| 16 | Xu Zhu | 21 | M | 1 | NULL |
| 17 | Lin Chong | 25 | M | 4 | NULL |
| 18 | Hua Rong | 23 | M | 7 | NULL |
| 21 | Huang Yueying | 22 | F | 6 | NULL |
| 22 | Xiao Qiao | 20 | F | 1 | NULL |
| 23 | Ma Chao | 23 | M | 4 | NULL |
| 26 | wang | 20 | M | NULL | NULL |
| 33 | hello world | 20 | F | NULL | 1 |
+-------+---------------+-----+--------+---------+-----------+
12 rows in set (0.00 sec)
8、以ClassID分组,显示每班的同学的人数
mysql> select classid,count(*) from students group by classid;
+---------+----------+
| classid | count(*) |
+---------+----------+
| 2 | 3 |
| 1 | 4 |
| 4 | 4 |
| 3 | 4 |
| 5 | 1 |
| 7 | 3 |
| 6 | 4 |
| NULL | 8 |
+---------+----------+
8 rows in set (0.00 sec)
9、以Gender分组,显示其年龄之和
mysql> select gender,sum(age) from students group by gender;
+--------+----------+
| gender | sum(age) |
+--------+----------+
| M | 649 |
| F | 390 |
+--------+----------+
2 rows in set (0.00 sec)
10、以ClassID分组,显示其平均年龄大于25的班级
mysql> select ifnull(classid,'无班级'),avg(age) from students group by classid having avg((age)>25;
+-----------------------------+----------+
| ifnull(classid,'无班级') | avg(age) |
+-----------------------------+----------+
| 2 | 36.0000 |
| 5 | 46.0000 |
| 无班级 | 48.1000 |
+-----------------------------+----------+
3 rows in set (0.00 sec)
11、以Gender分组,显示各组中年龄大于25的学员的年龄之和
mysql> select gender,sum(age) from students where age>25 group by gender;
+--------+----------+
| gender | sum(age) |
+--------+----------+
| M | 433 |
| F | 170 |
+--------+----------+
2 rows in set (0.00 sec
12、显示前5位同学的姓名、课程及成绩
mysql> select name,course,score from students inner join scores on students.stuid=scores.stuid inner join courses on scores.courseid=courses.courseid order by score desc limit 5;
+-------------+----------------+-------+
| name | course | score |
+-------------+----------------+-------+
| Shi Potian | Daiyu Zanghua | 97 |
| Shi Qing | Hamo Gong | 96 |
| Shi Zhongyu | Weituo Zhang | 93 |
| Lin Daiyu | Jinshe Jianfa | 93 |
| Ding Dian | Kuihua Baodian | 89 |
+-------------+----------------+-------+
5 rows in set (0.00 sec)
13、显示其成绩高于80的同学的名称及课程
mysql> select name,score,course from students inner join scores on students.stuid=scores.stuid join courses on scores.courseid=courses.courseid where score>80;
+-------------+-------+----------------+
| name | score | course |
+-------------+-------+----------------+
| Shi Zhongyu | 93 | Weituo Zhang |
| Shi Potian | 97 | Daiyu Zanghua |
| Xie Yanke | 88 | Kuihua Baodian |
| Ding Dian | 89 | Kuihua Baodian |
| Shi Qing | 96 | Hamo Gong |
| Xi Ren | 86 | Hamo Gong |
| Xi Ren | 83 | Dagou Bangfa |
| Lin Daiyu | 93 | Jinshe Jianfa |
+-------------+-------+----------------+
8 rows in set (0.00 sec)
14、取每位同学各门课的平均成绩,显示成绩前三名的同学的姓名和平均成绩
mysql> select name,course,avg(score) from students inner join scores on students.stuid=scores.stuid inner join courses on scores.courseid=courses.courseid group by name,course order by avg(score) desc limit 3;
+------------+---------------+------------+
| name | course | avg(score) |
+------------+---------------+------------+
| Shi Potian | Daiyu Zanghua | 97.0000 |
| Shi Qing | Hamo Gong | 96.0000 |
| Lin Daiyu | Jinshe Jianfa | 93.0000 |
+------------+---------------+------------+
3 rows in set (0.00 sec)
15、显示每门课程课程名称及学习了这门课的同学的个数
mysql> select course,count(name) from students inner join scores on students.stuid=scores.stuid inner join courses on scores.courseid=courses.courseid group by course;
+----------------+-------------+
| course | count(name) |
+----------------+-------------+
| Kuihua Baodian | 4 |
| Weituo Zhang | 2 |
| Daiyu Zanghua | 2 |
| Hamo Gong | 3 |
| Dagou Bangfa | 2 |
| Taiji Quan | 1 |
| Jinshe Jianfa | 1 |
+----------------+-------------+
7 rows in set (0.00 sec)
16、显示其年龄大于平均年龄的同学的名字
mysql> select name,age from students where age>(select avg(age) from students);
+---------------+-----+
| name | age |
+---------------+-----+
| Xie Yanke | 53 |
| Ding Dian | 32 |
| Shi Qing | 46 |
| Tian Boguang | 33 |
| Sun Dasheng | 77 |
| Song Jiang | 45 |
| Zhang Sanfeng | 94 |
| Miejue Shitai | 77 |
| Lin Chaoying | 93 |
+---------------+-----+
9 rows in set (0.00 sec)
17、显示其学习的课程为第1、2,4或第7门课的同学的名字
mysql> select name,classid from students where classid rlike '1|2|4|7';
+--------------+---------+
| name | classid |
+--------------+---------+
| Shi Zhongyu | 2 |
| Shi Potian | 1 |
| Xie Yanke | 2 |
| Ding Dian | 4 |
| Lin Daiyu | 7 |
| Wen Qingqing | 1 |
| Tian Boguang | 2 |
| Duan Yu | 4 |
| Xu Zhu | 1 |
| Lin Chong | 4 |
| Hua Rong | 7 |
| Diao Chan | 7 |
| Xiao Qiao | 1 |
| Ma Chao | 4 |
+--------------+---------+
14 rows in set (0.00 sec)
mysql> select name,classid from students where classid in (1,2,4,7);
+--------------+---------+
| name | classid |
+--------------+---------+
| Shi Zhongyu | 2 |
| Shi Potian | 1 |
| Xie Yanke | 2 |
| Ding Dian | 4 |
| Lin Daiyu | 7 |
| Wen Qingqing | 1 |
| Tian Boguang | 2 |
| Duan Yu | 4 |
| Xu Zhu | 1 |
| Lin Chong | 4 |
| Hua Rong | 7 |
| Diao Chan | 7 |
| Xiao Qiao | 1 |
| Ma Chao | 4 |
+--------------+---------+
14 rows in set (0.00 sec)
18、显示其成员数最少为3个的班级的同学中年龄大于同班同学平均年龄的同学(未理解)
mysql> select s.name,s.classid,s.age,s3.ave from students s left join (select classid,avg(age) ave from students group by classid having count(*)>=3 ) s3 on s.classid=s3.classid where s.classid in (select classid from students group by classid having count(*)>=3) and s.age>s3.ave;
+---------------+---------+-----+---------+
| name | classid | age | ave |
+---------------+---------+-----+---------+
| Shi Potian | 1 | 22 | 20.5000 |
| Ding Dian | 4 | 32 | 24.7500 |
| Yu Yutong | 3 | 26 | 20.2500 |
| Yuan Chengzhi | 6 | 23 | 20.7500 |
| Xu Zhu | 1 | 21 | 20.5000 |
| Lin Chong | 4 | 25 | 24.7500 |
| Hua Rong | 7 | 23 | 19.6667 |
| Huang Yueying | 6 | 22 | 20.7500 |
+---------------+---------+-----+---------+
8 rows in set (0.00 sec)
19、统计各班级中年龄大于全校同学平均年龄的同学
mysql> select name,class,age from students left join classes on students.classid=classes.classid where age>(select avg(age) from students) and class is not null;
+--------------+----------------+-----+
| name | class | age |
+--------------+----------------+-----+
| Ding Dian | Wudang Pai | 32 |
| Shi Qing | Riyue Shenjiao | 46 |
| Tian Boguang | Emei Pai | 33 |
+--------------+----------------+-----+
3 rows in set (0.00 sec)
Mysql入门练习题的更多相关文章
- 21分钟 MySQL 入门教程(转载!!!)
21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...
- MySQL入门02-MySQL二进制版本快速部署
在上篇文章 MySQL入门01-MySQL源码安装 中,我们介绍了MySQL源码安装的方法. 源码安装虽然有着更加灵活和更加优化等诸多优势.但源码编译安装部署的过程相对复杂,而且整个过程所花费的时间很 ...
- MYSQL入门全套(第三部)
MYSQL入门全套(第一部) MYSQL入门全套(第二部) 索引简介 索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构.如果想按特定职员的姓来查找 ...
- MySQL入门(三)
写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想 ...
- python入门练习题1
常见python入门练习题 1.执行python脚本的两种方法 第一种:给python脚本一个可执行的权限,进入到当前存放python程序的目录,给一个x可执行权限,如:有一个homework.py文 ...
- MySQL入门笔记
MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: · rpm包形式 · 通用二进制 ...
- MySQL入门转载
21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html 目录 一.MySQL的相关概念介绍 二.Wi ...
- mysql 入门 基本命令
MYSQL入门学习之一:基本操作 1.登录数据库 www.2cto.com 命令:mysql -u username –p (mysql -h主机地址 -u用户名 -p用户密码) ...
- MySQL入门笔记(一)
一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_nam ...
随机推荐
- ASP.Net Core异步编程
ASP.Net Core异步编程 概念 什么是异步编程? 异步编程是可以让程序并行运行的一种手段,其可以让程序中的一个工作单元与主应用程序线程分开独立运行,并且在工作单元运行结束后,会通知主应用程序线 ...
- Java中字节流的总结及代码练习
Java中的字节流 在描述字节流时,先知道什么是流 流可以分为:输入流和输出流 输入流和输出流 示意图: 字节流读取内容:二进制,音频,视频 优缺点:可以保证视频音频无损,效率低,没有缓冲区 字节流可 ...
- 部署nfs
NFS可以让服务端跟客户端通过网络共享主机磁盘上的一些数据,主要是在unix和linux系统上实现的一种文件共享方式. 我们可以简单的将NFS看做是一个文件服务器 (file server) ...
- Laravel框架中文件所在的位置
- SpringMVC 04: SpringMVC中4种页面跳转方式
转发和重定向的页面跳转方式 页面跳转方式,本质上只有2种方式:转发 + 重定向 但在SpringMVC的具体实现上,转发可以细分为:普通的页面转发 + 经由action方法的页面转发 重定向可以细分为 ...
- 离线方式安装高可用RKE2 (版本: v1.22.13+rke2r1)记录
说明: 想要了解RKE2可以到官网(https://docs.rke2.io 或 https://docs.rancher.cn/docs/rke2/_index/)看最新资料 用官网给出的离线安装( ...
- KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(二)
案例二:测试'recovery = automatic' 1.查看集群节点状态信息: [kingbase@node1 bin]$ ./repmgr cluster show ID | Name | R ...
- 分布式链路追踪体验-skywalking入门使用
背景 旁友,你的线上服务是不是偶尔来个超时,或者突然抖动一下,造成用户一堆反馈投诉.然后你费了九牛二虎之力,查了一圈圈代码和日志才总算定位到问题原因了.或者公司内部有链路追踪系统,虽然可以很轻松地通过 ...
- [Python]-torchvision.transforms模块-图像预处理
PyTorch框架中常用torchvision模块来辅助计算机视觉算法的搭建,transforms用于图像的预处理. from torchvision import transforms 预处理操作集 ...
- [Linux]-screen命令-切换终端
在训练模型时,经常遇到需要采用多个策略同时跑的情况,直接运行的话比较费时,只要CPU和GPU支持,可以通过Linux的screen命令多终端并行,大大提升效率. 创建: screen -S name ...