当前位置: 首页 > news >正文

MySQL的基础操作

SELECT
    商品种类,
    AVG(金额) AS 总金额 
FROM
    订单表 
GROUP BY
    商品种类 
HAVING
    总金额 > 2000 
ORDER BY
    总金额 DESC;

        针对以上查询结果还可以通过“LIMIT m,n”子句限制输出的条数,m代表偏移量,n代表输出的条数。例如针对以上结果跳过前2条输出后续的3条数据,SQL如下: 

SELECT
    商品种类,
    AVG(金额) AS 总金额 
FROM
    订单表 
GROUP BY
    商品种类 
HAVING
    总金额 > 2000 
ORDER BY
    总金额 DESC
LIMIT 2,3;

LIMIT 语句后面也可以只跟一个数字,代表查询开始多少行数据,例如:

SELECT
    商品种类,
    AVG(金额) AS 总金额 
FROM
    订单表 
GROUP BY
    商品种类 
HAVING
    总金额 > 2000 
ORDER BY
    总金额 DESC
LIMIT 2; 

CASE WHEN多分支语句 

CASE
  WHEN 条件1  THEN 结果1
  WHEN 条件2  THEN 结果2
  WHEN 条件3  THEN 结果3
  ELSE 结果4
END AS 别名

SELECT 
    订单号,日期,客户名称,商品种类,金额,
  CASE

     WHEN 金额 <= 500 THEN '小订单' 
     WHEN 金额 <= 1500 THEN '中订单' 
     ELSE '大订单' 
  END AS '订单类型' 
FROM 订单表;

MySQL中编写SQL语句是有一定顺序的,书写顺序如下:

SELECT 列名
FROM 表名
WHERE 条件
GROUP BY 分组
HAVING 过滤条件
ORDER BY 排序列(ASC|DESC)
LIMIT 起始行,查询行数

而真正的SQL底层执行顺序如下:

a.FROM:指定数据来源表
b.WHERE:对查询数据第一次过滤
c.GROUP BY: 分组
d.HAVING: 对分组后的数据第二次过滤
e.SELECT: 查询各个字段的值
f.ORDER BY: 排序
g.LIMIT: 限定查询结果

JOIN关联:

在MySQL中JOIN分为INNER JOIN 、LEFT JOIN 、RIGHT JOIN 、FULL OUT JOIN

INNER JOIN:

        INNER JOIN 也叫内连接,可以简写为JOIN,MySQL中可以通过JOIN 取两张表的交集,使用JOIN的时候需要通过ON指定两张表的关联字段,一般是两张表中数据相同的字段。JOIN使用方式如下:

SELECT tbl1.col1,tbl1.col2....,tbl2.col1,tbl2.col2....
FROM tbl1 
JOIN tbl2 ON tbl1.id = tbl2.id

        注意:在一条SQL中可以编写多个JOIN关联更多的表,但每个JOIN一定要指定对应的ON关联字段,否则会出现笛卡尔积,即:tbl1表中的每条数据都会与tbl2中的每条数据进行关联,会导致大量的数据结果

# 关联 用户表 和 分数表,获取用户的年龄和分数信息
SELECT用户表.编号,用户表.姓名,用户表.年龄,分数表.编号,分数表.姓名,分数表.分数 
FROM 用户表
INNER JOIN 分数表 ON 用户表.编号 =分数表.编号;

LEFT JOIN:

        LEFT JOIN 是左连接,两张表通过LEFT JOIN 进行关联时,LEFT JOIN 左侧表中数据都会被查询出来,如果在右侧表没有查询到关联的数据会自动使用NULL值填补。LEFT JOIN SQL用法如下:

SELECT用户表.编号,用户表.姓名,用户表.年龄,分数表.编号,分数表.姓名,分数表.分数 
FROM 用户表
LEFT JOIN 分数表 ON 用户表.编号 =分数表.编号;

RIGHT JOIN:

        RIGHT JOIN 是右关联,同理,两张表通过RIGHT JOIN 进行关联时,RIGHT JOIN 右侧表中数据都会被查询出来,如果在左侧表没有查询到关联的数据会自动使用NULL值填补。RIGHT JOIN SQL用法如下:

SELECT用户表.编号,用户表.姓名,用户表.年龄,分数表.编号,分数表.姓名,分数表.分数 
FROM 用户表
RIGHT JOIN 分数表 ON 用户表.编号 =分数表.编号;

UNION关联:

SELECT用户表.编号,用户表.姓名,用户表.年龄,分数表.编号,分数表.姓名,分数表.分数 
FROM 用户表
LEFT JOIN 分数表 ON 用户表.编号 = 分数表.编号
UNION 
SELECT用户表.编号,用户表.姓名,用户表.年龄,分数表.编号,分数表.姓名,分数表.分数 
FROM 用户表
RIGHT JOIN 分数表 ON 用户表.编号 = 分数表.编号;

