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

MySQL(B站CodeWithMosh)——2024.10.11(14)

ZZZZZZ目的
ZZZZZZ代码
ZZZZZZ重点
ZZZZZZ操作(非代码,需要自己手动)

8- CASE运算符The CASE Operator_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1UE41147KC?p=62&vd_source=eaeec77dfceb13d96cce76cc299fdd08

  1. 在sql_store中,根据orders表格,将里面所有的订单旁边都有一个标签”status“,如果订单是今年的,就叫Active(活跃的),如果是去年的,就叫“Last Year”,再以前的的就叫archived(存档),如果是未来的订单,就叫"Future",并输出订单id,订单日期和status
    USE sql_store;
    SELECT order_id,
           CASE 
                WHEN YEAR(NOW()) = YEAR(order_date) THEN 'Active'
                WHEN YEAR(NOW()) -1 = YEAR(order_date) THEN 'Last Year'
                WHEN YEAR(NOW()) -1 > YEAR(order_date) THEN 'Archived'
                ELSE 'Future'
            END AS category
    FROM orders

    IF函数只允许单一的测试表达式

【练习题】
输出下面这张图片,其中,如果积分超过3000,就是金牌顾客,如果在2000-3000(包含2000和3000)之间,是银牌顾客,如果低于2000,那么是青铜客户


USE sql_store;
SELECT CONCAT(first_name, ' ', last_name) AS customer,
       points,
       CASE
            WHEN points > 3000 THEN 'Gold'
            WHEN points BETWEEN 2000 AND 3000 THEN 'Silver'
            ELSE 'Bronze'
       END AS category
FROM customers
ORDER BY points DESC

这里的第二行WHEN也可以写成WHEN points >= 2000 THEN 'Sliver',因为大于3000的都已经返回Gold了,进行第二行WHEN的只能是小于3000的,所以可以不用写小于3000这个条件

【第八章】1- 创建视图 | Creating Views「视图」_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1UE41147KC?p=63&vd_source=eaeec77dfceb13d96cce76cc299fdd08

  1. 很多操作的代码其实很相像,所以如果每次都要重新输入代码的话,那肯定会花费很多时间,这里可以用创建视图这个方法来解决
    将下面这段代码加入视图中
    USE sql_invoicing;
    SELECT c.client_id, c.name, SUM(invoice_total) AS total_sales
    FROM clients c
    JOIN invoices i USING (client_id)
    GROUP BY client_id, name

    USE sql_invoicing;
    CREATE VIEW sales_by_client AS
    SELECT c.client_id, c.name, SUM(invoice_total) AS total_sales
    FROM clients c
    JOIN invoices i USING (client_id)
    GROUP BY client_id, name

    然后,点击SCHEMAS右上角的刷新按钮,然后在sql_invoicing中的Views可以找到新建的sales_by_client,也可以将这个视图看作是一个表格,可以调用这个表格里面的内容,但是视图并不储存数据,我们的数据存储在了表中,我们只是把视图提供给了一张基础表

【练习题】
在sql_invoicing中,显示每位客户的结余,并建立名为“客户结余client_balance”的视图,这个视图中要出现客户id,客户名字,结余(balance)

USE sql_invoicing;
CREATE VIEW client_balance AS
SELECT i.client_id, c.name, SUM(i.invoice_total - i.payment_total) AS balance
FROM invoices i
JOIN clients c USING (client_id)
GROUP BY client_id

2- 更改或删除视图 | Altering or Dropping Views_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1UE41147KC?p=64&vd_source=eaeec77dfceb13d96cce76cc299fdd08

  1. DROP VIEW :删除视图
    DROP VIEW sales_by_client

    名为sales_by_client的视图就被删除了
  2. CREATE OR REPLACE VIEW ... AS:修改某个视图,如果没有该视图,则创建一个
    例如,将sales_by_client修改为计算每个客户的发票总支付
    USE sql_invoicing;
    CREATE OR REPLACE VIEW sales_by_client AS
    SELECT c.client_id, c.name, SUM(payment_total) AS total_payments
    FROM clients c
    JOIN invoices i USING (client_id)
    GROUP BY client_id, name
  3. 点击sales_by_client,然后按ctrl+s即可将该视图保存下来,或者可以点击sales_by_client旁边的工具按钮,即可打开编辑模式,不过里面的代码可能跟原本我们输入的不太一样,这时MySQL系统自己弄的,目的是防止名称冲突,不管管这个
    例如,在代码中加入ORDER BY total_sales DESC,然后点击屏幕右下角的Apply,然后再点击Apply,Finsh即可应用
    最好还是将视图储存在SQL文件中,并放入源代码控制

