MySQL基本查询案例练习

news2024/9/22 11:37:38

目录

一.案例1

需求

解决代码

二.案例2

需求

解决代码


 

一.案例1

创建一个学生表,插入以下数据

insert into student values(1,'张明','男',89,78,90),
                                        (2,'李静','男',77,73,60),
                                        (3,'王五','女',45,90,90),
                                        (4,'李毅','女',66,78,80),
                                        (5,'李彩','男',69,88,98),
                                        (6,'张宝','男',79,78,88),
                                        (7,'刘芳','女',89,90,91),
                                        (7,'刘芳','女',89,90,91);

需求

-- 查询表中所有学生的信息。                         
-- 查询表中所有学生的姓名和对应的英语成绩。
-- 过滤表中重复数据。
-- 统计每个学生的总分。
-- 在所有学生总分数上加10分特长分。
-- 使用别名表示学生分数。
-- 查询英语成绩大于等于90分的同学
-- 查询总分大于250分的所有同学

-- 在所有学生总分数上加10分特长分。
-- 查询英语分数在80—90之间的同学。
-- 查询英语分数不在80-90之间的同学。

-- 查询数学分数为89,90,91的同学。
-- 查询数学分数不为89,90,91的同学。

-- 查询所有姓李的学生英语成绩。
-- 查询数学分80并且语文分80的同学。
-- 查询英语80或者总分200的同学
-- 对数学成绩降序排序后输出。
-- 对总分排序后输出,然后再按从高到低的顺序输出
-- 对姓李的学生总分成绩排序输出

-- 查询男生和女生分别有多少人,并将人数降序排序输出

-- 查询男生和女生分别有多少人,并将人数降序排序输出 ,查询出人数大于3的性别人数信息
 

解决代码

use world;

create table student(
	id int,
	name varchar(20),
	gender varchar(20),
	chinese int,
	english int,
	math int
);

insert into student values(1,'张明','男',89,78,90),
						  (2,'李静','男',77,73,60),
						  (3,'王五','女',45,90,90),
						  (4,'李毅','女',66,78,80),
						  (5,'李彩','男',69,88,98),
						  (6,'张宝','男',79,78,88),
						  (7,'刘芳','女',89,90,91),
						  (7,'刘芳','女',89,90,91);
						  
-- 查询表中所有学生的信息。						 
select * from student ;
-- 查询表中所有学生的姓名和对应的英语成绩。
select name,english from student;
-- 过滤表中重复数据。
select distinct * from student ;
-- 统计每个学生的总分。
select name,(chinese+english+math) as total_score from student;
-- 在所有学生总分数上加10分特长分。
select name,(chinese+english+math)+10 as new_total_score from student;
-- 使用别名表示学生分数。
select name,chinese '语文',english  '英语',math '数学'  from student;
-- 查询英语成绩大于等于90分的同学
select * from student where english >=90;
-- 查询总分大于250分的所有同学
select * ,(chinese+english+math) as total_score from student where(chinese+english+math) >250;

-- 在所有学生总分数上加10分特长分。
select * ,(chinese+english+math)+10 as total_score from student;


-- 查询英语分数在80—90之间的同学。
 select * from student where english between 80 and 90 ;
 select * from student where english >=80 and english <=90;


-- 查询英语分数不在80-90之间的同学。
 select * from student where english not between 80 and 90 ;

 select * from student where not english  between 80 and 90 ;
 select * from student where not (english  between 80 and 90) ;

 select * from student where english <80 or english >90;

-- 查询数学分数为89,90,91的同学。
select * from student where math in (89,90,91);
select * from student where math=89 or math =90 or math =91;


-- 查询数学分数不为89,90,91的同学。
select * from student where math not in (89,90,91);
select * from student where math!=89 && math !=90 && math !=91;

-- 查询所有姓李的学生英语成绩。
select name,english  from student where  name like '李%';
-- 查询数学分80并且语文分80的同学。
select * from student where math =80 and chinese =80;
-- 查询英语80或者总分200的同学
select * from student where english =80 and (chinese+english+math)=200;
-- 对数学成绩降序排序后输出。
select * from student order by math desc ;
-- 对总分排序后输出,然后再按从高到低的顺序输出
select *,(chinese+english+math) as total_score from student order by (chinese+english+math) desc ;
-- 对姓李的学生总分成绩排序输出
select *,(chinese+english+math) as li_total_score  from student where  name like '李%' order by (chinese+english+math) desc;

