文档章节

Mysql实战中常用sql的分析

chinahufei
 chinahufei
发布于 07/01 11:26
字数 588
阅读 39
收藏 1

1.查询具体的最高、最低、平均值、大于平均值、小于平均值

-- 查询Score表中的最高分的学生学号和课程号。
SELECT * FROM students s, scores c WHERE s.sno = c.sno AND c.degree = 
(SELECT MAX(degree) FROM scores);
  • 套路:1.求出最大值;2.学生表和成绩表连表或者子查询

2.查询每个分类中最大、最小的数量

-- 查询每个职位的最高工资以及人数
SELECT job.jname, res.jid, res.salary, COUNT(1) FROM 
(SELECT * FROM emp, 
	(SELECT MAX(salary) as max, job_id as jid FROM emp GROUP BY jid) as max_table
WHERE emp.job_id = max_table.jid AND emp.salary = max_table.max) as res, 
job WHERE res.jid = job.id GROUP BY jid;
  • 套路:1.分组求出每个职位的最高工资;2.和职工表连表查询出结果集;3.对结果集连表、分组求出人数、职位、工资

3.从表中复制一条数据并插入(主键自增)

从表中复制一条数据,并插入
insert into student ( Sname,Sage,Ssex ) select Sname,Sage,Ssex from student where Sid =1;

4.查询一条数据,以别名展示

-- 查询出1990年以后出生的学生,并升序排列,
显示字段gender,性别为则显示为'male',女则显示为'female',非男或女则显示为'other'
SELECT Sname, Sage, Ssex,
(CASE Ssex
	WHEN '男' THEN 'male'
	WHEN '女' THEN 'female'
	ELSE 'other'
END
) as gender
FROM student WHERE SUBSTRING(Sage, 1, 4) > 1990 ORDER BY Sage;
  • 套路:使用case...when...

5.查询存在和不存在的情况

查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )
select * from
(select * from sc where sc.CId = '01') as t1
left join
(select * from sc where sc.CId = '02') as t2
on t1.SId = t2.SId;

套路:1.使用条件查询查出存在01课程的情况;2.根据需求使用内连接或者左连接、右连接查出需要的结果

6.根据数据库名获取数据库所有表字段信息

SELECT a.table_name 表名, 
	a.table_comment 表说明, 
	b.COLUMN_NAME 字段名,
	b.column_comment 字段说明,
	b.column_type 字段类型,
	b.column_key 约束
	FROM information_schema.tables a LEFT JOIN information_schema.COLUMNS b ON a.table_name = b.TABLE_NAME 
	WHERE a.table_schema = 'droi'

7.mysql行转列

select substring_index(substring_index('82,83,84,85,86',',',help_topic_id+1),',',-1) as Id
 
from mysql.help_topic
 
where help_topic_id<(length('82,83,84,85,86')-length(replace('82,83,84,85,86',',',''))+1);

© 著作权归作者所有

chinahufei
粉丝 4
博文 84
码字总数 85968
作品 0
武汉
程序员
私信 提问
如何用最短的时间找到初级数据分析师工作?

有越来越多的社群会员通过第1期的实践课程和“闯关游戏”不仅学会了数据分析,而且利用新的技术找到了满意的工作。 根据以往的经验,很多人在学习数据分析的过程中会遇到下面这样的苦恼: 网...

猴子聊人物
2018/05/20
0
0
MYSQL数据库服务CPU高问题分析与优化

MYSQL数据库服务CPU高问题分析与优化 MySQL服务性能监控分析与优化是永恒的主题,做为性能测试人员有时也要站在DBA角度出发进行适当分析与优化,这也是性能测试人员能长期生存发展存在意义。...

郭柏雅
2018/03/22
0
0
这份MySQL索引实践清单,已超300人在学习,推荐你看看

特邀嘉宾 叶 金 荣 知数堂联合创始人 & 3306π社区负责人 MySQL优化课程讲师 资深MySQL专家,Oracle MySQL ACE,曾任职搜狐畅游DBA主管,精通MySQL数据库,10年以上MySQL相关工作经验,擅长M...

n88lpo
2018/05/25
0
0
最全java学习路线图 java学习指南

JavaEE学习路线图 准备篇 适用/适合人群:适合基础小白 目标:掌握JavaSE。 ●技术点小节: 1.开发工具的安装配置的介绍 2.JDK安装 3.DOS环境编程 4.Eclipse的安装使用 ●JAVA基础 1.基本的语...

耳东陈_f1e5
2018/01/14
0
0
深入理解MySQL 5.7 GTID系列(九):实际案例一

导 读 作者:高鹏(重庆八怪) 原文地址: https://www.jianshu.com/p/2c25842d58d3 深入理解MySQL 5.7 GTID系列文章共十篇,本文为第四篇,点击查看: 第一篇:深入理解MySQL 5.7 GTID系列(...

老叶茶馆
2018/04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
61
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
29
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
66
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
59
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
62
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部