3- 可更新视图 | Updatable Views_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1UE41147KC?p=65&vd_source=eaeec77dfceb13d96cce76cc299fdd08

  1. 如果视图里面没有DISTINCT函数,任何聚合函数(MIN、MAX、SUM、GROUP BY、 HAVING、UNION),那么就可以更新视图,主要用INSERT、UPDATE、DELETE函数来更新视图
  2. 根据invoices表,创建一个名为invoices_with_balance的视图,视图里面跟invoices一样,但是多了balance这一列,这一列是invoice_total和payment_total的差值,而且只输出右结余的发票
    CREATE OR REPLACE VIEW invoices_with_balance AS
    SELECT invoice_id, number, client_id, invoice_total, payment_total, 
           invoice_total - payment_total AS balance,
           invoice_date, due_date, payment_date
    FROM invoices
    WHERE invoice_total - payment_total > 0
  3. 删除invoices_with_balance中发票id为1的发票
    DELETE FROM invoices_with_balance
    WHERE invoice_id = 1
  4. 将invoices_with_balance中二号发票的到期日推迟两天
    UPDATE invoices_with_balance
    SET due_date = DATE_ADD(due_date, INTERVAL 2 DAY)
    WHERE invoice_id = 2
  5. 只有当视图右所有基础表中要用的列,插入的新发票才会生效,例如,如果视图中没有发票日期列,就不能往视图里插图任何行,因为我们的表不允许插入的日期列为空值

相关文章:

MySQL(B站CodeWithMosh)——2024.10.11(14)

ZZZZZZ目的ZZZZZZ代码ZZZZZZ重点ZZZZZZ操作(非代码,需要自己手动) 8- CASE运算符The CASE Operator_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1UE41147KC?p62&vd_sourceeaeec77dfceb13d96cce76cc299fdd08 在sql_store中&am…...

Transformer的预训练模型

Transformer的预训练模型有很多,其中一些在自然语言处理(NLP)和计算机视觉等领域取得了巨大成功。以下是一些主要的Transformer预训练模型: 1. BERT (Bidirectional Encoder Representations from Transformers) 简介: BERT 是谷歌推出的双向Transformer模型,专注于编码器…...

手撕单例模式

在Go语言中实现单例模式,通常需要确保一个类只有一个实例,并且提供一个全局访问点。Go语言本身没有类的概念,但可以通过结构体和函数来模拟这种行为。下面是一个简单的手撕单例模式的实现示例: 懒汉式(延迟初始化&…...

UE4 材质学习笔记06(布料着色器/体积冰着色器)

一.布料着色器 要编写一个着色器首先是看一些参考图片,我们需要找出一些布料特有的特征,下面是一个棉织物,可以看到布料边缘的纤维可以捕捉光线使得边缘看起来更亮 下面是缎子和丝绸的图片,与棉织物有几乎相反的效果,…...

人工智能学习框架

人工智能学习框架是指用于开发和训练机器学习和深度学习模型的软件库和工具集。这些框架帮助开发者更高效地构建、训练和部署模型,加速人工智能应用的开发进程。 常见的人工智能学习框架 TensorFlow 由Google开发,是一个开源的深度学习框架,…...

GEE 教程:Landsat TOA数据计算地表温度(LST)

目录 简介 函数 expression(expression, map) Arguments: Returns: Image reduceRegion(reducer, geometry, scale, crs, crsTransform, bestEffort, maxPixels, tileScale) Arguments: Returns: Dictionary 代码 结果 简介 地表温度(Land Surface Temperature,LS…...

Web编程---配置Tomcat

文章目录 一、目的二、原理三、过程1. 解压“apache-tomcat-10.0.27-windows-x64.zip”文件到指定文件夹。2. 配置环境变量3.修改编码方式,防止 Tomcat 控制台出现乱码。4.启动 Tmocat5.打开浏览器,地址栏输入 http://localhost:8080 ,如果看…...

物联网5G模块WIFI模块调式记录(Pico)

调试环境 MCU:Pico1(无wifi版)5G模块:EC800K(iot专用4g卡)WIFI模块:ESP01s(Esp8266芯片)、DX-WF24开发环境:MacBook Pro Sonoma 14.5开发工具:Th…...

中国平安蝉联2024“金融业先锋30”第一名 获金融业ESG最高五星评级

2024年10月15日,中央广播电视总台正式对外发布《金融业ESG行动报告(2024)》(以下简称"《报告》"),并公布了"中国ESG上市公司金融业先锋30"榜单。中国平安凭借在绿色金融、普惠金融、养…...

[图解]题目解析:财务人员最有可能成为业务执行者的是

1 00:00:00,420 --> 00:00:04,760 接下来,是第3章自测题第1部分的第8题 2 00:00:05,090 --> 00:00:08,120 单选,针对以下研究对象 3 00:00:08,900 --> 00:00:11,530 财务人员最有可能成为业务执行者的是 4 00:00:12,800 --> 00:00:15,280…...

零基础学大模型——大模型技术学习过程梳理

“学习是一个从围观到宏观,从宏观到微观的一个过程” 学习大模型技术也有几个月的时间了,之前的学习一直是东一榔头,西一棒槌,这学一点那学一点,虽然弄的乱七八糟,但对大模型技术也算有了一个初步的认识。…...

匹配全国地址的正则表达式工具类

正则表达式,匹配全国五级地址工具类,可以直接放在项目中使用~ 1级:国 (可忽略不填) 2级:**省、**自治区、**直辖市、**特别行政区、(四个直辖市可忽略不填) 3级:**市、**…...

Notepad++ 使用技巧

notepad 高级“查找模式” 1)两个换行换一行 选中为 “扩展(\n, \r, \t, \0, \x…)” ,查找目标里面可以写上\r\n\r\n,替换为\r\n 2)移除空行 查找目标:\r\n\r\n,替换为&#xf…...