-- 查询男生和女生分别有多少人,并将人数降序排序输出
select gender,count(*) as gender_count from student group by gender order by  gender_count;

-- 查询男生和女生分别有多少人,并将人数降序排序输出 ,查询出人数大于3的性别人数信息
select gender,count(*) as gender_count from student group by gender having gender_count>3 order by  gender_count;

二.案例2

新建一个员工表,插入以下数据

 insert into emp values (7369,'SMITH','CLERK',7902, 19801214,800,null,20),
                                     (7499,'ALLEN','SALESMAN',7902, 19811216,1000,300,30),
                                     (7521,'WARD','SAKLESMAN',7902, 19820217,1200,500,30),
                                     (7566,'JONES','MANAGER',7902, 19870411,850,null,20),
                                     (7580,'MARTIN','SALESMAN',7902, 19901010,1100,1400,30),
                                     (7634,'BLAKE','MANAGER',7902, 19831214,1800,null,30),
                                    (7655,'CLARK','MANAGER',7902, 19850215,2800,null,10),
                                    (7789,'KING','PRESIDENT',7902, 19870422,3800,null,20),
                                    (7799,'TURNER','SALESMAN',7902, 19900703,4800,0,10),
                                    (7892,'ADAMS','CLERK',7902, 19771122,4400,null,30),
                                    (7902,'JAMES','CLERK',7902, 19940210,1200,null,20),
                                    (7923,'FORD','MILLER',7902, 19870911,800,null,30),
                                    (7369,'MILLER','CLERK',7902, 19801217,600,null,20),
                                    (7369,'SCOTT','ANALYST',7902, 19801217,800,null,10);

需求

1.按员工编号升序排列不在10号部门工作的员工
2.查询姓名第二个字母不是A且薪水大于1000的员工信息,按年薪降序排列
        年薪=月薪*12+奖金
        ifnull(comm,0)如果comm的值是null,则当做0,不为null则还是原来的值
3.求每个部门的平均薪水
4.求各个部门的最高薪水
5.求每个部门每个岗位的最高薪水
6.求平均薪水大于2000的部门编号
7.将部门平均薪水大于1500的部门编号列出来,按部门平均薪水降序排列
8.选择公司中有奖金的员工姓名,工资
9.查询员工最高工资和最低工资的差距

解决代码

create table emp(
		empno int, -- 员工编号
		ename  varchar(20),-- 员工姓名
		job varchar(20),-- 工作名字 
		mgr int, -- 上级领导编号
		hiredate date, -- 入职日期
		sal int, -- 薪资
		comm int, -- 奖金
		deptno int  -- 部门编号
);

insert into emp values (7369,'SMITH','CLERK',7902, 19801214,800,null,20),
					   (7499,'ALLEN','SALESMAN',7902, 19811216,1000,300,30),
					   (7521,'WARD','SAKLESMAN',7902, 19820217,1200,500,30),
					   (7566,'JONES','MANAGER',7902, 19870411,850,null,20),
					   (7580,'MARTIN','SALESMAN',7902, 19901010,1100,1400,30),
					   (7634,'BLAKE','MANAGER',7902, 19831214,1800,null,30),
					   (7655,'CLARK','MANAGER',7902, 19850215,2800,null,10),
					   (7789,'KING','PRESIDENT',7902, 19870422,3800,null,20),
					   (7799,'TURNER','SALESMAN',7902, 19900703,4800,0,10),
					   (7892,'ADAMS','CLERK',7902, 19771122,4400,null,30),
					   (7902,'JAMES','CLERK',7902, 19940210,1200,null,20),
					   (7923,'FORD','MILLER',7902, 19870911,800,null,30),
					   (7369,'MILLER','CLERK',7902, 19801217,600,null,20),
					   (7369,'SCOTT','ANALYST',7902, 19801217,800,null,10);
				  
					  
-- 1.按员工编号升序排列不在10号部门工作的员工
select * from emp where deptno !=10 order by empno 	asc ;			  
					  
-- 2.查询姓名第二个字母不是A且薪水大于1000的员工信息,按年薪降序排列
        -- 年薪=月薪*12+奖金
        -- ifnull(comm,0)如果comm的值是null,则当做0,不为null则还是原来的值

