当前位置: 首页 > 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 等,…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”

案例&#xff1a; 某医药分销企业&#xff0c;主要经营各类药品的批发与零售。由于药品的特殊性&#xff0c;效期管理至关重要&#xff0c;但该企业一直面临效期问题的困扰。在未使用WMS系统之前&#xff0c;其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...