《语音识别芯片选型全攻略》

《语音识别芯片选型全攻略》 一、语音识别芯片性能评估(一)主控芯片性能评估(二)接口需求分析(三)可靠性评估(四)生产工艺考量(五)湿敏等级判断 二、语音识别…...

【MySQL】VARCHAR和CHAR的区别?

目录 区别存储方式最大长度存取效率 使用场景参考 在MySQL中,VARCHAR和CHAR是两种常用的字符串数据类型,它们各自有不同的特点和适用场景。下面我将和大家一起了解这两种数据类型的区别及使用场景。 区别 存储方式 CHAR(N):定长存储&#…...

SQL Server日期查询常用语句

一、以下是SQL 日期截取 & SQL Server日期比较日期查询常用语句 select CONVERT(varchar, getdate(), 120 ) 2004-09-12 11:06:08 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),-,), ,),:,) 20040912110608 select COUNVRT(varchar(12) , getdate…...

java地理方位角度计算

计算方位角度 从一个坐标到另一个坐标的方位角度. GIS地理 方位角,正北作为0度基线,顺时针旋转。 /*** GIS方位角度,正北为0度,顺时针旋转** param lat1 坐标1纬度* param lon1 坐标1经度* param lat2 坐标2纬度* param lon2 坐…...

RabbitMQ service is already present - only updating service parameters

Windows下卸载RabbitMQ之后,然后重新注册RabbitMQ服务的时候,报错以下信息: D:\software\rabbitmq-server-4.0.2\rabbitmq_server-4.0.2\sbin>D:\software\rabbitmq-server-4.0.2\rabbitmq_server-4.0.2\sbin\rabbitmq-service.bat install RabbitMQ service is already …...

贵州网站建设提升可见性的策略

贵州网站建设提升可见性的策略 在数字化时代,网站的可见性对企业的成功至关重要。在贵州,随着互联网的发展,越来越多的企业意识到网站建设的重要性。那么,如何有效提升网站的可见性呢?以下是几个关键策略。 **1. 优化…...

SUGAR:用于皮层表面配准的球形超快图注意力框架|文献速递-基于深度学习的医学影像分类,分割与多模态应用

Title 题目 SUGAR: Spherical ultrafast graph attention framework for cortical surface registration SUGAR:用于皮层表面配准的球形超快图注意力框架 01 文献速递介绍 基于表面的分析在解剖和功能神经影像学研究中变得越来越受欢迎(Coalson 等,…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...

DBLP数据库是什么?

DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...

EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势

一、WebRTC与智能硬件整合趋势​ 随着物联网和实时通信需求的爆发式增长,WebRTC作为开源实时通信技术,为浏览器与移动应用提供免插件的音视频通信能力,在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能,对实时…...

中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点

中科院1区顶刊|IF14:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点 当下,免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入,我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...

C#中用于控制自定义特性(Attribute)

我们来详细解释一下 [AttributeUsage(AttributeTargets.Class, AllowMultiple false, Inherited false)] 这个 C# 属性。 在 C# 中,Attribute(特性)是一种用于向程序元素(如类、方法、属性等)添加元数据的机制。Attr…...

Excel 怎么让透视表以正常Excel表格形式显示

目录 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总...

解决MybatisPlus使用Druid1.2.11连接池查询PG数据库报Merge sql error的一种办法

目录 前言 一、问题重现 1、环境说明 2、重现步骤 3、错误信息 二、关于LATERAL 1、Lateral作用场景 2、在四至场景中使用 三、问题解决之道 1、源码追踪 2、关闭sql合并 3、改写处理SQL 四、总结 前言 在博客:【写在创作纪念日】基于SpringBoot和PostG…...

使用VMware克隆功能快速搭建集群

自己搭建的虚拟机,后续不管是学习java还是大数据,都需要集群,java需要分布式的微服务,大数据Hadoop的计算集群,如果从头开始搭建虚拟机会比较费时费力,这里分享一下如何使用克隆功能快速搭建一个集群 先把…...

暴雨新专利解决服务器噪音与性能悖论

6月1日,我国首部数据中心绿色化评价方面国家标准《绿色数据中心评价》正式实施,为我国数据中心的绿色低碳建设提供了明确指引。《评价》首次将噪音控制纳入国家级绿色评价体系,要求从设计隔声结构到运维定期监测实现闭环管控,加速…...