select * from emp where not( ename like 'A%') and sal >1000 order by (sal*12+ifnull(comm,0));
-- 3.求每个部门的平均薪水
select deptno,avg(sal)  from emp group by deptno ;
select deptno,avg(sal)  from emp group by deptno order by avg(sal) desc; 

-- 4.求各个部门的最高薪水
select deptno ,max(sal)  from emp group by deptno ;


-- 5.求每个部门每个岗位的最高薪水
select deptno,job,max(sal)  from emp group by deptno,job order by deptno ;

-- 6.求平均薪水大于2000的部门编号
select deptno,avg(sal)  from emp group by deptno having avg(sal)>2000 ;
-- 7.将部门平均薪水大于1500的部门编号列出来,按部门平均薪水降序排列
select  deptno ,avg(sal)  from emp group  by deptno  having avg(sal)>1500 order by avg(sal) desc ;
-- 8.选择公司中有奖金的员工姓名,工资
select * from emp where comm is not null and comm !=0;
-- 9.查询员工最高工资和最低工资的差距
select max(sal)-min(sal) '工资差' from emp 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/182109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

golang map原理

简介本文主要通过探究在golang 中map的数据结构及源码实现来学习和了解map的特性&#xff0c;共包含map的模型探究、存取、扩容等内容。欢迎大家共同讨论。Map 的底层内存模型在 goland 的源码中表示 map 的底层 struct 是 hmap&#xff0c;其是 hashmap 的缩写type hmap struc…

“华为杯”研究生数学建模竞赛2005年-【华为杯】A题:交通网络的通行时间预测与最优路径决策(附获奖论文)

赛题描述 A: Highway Traveling time Estimate and Optimal Routing Ⅰ Highway traveling time estimate is crucial to travelers. Hence, detectors are mounted on some of the US highways. For instance, detectors are mounted on every two-way six-lane highways o…

树与二叉树深度剖析(一)

一. 树简介 1. 定义 (1) 树结构是一种非线性存储结构&#xff0c;存储的是具有“一对多”关系的数据元素的集合。 (2) 树&#xff08;Tree&#xff09;是n(n≥0)个节点&#xff08;Node&#xff09;的有限集合。在任意一颗非空树中&#xff0c;有且仅有一个特定的成为根(Root)…

【快速幂】876. 快速幂求逆元

876. 快速幂求逆元 文章目录题目描述输入格式&#xff1a;输出格式&#xff1a;数据范围输入样例输出样例方法&#xff1a;快速幂解题思路代码复杂度分析&#xff1a;题目描述 给定 n 组 ai,pia_i,p_iai​,pi​&#xff0c;其中 pip_ipi​ 是质数&#xff0c;求 aia_iai​ 模 …

MySQL 8.0.31中使用MySQL Workbench提示配置文件错误信息

MySQL 8.0.31中使用MySQL Workbench提示配置文件错误信息 Error opening configuration file UnicodeDecodeError:‘gbk’ coded can’t decode byte 0x92 in position 5004: illegal multibyte sequence 配置文件之前安装MySQL Server的时候编码格式好像改了, 才使的MySQL W…

高级通讯录(C语言)

目录 前言 为何要实现高级通讯录 高级通讯录实现&#xff1a; 创建通讯录 打印菜单 初始化通讯录 实现加载功能 实现添加功能 实现增容功能 实现删除功能 实现查询功能 实现修改功能 实现查询所有联系人功能 实现排序功能 实现清空功能 实现保存功能 实现退出功能 通讯录总代码…

基于stm32G431RBT6蓝桥杯嵌入式—新建工程和点灯

目录 cube新建工程 GPIO输出与LED模块 推挽输出模式push-pull 开漏输出模式open-drain LED原理 程序 cube新建工程 时钟树配置&#xff1a;一般使用内部时钟。 GPIO输出与LED模块 输入0&#xff0c;输出GND&#xff1b;输入1&#xff0c;输出3.3V。 P-MOS管高电平导通&a…

2023年新手卖家怎么做好跨境电商?

随着互联网时代的高速发展&#xff0c;跨境电商成为我国经济发展中不可忽视的重要力量&#xff0c;在国内优惠政策大力扶持以及线上消费习惯的加持下&#xff0c;跨境电商行业迎来了发展的黄金机遇期。但是随之而来的是各大资本的涌入&#xff0c;跨境电商中小卖家们也面对越发…

第五章 程序控制结构

