tnblog
首页
视频
资源
登录
什么时候才能领悟,取之越多失之越多
排名
5
文章
229
粉丝
15
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

mysql多表查询练习

5097人阅读 2022/5/4 21:40 总访问:1165794 评论:0 收藏:0 手机
分类: mysql

代码如下:

  1. -- 查询年龄小于30岁的学生姓名,年龄,职位,班级
  2. -- 查询拥有学生的班级id和班级名称
  3. select distinct c.id, c.ClassName from students s inner join class c on s.classid = c.Id
  4. -- 查询班级与班级所拥有的学生人数
  5. select class.ClassName,count(*) as '人数'
  6. from students inner join class on students.classid = class.Id group by class.ClassName
  7. -- 方法2:子查询
  8. select classname,(select count(*) from students where classid = class.Id) as '人数' from class
  9. -- 查询年龄大于40岁的学生,以及他的班级名称,如果该学生没有班级,则显示"休学中" (一个left join与函数太简单了)
  10. /*
  11. 查询所有学生的薪资等级
  12. 可以先分析连接条件:薪水比最低高,比最高少即可也就是>=low and <=hight
  13. */
  14. -- 方法1:显示内连接
  15. select s.UserName,c.grade from students s ,salaryGrade c where s.salary BETWEEN c.losal and c.hisal
  16. -- 方法2:隐式内连接
  17. select s.UserName,c.grade,c.losal,c.hisal from students s join salaryGrade c on s.salary BETWEEN c.losal and c.hisal
  18. /* 查询2班学生的薪水等级(相当于三表连查) */
  19. -- 方法1:直接join三张表
  20. select s.UserName,c.grade,c.losal,c.hisal from students s
  21. join salaryGrade c on s.salary BETWEEN c.losal and c.hisal
  22. join class on s.classid = class.Id where class.ClassName = '计网1212'
  23. -- 方法2:先子查询出来2班学生在join薪水等级表
  24. /* 查询3班学生的平均薪水与最高薪水 */
  25. /* 查询2班中工资比紫嫣高的学生 */
  26. /* 查询3班中工资高于学生平均薪水的 */
  27. /* 查询低于本班级平均薪水的学生 */
  28. -- a:先查询某个部门的平均薪资
  29. select avg(salary) from students where classid = 2
  30. -- b:查询这个部门低于平均薪资的(比如这里的1部门低于平均薪资的人)
  31. select * from students where classid = 1 and
  32. salary < (select avg(salary) from students where classid = 1)
  33. -- c:把写死的部门换成活的。(写完后可以执行第一句验证一下这些是不是都是低于本部门平均薪资的)
  34. select * from students s2 where
  35. salary < (select avg(salary) from students s1 where s1.classid = s2.classid)
  36. /* 查询学生选择的课程,返回学生名称,课程名称 。 需要增加一个课程表 */

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

mysql主从复制+读写分离

使用Mysql读写分离和主从复制的原因:*单台MySQL服务器的安全性,高可用性,高并发都是不满足实际的生产需要。介绍:1.MySQ...

mysql控制台插入中文数据报错1366解决

计算机配置: windows系统.数据库:MySQL5.5.如图 : 下图为表结构信息:通过 show full columns from userinfo;查询所得 na...

mysql 游标创建

游标:可以来存储一个结果集,可以通过遍历来访问到每一个数据需求:分表数据。 把一张表的数据根据需求分离,创建不同的表...

mysql 存储过程报错:delimiter

最近刚学sql,学到了存储过程,每当练习的时候就一直出现问题。 现在记录CREATEPROCEDUREproc_out(OUTstuidINT) begin se...

mysql 视图的(增删改 查)

要显示视图的定义,需要在SHOWCREATEVIEW子句之后指定视图的名称, 我们先来创建几张表,完事后在进行演示:--用户信息表...

mysql概述与安装配置

1996年首次发行,对于初学者来说,MySQL很容易上手MySQL数据库MySQL 是开源的,所以你不需要支付额外的费用。MySQL 支持大...

mysql存储引擎和数据类型

一 了解MySQL存储引擎什么是MySQL存储引擎?MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技...

本地mysql重置密码

原理:通过跳过表授权,跳过密码直接在表里更新密码1. 找到my.ini一般在C:\Program Files\MySQL\MySQL Server 5.7\bin12345...

mysql数据库基础

1 数据库和表操作 2 数据操作 3 高级查询 4 mysql管理1 数据库和表操作 数据库 创建:create database 数据库名 [default ...

mysql基础

1.创建、修改和删除 表是数据库存储数据的基本单位、一个表包含若干个字段或记录、表的操作包括创建新表、修改表和删除表。...

EF连接mysql连接mysql数据库操作中文数据乱码解决方法

修改数据库的连接字符器在连接字符器添加charset=gb2312。注意事项:(1)字符编码不支持UTF8。(2)必须使用规定编码。示例:&...

EF连接mysql数据库

注意事项准备工作(1)下载MySQL数据库软件6.6.6版本。 (2)下载MySQL数据库mysql-connector-net-6.6.6两者不一样都不能少。(...

VS2017安装mysql加载驱动

部署安装环境运行MySQL和VS2017软件下载MySQL-for-visualstudio-msiMySQL-connector-net-6.6.6-msi安装版本6.10.5和6.9.9在...

shell脚本强制修改mysql --root密码

话不多说直接拿去撸;PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHread -p &quot...

Navicat 连接mysql时报错代码1405

好久不见我们又见面了今天给大家分享的是Navicat连接mysql时报1405的错 话不多说直接上图片遇到这个错时第一种情况:看一...

mysql未能加载文件或程序集“Ubiety.Dns.Core”或它的某一个依赖项 问题的解决

在VS2019中使用Nuget的方式添加了最新的MySQL包 MySql.Data 8.0.19 ,默认添加了个Ubiety.Dns.Core,不知道有什么用,但是...
愿你以渺小启程,以伟大结束。