UNION关联:

SELECT用户表.编号,用户表.姓名,用户表.年龄,分数表.编号,分数表.姓名,分数表.分数 
FROM 用户表
LEFT JOIN 分数表 ON 用户表.编号 = 分数表.编号
UNION ALL
SELECT用户表.编号,用户表.姓名,用户表.年龄,分数表.编号,分数表.姓名,分数表.分数 
FROM 用户表
RIGHT JOIN 分数表 ON 用户表.编号 = 分数表.编号;

窗口函数

<窗口操作函数>  OVER (PARTITION BY <分组的列> ORDER BY <排序的列> ) AS 别名
SELECT DISTINCT公司,部门,SUM(费用) OVER ( PARTITION BY 公司 ) AS 公司总支出,MAX(费用) OVER ( PARTITION BY 部门 ) AS 部门最大支出,MIN(费用) OVER ( PARTITION BY 部门 ) AS 部门最小支出 
FROM企业支出费用表;


文章转载自:

http://eDDT1sJC.bwkzn.cn
http://b9gfL9JV.bwkzn.cn
http://VbnMGDgp.bwkzn.cn
http://xGhx7zee.bwkzn.cn
http://Hf0EcybX.bwkzn.cn
http://nRMQMXzg.bwkzn.cn
http://mdg0hdj9.bwkzn.cn
http://rdCJ6XAu.bwkzn.cn
http://lZSz8JrJ.bwkzn.cn
http://73r3xGhO.bwkzn.cn
http://IsfgQWZi.bwkzn.cn
http://vsWmVIye.bwkzn.cn
http://u84TNCHk.bwkzn.cn
http://DNbn31RA.bwkzn.cn
http://F98xCYus.bwkzn.cn
http://lzJvDJh3.bwkzn.cn
http://kzypzpdp.bwkzn.cn
http://KjkLDwN6.bwkzn.cn
http://K0lLGLP6.bwkzn.cn
http://5aByVYOx.bwkzn.cn
http://ZX72dx29.bwkzn.cn
http://5fLiffUw.bwkzn.cn
http://yX5tbRHI.bwkzn.cn
http://BKxDJIZ3.bwkzn.cn
http://PyuG7Gln.bwkzn.cn
http://f0MwsU0q.bwkzn.cn
http://Apcu4Mv5.bwkzn.cn
http://8TJXbOG4.bwkzn.cn
http://JHdWKcBS.bwkzn.cn
http://JRQrSgbv.bwkzn.cn
http://www.dtcms.com/a/214410.html

相关文章:

  • 【C/C++】如何在一个事件驱动的生产者-消费者模型中使用观察者进行通知与解耦
  • 无人机降落伞设计要点难点及原理!
  • 双臂机器人运动空间与干涉分析仿真技术报告
  • 仅录系统声音,不录外部噪音,详细图文教程
  • FacePoke创意交互实战:Cpolar技术赋能远程人像编辑的趣味实现
  • 鸿蒙OSUniApp 实现的一键清除输入框内容功能#三方框架 #Uniapp
  • PyTorch实现MLP信用评分模型全流程
  • 如何调试CATIA CAA程序导致的CATIA异常崩溃问题
  • 基于私有化 DeepSeek 大模型的工业罐区跑冒滴漏检测技术研究与应用
  • 网络安全之Web渗透加解密
  • 我们是如何为 ES|QL 重建自动补全功能的
  • 创建一个简易的风扇动画界面:基于 WPF 和 XAML 的实现教程
  • Google 发布AI 编程工具Jules
  • 从数据页角度理解B+树查询
  • 虚拟机配置桥接,远程工具直接访问
  • Vue3解决路由缓存问题
  • 基于matlab版本的三维直流电法反演算法
  • 二叉树part01(二)
  • DNS解析流程入门篇
  • java基础(面向对象进阶高级)泛型(API一)
  • 编程日志5.20
  • 深入剖析Java中的伪共享:原理、检测与解决方案
  • uniapp 搭配uviwe u-picker 实现地区联栋
  • OSPF补充信息
  • MathQ-Verify:数学问题验证的五步流水线,为大模型推理筑牢数据基石
  • Neural Blind Deconvolution Using Deep Priors论文阅读
  • Leetcode 3556. Sum of Largest Prime Substrings
  • 《1.1_4计算机网络的分类|精讲篇|附X-mind思维导图》
  • 如何设计ES的冷热数据分离架构?Elasticsearch 集群如何实现高可用?如何避免脑裂问题?如果出现脑裂如何恢复?
  • API Gateway CLI 实操入门笔记(基于 LocalStack)