一、程序流程控制介绍 在程序中&#xff0c;程序运行的流程控制决定程序是如何执行的&#xff0c;是我们必须掌握的&#xff0c;主要有三大流程控制语句。 &#xff08;1&#xff09;顺序控制 &#xff08;2&#xff09;分支控制 &#xff08;3&#xff09;循环控制顺序控制&am…

c++11 标准模板(STL)(std::forward_list)(十二)

定义于头文件 <forward_list> template< class T, class Allocator std::allocator<T> > class forward_list;(1)(C11 起)namespace pmr { template <class T> using forward_list std::forward_list<T, std::pmr::polymorphic_…

数据库管理-第五十四期 春节俩故障(20230128)

数据库管理 2023-01-28第五十四期 春节俩故障1 19.13 bug 320763052 19.15 CSS总结第五十四期 春节俩故障 虽然春节期间除了年三十的现场值班和远程值班&#xff0c;没啥事的&#xff0c;结果还是处理了俩故障&#xff0c;今天上工&#xff0c;分析一下。 1 19.13 bug 320763…

了解3dmax面片建模方式

首先在模式里面选中面片栅格&#xff0c;Patch Grids&#xff1b; 选择四边形面片&#xff1b; 在顶视图中画一个面片&#xff0c;之后如下&#xff1b;面片从前和左看到的是一条线&#xff1b; 调整面片参数&#xff0c;长度分段和宽度分段分别为2和3&#xff1b; 工具栏选中修…

信息论复习—线性分组码的基本性质

目录 线性分组码&#xff1a; 非线性码示例&#xff1a; 线性码示例: 许用码字间的距离&#xff0d;&#xff0d;码距&#xff1a; 码距与码的检错纠错能力之间的关系&#xff1a; 线性分组码的基本性质&#xff1a; 线性分组码的最小码距与最小码重的关系&#xff1a; …

最详细的华为VRP操作指南

第二章&#xff1a;华为VRP系统 通用路由平台VRP&#xff08;Versatile Routing Platform&#xff09;是华为公司数据通信产品的通用操作系统平台。它以IP业务为核心&#xff0c;采用组件化的体系结构&#xff0c;在实现丰富功能特性的同时&#xff0c;还提供了基于应用的可裁…

Android深入系统完全讲解(43)

为什么要编码&#xff1f;这里主要是因为信息有甬余需要压缩&#xff0c;所以会出现各类算法。如果存储原始 数据&#xff0c;那就很大。 举例来说&#xff0c;BMP&#xff0c;压缩算法有 jpg&#xff0c;png 等等。 比如 PCM&#xff0c;压缩的 mp3 H.264 相关 这里我们看一下…

剑指 Offer 09. 用两个栈实现队列(力扣)

一&#xff1a;题目用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素&#xff0c;deleteHead 操作返回 -1 )示例 1&#xff1a;输入&…

小米万兆路由器里的Docker安装Alist

小米2022年12月份发布了万兆路由器&#xff0c;里面可以使用Docker。 今天尝试在小米的万兆路由器里安装Alist v3.9.2。 准备工作 请参考https://engchina.blog.csdn.net/article/details/128515422的准备工作。 创建存储 在第三方管理(SimpleDocker)&#xff0c;单击"…

Scala-变量和数据类型

注释在Scala中注释和Java基本一样单行注释&#xff1a;// 多行注释&#xff1a;/* */ 文档注释&#xff1a;/****/变量和常量基本语法声明变量&#xff1a;var 变量名 [:变量类型] 初始值 如&#xff1a;var a:Int 10 声明常量&#xff1a;val 变量名 [:常量类型] 初始值 如…

深度卷积神经网络、池化层

目录1.深度卷积神经网络(a deep convolutional neural network)输入图像的维度是&#xff0c;如果&#xff0c;计算输出图像维度公式&#xff1a;。s表示步幅&#xff0c;p表示填充的层数。filters的通道数是和输入图像的通道数保持一致的。分析上图案例&#xff1a;第一层卷积…

《深入浅出计算机组成原理》学习笔记 Day13

数据通路&#xff08;中&#xff09;1. 时钟信号的硬件实现2. 通过 D 触发器实现存储功能参考1. 时钟信号的硬件实现 有些电路只要需要给定输入&#xff0c;就能得到固定的输出&#xff0c;这样的电路称为组合逻辑电路&#xff08;Combination Logic Circuit&#xff09;。 时…