SQL语言函数详解

1. SQL内置函数概述

1.1 常见函数分类

SQL内置函数是数据库管理系统提供的一系列预定义函数,用于对数据进行各种操作和处理。根据功能和用途的不同,SQL内置函数可以分为以下几类:

  • 字符串函数:用于对字符串进行操作,如CONCAT用于连接字符串,SUBSTRING用于提取子字符串,UPPERLOWER用于转换字符串的大小写。这些函数在处理文本数据时非常有用,例如在数据清洗和格式化过程中。
  • 数学函数:用于进行数学计算,如ABS返回绝对值,CEILING返回大于等于指定数字的最小整数,FLOOR返回小于等于指定数字的最大整数,ROUND用于四舍五入。这些函数在处理数值数据时非常方便,例如在计算财务数据或进行数据分析时。
  • 日期和时间函数:用于处理日期和时间数据,如GETDATE返回当前日期和时间,DATEADD用于在日期上添加时间间隔,DATEDIFF用于计算两个日期之间的差异。这些函数在处理与时间相关的数据时非常关键,例如在日志分析或时间序列分析中。
  • 聚合函数:用于对一组数据进行聚合操作,如SUM计算总和,AVG计算平均值,COUNT计算行数,MAXMIN分别返回最大值和最小值。这些函数在数据分析和报告生成中非常重要,例如在统计销售数据或用户行为数据时。
  • 转换函数:用于将数据从一种类型转换为另一种类型,如CASTCONVERT。这些函数在数据类型不匹配或需要进行数据类型转换时非常有用,例如在将字符串转换为日期或数字时。

1.2 函数应用场景

SQL内置函数在各种数据库操作和数据处理场景中都有广泛的应用,以下是一些具体的应用场景:

  • 数据清洗与预处理:在数据导入或处理过程中,使用字符串函数和数学函数对数据进行格式化和清理。例如,使用LTRIMRTRIM去除字符串两端的空格,使用REPLACE替换错误的字符,使用ROUND对数值进行四舍五入。
  • 数据分析与报告:在数据分析和报告生成中,聚合函数和日期函数被广泛应用。例如,使用SUMAVG计算销售总额和平均销售额,使用DATEADDDATEDIFF分析时间序列数据,计算不同时间段的销售增长或下降趋势。
  • 数据查询与筛选:在数据查询过程中,使用字符串函数和数学函数对数据进行筛选和过滤。例如,使用CHARINDEX查找字符串中子字符串的位置,使用ABS对数值进行绝对值比较。
  • 数据转换与格式化:在数据导出或展示时,使用转换函数对数据进行格式化。例如,使用CONVERT将日期格式化为特定的格式,使用CAST将数值转换为字符串以便在报告中显示。
  • 性能优化与索引:在数据库性能优化中,合理使用函数可以提高查询效率。例如,避免在WHERE子句中使用函数,以确保索引能够被有效利用。

2. 字符串函数

2.1 CONCAT函数举例

CONCAT 函数用于将两个或多个字符串连接在一起,形成一个新的字符串。它在处理文本数据时非常有用,尤其是在需要将多个字段的值组合成一个完整的字符串时。

  • 语法

    CONCAT(string1, string2, ..., stringN)
    

    其中 string1, string2, …, stringN 是需要连接的字符串。

  • 举例
    假设有一个员工表 employees,其中包含员工的 first_namelast_name 字段,现在需要将这两个字段组合成一个完整的姓名字段。

    SELECT CONCAT(first_name, ' ', last_name) AS full_name
    FROM employees;
    

    如果表中有以下数据:

    first_namelast_name
    JohnDoe
    JaneSmith

    查询结果将为:

    full_name
    John Doe
    Jane Smith

2.2 UPPER函数举例

UPPER 函数用于将字符串中的所有字符转换为大写。这在数据处理中非常有用,尤其是在需要统一文本格式或进行不区分大小写的比较时。

  • 语法

    UPPER(string)
    

    其中 string 是需要转换为大写的字符串。

  • 举例
    假设有一个产品表 products,其中包含产品名称 product_name 字段,现在需要将所有产品名称转换为大写。

    SELECT UPPER(product_name) AS upper_product_name
    FROM products;
    

    如果表中有以下数据:

    product_name
    iPhone 14
    Samsung Galaxy

    查询结果将为:

    upper_product_name
    IPHONE 14
    SAMSUNG GALAXY

通过以上两个函数的举例,可以看出 CONCATUPPER 在处理字符串数据时的强大功能。它们可以灵活地组合和格式化字符串,满足各种数据处理需求。

3. 数学函数

3.1 ABS函数举例

ABS 函数用于返回一个数值的绝对值。无论输入值是正数、负数还是零,该函数都能返回其非负值。在处理数值数据时,尤其是涉及距离计算、误差分析或需要消除负号的场景中,ABS 函数非常实用。

  • 语法

    ABS(numeric_expression)
    

    其中 numeric_expression 是需要计算绝对值的数值表达式。

  • 举例
    假设有一个订单表 orders,其中包含订单金额 amount 字段,现在需要计算每个订单金额的绝对值,以确保金额为正数。

    SELECT order_id, ABS(amount) AS absolute_amount
    FROM orders;
    

    如果表中有以下数据:

    order_idamount
    1-100
    2200
    3-150

    查询结果将为:

    order_idabsolute_amount
    1100
    2200
    3150

3.2 ROUND函数举例

ROUND 函数用于将一个数值四舍五入到指定的小数位数。该函数在处理财务数据、科学计算或任何需要精确控制数值精度的场景中非常有用。

  • 语法

    ROUND(numeric_expression, length, [function])
    

    其中:

    • numeric_expression 是需要四舍五入的数值表达式。
    • length 是指定的小数位数,可以是正数、负数或零。
    • function 是可选参数,用于指定四舍五入的模式。默认值为 0,表示标准四舍五入;其他值(如 1)表示截断。
  • 举例
    假设有一个销售表 sales,其中包含销售额 revenue 字段,现在需要将销售额四舍五入到小数点后两位。

    SELECT sale_id, ROUND(revenue, 2) AS rounded_revenue
    FROM sales;
    

    如果表中有以下数据:

    sale_idrevenue
    1123.456
    278.9123
    3456.789

    查询结果将为:

    sale_idrounded_revenue
    1123.46
    278.91
    3456.79

通过以上两个函数的举例,可以看出 ABSROUND 在处理数值数据时的强大功能。它们可以灵活地处理各种数值问题,满足数据处理和分析中的精确需求。

4. 日期函数

4.1 GETDATE函数举例

GETDATE 函数用于返回当前的日期和时间。它在处理与时间相关的数据时非常关键,尤其是在需要记录数据的创建时间或更新时间的场景中。

  • 语法

    GETDATE()
    

    该函数不需要任何参数,直接返回当前的日期和时间。

  • 举例
    假设有一个用户表 users,其中包含用户的基本信息,现在需要记录每个用户的注册时间。

    INSERT INTO users (username, email, registration_date)
    VALUES ('john_doe', 'john@example.com', GETDATE());
    

    如果当前时间是 2025-03-04 14:30:00,则插入的记录将为:

    usernameemailregistration_date
    john_doejohn@example.com2025-03-04 14:30:00

    另一个场景是查询当前时间与某个特定时间之间的差异。例如,假设有一个订单表 orders,其中包含订单的创建时间 created_at,现在需要计算每个订单的处理时间(假设处理时间为当前时间与创建时间的差值)。

    SELECT order_id, created_at, DATEDIFF(minute, created_at, GETDATE()) AS processing_time_minutes
    FROM orders;
    

    如果表中有以下数据:

    order_idcreated_at
    12025-03-04 13:00:00
    22025-03-04 14:00:00

    查询结果将为:

    order_idcreated_atprocessing_time_minutes
    12025-03-04 13:00:0090
    22025-03-04 14:00:0030

4.2 DATEDIFF函数举例

DATEDIFF 函数用于计算两个日期之间的差异。它可以指定差异的单位(如天、小时、分钟等),在处理时间序列数据或需要计算时间间隔的场景中非常有用。

  • 语法

    DATEDIFF(datepart, startdate, enddate)
    

    其中:

    • datepart 是指定的日期部分,如 yearmonthdayhourminute 等。
    • startdate 是起始日期。
    • enddate 是结束日期。
  • 举例
    假设有一个员工表 employees,其中包含员工的入职日期 hire_date,现在需要计算每个员工的在职天数。

    SELECT employee_id, hire_date, DATEDIFF(day, hire_date, GETDATE()) AS days_employed
    FROM employees;
    

    如果表中有以下数据:

    employee_idhire_date
    12020-01-01
    22022-06-15

    查询结果将为:

    employee_idhire_datedays_employed
    12020-01-011917
    22022-06-151052

    另一个场景是计算两个日期之间的月数差异。例如,假设有一个项目表 projects,其中包含项目的开始日期 start_date 和结束日期 end_date,现在需要计算每个项目的持续月数。

    SELECT project_id, start_date, end_date, DATEDIFF(month, start_date, end_date) AS duration_months
    FROM projects;
    

    如果表中有以下数据:

    project_idstart_dateend_date
    12023-01-012024-12-31
    22024-03-152025-03-14

    查询结果将为:

    project_idstart_dateend_dateduration_months
    12023-01-012024-12-3124
    22024-03-152025-03-1412

通过以上两个函数的举例,可以看出 GETDATEDATEDIFF 在处理日期和时间数据时的强大功能。它们可以灵活地获取当前时间并计算时间间隔,满足各种与时间相关的数据处理需求。

5. 自定义函数

5.1 自定义标量函数举例

自定义标量函数是 SQL 中一种非常灵活的工具,它能够返回单个标量值,如整数、字符串或日期等。这种函数在处理复杂的计算逻辑或重复使用的表达式时非常有用。以下是一个具体的自定义标量函数示例:

示例:计算员工的工龄

假设有一个员工表 employees,其中包含员工的入职日期 hire_date。现在需要创建一个自定义标量函数,用于计算每个员工的工龄(以年为单位)。

  • 创建函数

    CREATE FUNCTION dbo.CalculateTenure(@hire_date DATE)
    RETURNS INT
    AS
    BEGINDECLARE @tenure INT;SET @tenure = DATEDIFF(YEAR, @hire_date, GETDATE()) - CASE WHEN (MONTH(@hire_date) > MONTH(GETDATE())) OR (MONTH(@hire_date) = MONTH(GETDATE()) AND DAY(@hire_date) > DAY(GETDATE()))THEN 1 ELSE 0 END;RETURN @tenure;
    END;
    
  • 函数解释

    • DATEDIFF(YEAR, @hire_date, GETDATE()) 计算从入职日期到当前日期的年数差。
    • CASE 语句用于调整计算结果,确保只有当入职日期在当前日期之前时,才计算为完整的年数。
  • 调用函数

    SELECT employee_id, hire_date, dbo.CalculateTenure(hire_date) AS tenure_years
    FROM employees;
    
  • 示例数据

    employee_idhire_date
    12020-01-01
    22022-06-15
  • 查询结果

    employee_idhire_datetenure_years
    12020-01-015
    22022-06-153

通过这个自定义标量函数,可以方便地计算每个员工的工龄,而无需在每次查询时重复编写复杂的日期计算逻辑。

5.2 自定义表值函数举例

自定义表值函数能够返回一个表结构的结果集,这在需要从多个表中提取数据并进行复杂查询时非常有用。以下是一个具体的自定义表值函数示例:

示例:获取员工及其直属上级的信息

假设有一个员工表 employees,其中包含员工的 employee_idfirst_namelast_namemanager_id(直属上级的员工 ID)。现在需要创建一个自定义表值函数,用于获取每个员工及其直属上级的详细信息。

  • 创建函数

    CREATE FUNCTION dbo.GetEmployeeAndManagerInfo(@employee_id INT)
    RETURNS TABLE
    AS
    RETURN
    (SELECT e.employee_id AS employee_id,e.first_name AS employee_first_name,e.last_name AS employee_last_name,m.employee_id AS manager_id,m.first_name AS manager_first_name,m.last_name AS manager_last_nameFROM employees eLEFT JOIN employees m ON e.manager_id = m.employee_idWHERE e.employee_id = @employee_id
    );
    
  • 函数解释

    • 该函数通过 LEFT JOIN 将员工表自身连接,获取每个员工及其直属上级的信息。
    • WHERE 子句用于筛选指定的员工 ID。
  • 调用函数

    SELECT * FROM dbo.GetEmployeeAndManagerInfo(1);
    
  • 示例数据

    employee_idfirst_namelast_namemanager_id
    1JohnDoe3
    2JaneSmith3
    3AliceJohnsonNULL
  • 查询结果

    employee_idemployee_first_nameemployee_last_namemanager_idmanager_first_namemanager_last_name
    1JohnDoe3AliceJohnson

通过这个自定义表值函数,可以方便地获取每个员工及其直属上级的详细信息,而无需在每次查询时重复编写复杂的表连接逻辑。这种函数特别适用于需要频繁查询关联数据的场景。

6. 自定义函数调用方法

6.1 标量函数调用

标量函数是自定义函数的一种,它返回单个标量值,如整数、字符串或日期等。调用标量函数时,可以直接在 SQL 查询中使用函数名,并将参数传递给函数。以下是标量函数调用的具体步骤和示例:

调用语法

SELECT 函数名(参数1, 参数2, ..., 参数N) AS 列名
FROM 表名;

示例:调用计算工龄的标量函数

假设我们已经创建了一个名为 dbo.CalculateTenure 的标量函数,用于计算员工的工龄(以年为单位)。该函数的定义如下:

CREATE FUNCTION dbo.CalculateTenure(@hire_date DATE)
RETURNS INT
AS
BEGINDECLARE @tenure INT;SET @tenure = DATEDIFF(YEAR, @hire_date, GETDATE()) - CASE WHEN (MONTH(@hire_date) > MONTH(GETDATE())) OR (MONTH(@hire_date) = MONTH(GETDATE()) AND DAY(@hire_date) > DAY(GETDATE()))THEN 1 ELSE 0 END;RETURN @tenure;
END;

现在,我们可以通过以下方式调用该函数:

SELECT employee_id, hire_date, dbo.CalculateTenure(hire_date) AS tenure_years
FROM employees;

示例数据

employee_idhire_date
12020-01-01
22022-06-15

查询结果

employee_idhire_datetenure_years
12020-01-015
22022-06-153

通过这种方式,标量函数可以方便地在查询中使用,避免了重复编写复杂的逻辑代码。

6.2 表值函数调用

表值函数是自定义函数的另一种类型,它返回一个表结构的结果集。调用表值函数时,需要使用 FROM 子句,并将函数名和参数作为数据源。以下是表值函数调用的具体步骤和示例:

调用语法

SELECT *
FROM 函数名(参数1, 参数2, ..., 参数N);

示例:调用获取员工及其直属上级信息的表值函数

假设我们已经创建了一个名为 dbo.GetEmployeeAndManagerInfo 的表值函数,用于获取每个员工及其直属上级的详细信息。该函数的定义如下:

CREATE FUNCTION dbo.GetEmployeeAndManagerInfo(@employee_id INT)
RETURNS TABLE
AS
RETURN
(SELECT e.employee_id AS employee_id,e.first_name AS employee_first_name,e.last_name AS employee_last_name,m.employee_id AS manager_id,m.first_name AS manager_first_name,m.last_name AS manager_last_nameFROM employees eLEFT JOIN employees m ON e.manager_id = m.employee_idWHERE e.employee_id = @employee_id
);

现在,我们可以通过以下方式调用该函数:

SELECT * FROM dbo.GetEmployeeAndManagerInfo(1);

示例数据

employee_idfirst_namelast_namemanager_id
1JohnDoe3
2JaneSmith3
3AliceJohnsonNULL

查询结果

employee_idemployee_first_nameemployee_last_namemanager_idmanager_first_namemanager_last_name
1JohnDoe3AliceJohnson

通过这种方式,表值函数可以方便地在查询中使用,避免了重复编写复杂的表连接逻辑,特别适用于需要频繁查询关联数据的场景。

7. 自定义函数注意事项

7.1 参数定义规范

在定义自定义函数时,参数的定义至关重要,它直接影响函数的使用和性能。以下是一些关键的参数定义规范:

  • 参数命名:参数名称应具有明确的语义,能够清晰地表达其用途。例如,使用 @employee_id 而不是模糊的 @param1。这有助于提高代码的可读性和可维护性。
  • 参数类型:参数的数据类型必须明确指定,并且应选择合适的数据类型以确保数据的准确性和性能。例如,对于日期参数,应使用 DATEDATETIME 类型,而不是 VARCHAR。这可以避免类型转换带来的性能开销和潜在的错误。
  • 默认值:可以为参数设置默认值,这使得函数调用更加灵活。如果调用时未提供参数值,则使用默认值。例如:
    CREATE FUNCTION dbo.CalculateDiscount(@price DECIMAL(10, 2) = 0, @discount_rate DECIMAL(5, 2) = 0.1)
    RETURNS DECIMAL(10, 2)
    AS
    BEGINRETURN @price * @discount_rate;
    END;
    
    在此函数中,如果未提供 @price@discount_rate,则会使用默认值 00.1
  • 参数数量:尽量减少参数的数量,过多的参数会使函数调用变得复杂且难以维护。如果需要传递多个相关参数,可以考虑使用表值参数或结构化类型。

7.2 返回值限制

自定义函数的返回值也受到一些限制,这些限制需要在设计函数时予以考虑:

  • 标量函数返回值
    • 标量函数只能返回单个标量值,如整数、字符串或日期等。返回值的数据类型必须在 RETURNS 子句中明确指定。例如:
      CREATE FUNCTION dbo.GetAge(@birthdate DATE)
      RETURNS INT
      AS
      BEGINRETURN DATEDIFF(YEAR, @birthdate, GETDATE());
      END;
      
    • 返回值必须与 RETURNS 子句中指定的数据类型一致,否则会引发错误。
  • 表值函数返回值
    • 表值函数返回一个表结构的结果集,其结构必须在 RETURNS 子句中明确定义。例如:
      CREATE FUNCTION dbo.GetEmployeeDetails(@employee_id INT)
      RETURNS TABLE
      AS
      RETURN
      (SELECT employee_id, first_name, last_name, hire_dateFROM employeesWHERE employee_id = @employee_id
      );
      
    • 表值函数的返回表结构不能动态改变,必须在定义时固定。这意味着不能在函数体中动态添加或删除列。
  • 性能考虑
    • 自定义函数的执行效率直接影响查询性能。尽量避免在函数中使用复杂的查询或大量的数据操作,尤其是对于标量函数,因为它们可能会被多次调用。
    • 对于表值函数,如果返回的数据量较大,可能会对性能产生负面影响。在这种情况下,可以考虑使用存储过程或视图来替代。
  • 递归调用限制
    • SQL Server 支持递归调用自定义函数,但递归调用的深度有限制。默认情况下,递归调用的深度限制为 100 级。如果需要更高的递归深度,可以通过设置配置选项来调整,但需谨慎使用,以避免无限递归导致系统资源耗尽。
    • 例如,可以通过以下命令设置递归调用的最大深度:
      DBCC SETMAXRECURSION (0); -- 0 表示无限制
      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27985.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抽奖系统(从0-1)(上)

hu项目的开发流程介绍 1. 项目启动阶段 • 项⽬概述:介绍项⽬的背景、⽬标和预期成果。 • 团队组建:建跨职能团队,包括产品经理、UI/UX 设计师、开发⼈员、测试⼈员等。 • ⻆⾊定义:明确团队中各个⻆⾊的职责和⼯作内容。 2. 需…

Python第十三课:数据库交互 | 信息帝国的基石

🎯 本节目标 理解SQL与NoSQL的核心差异掌握SQL基础语法与设计范式学会使用ORM简化数据库操作开发实战项目:电商订单系统掌握索引优化与事务管理 1️⃣ 数据库理论基石(先懂原理再写代码) 💡 数据库类型对比 &#…

GPU/CUDA 发展编年史:从 3D 渲染到 AI 大模型时代

目录 文章目录 目录1960s~1999:GPU 的诞生:光栅化(Rasterization)3D 渲染算法的硬件化实现之路学术界算法研究历程工业界产品研发历程光栅化技术原理光栅化技术的软件实现:OpenGL 3D 渲染管线设计1. 顶点处理&#xff…

流程设计5原则与流程执行5要点

流程设计5原则与流程执行5要点 汉捷咨询 胡红卫 企业创造价值、为客户服务是通过业务流来实现的,而业务流程是业务流的载体和表现形式。把业务流程设计好、执行好,就能够持续提升企业各项活动的质量和效率,确保端到端的优质交付&#xff0c…

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程 简介 multiprocessing 模块 Process 类 僵尸进程与孤儿进程 简介 在前面的进程理论的介绍当中我们已经介绍了进程的概念、并发与并行的区别以及进程并发的实现理论,这些都…

Linux : 环境变量

目录 一 环境变量 1.基本概念 二 常见环境变量 三 查看环境变量的方法 1.env:查看系统中所有环境变量 2. echo $NAME 四 如何不带路径也能运行的自己的程序 1.将自己的程序直接添加到PATH指定的路径下 五 环境变量与本地变量 1.本地变量 2. 环境变量 六C、C中main()…

【YashanDB认证】yashandb23.3.1 个人版单机部署安装实践

YCA报名链接如下: YashanDB|崖山数据库系统YashanDB学习中心-YCA认证详情 目前免费 主要参考文档: 单机(主备)部署 | YashanDB Doc 另外还参考摩天轮文章: YashanDB 23.2.9.101 企业版安装步骤抢先看! - 墨天轮 …

Stiring-PDF:开源免费的PDF文件处理软件

Stiring-PDF是一款开源免费且比较好用的PDF文件处理工具。 Stiring-PDF官网网址为:https://www.stiringpdf.com/。Stiring-PDF是一款专业的PDF文件处理工具,支持Windows和macOS操作系统;提供丰富的PDF编辑和转换功能,适用于日常工…

docker-compose安装anythingLLM

1、anythingLLM的docker-compose文件 version: 3.8 services:anythingllm:image: mintplexlabs/anythingllm:latestcontainer_name: anythingllmports:- "23001:3001"cap_add:- SYS_ADMINenvironment:# Adjust for your environment- STORAGE_DIR/app/server/storage…

maven推送jar包到nexus

1.背景2.推送jar包到nexus3.从nexus拉取jar包4.release和snapshot区别 1.背景 本地虚拟机centos7.9(110.110.110.100)安装好了nexus 下面演示把本地的maven项目打包推送到nexus。 2.推送jar包到nexus 我项目的命名如下: 下面演示把这个项目jar包推送到nexus仓库 <groupI…

微信小程序上如何使用图形验证码

1、php服务器生成图片验证码的代码片段如下&#xff1a; 注意红框部分的代码&#xff0c;生成的是ArrayBuffer类型的二进制图片 2、显示验证码 显示验证码&#xff0c;不要直接image组件加上src显示&#xff0c;那样拿不到cookie&#xff0c;没有办法做图形验证码的验证&…

comfyui使用ComfyUI-AnimateDiff-Evolved, ComfyUI-Advanced-ControlNet节点报错解决

comfyui使用animate-diff生成动画&#xff0c;各种报错解决 报错1&#xff1a; ‘cond_obj’ object has no attribute ‘hooks’ 报错2&#xff1a; AdvancedControlBase.get_control_inject() takes 5 positional arguments but 6 were given 报错3&#xff1a; ‘ControlN…

centos搭建 Node.js 开发环境

Node.js &#xff0c;通常简称为Node&#xff0c;是一个事件驱动 I/O 服务端 JavaScript 环境&#xff0c;基于 Chrome V8引擎&#xff0c;具备速度快、性能强等特点&#xff0c;可用于搭建各类网络应用&#xff0c;及作为小程序后端服务环境。npm 和 npx 都是和 Node.js 相关的…

涨薪技术|JMeter异步接口测试实战

前言 异步接口是指在请求发送后&#xff0c;客户端并不会立即收到响应结果。与同步接口不同&#xff0c;异步接口需要等待一段时间后才能得到相应的结果。 通常情况下&#xff0c;异步接口可以通过消息队列或事件监听器来实现。当用户请求进入系统时&#xff0c;可以将任务提…

SAP MDG —— MDG on S/4HANA 2023 FPS03 创新汇总

文章目录 MDG 基于SAP S/4HANA 2023 FPS03的创新BP/C/S&#xff1a;消息控制BP/C/S&#xff1a;手工分配数据控制者MDG-F&#xff1a;使用S/4扩展数据校验功能生成式AI可用于协助自定义对象的数据变更/同时可总结批量变更的内容 MDG 基于SAP S/4HANA 2023 FPS03的创新 由于从S…

数据库基础(MySQL)

1. 数据库基础 1.1 什么是数据库 存储数据用文件就可以了&#xff0c;为什么还要弄个数据库 文件保存数据有以下几个缺点&#xff1a; 文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便 数据库存储介质&#xff1a; 磁盘内存 为了…

第五天 Labview数据记录(5.2 Text文件读写)

5.2 Text文件读写 文本文件读写在程序中具有重要的作用&#xff0c;主要体现在以下几个方面&#xff1a; 1. 数据存储与持久化&#xff1b;2. 数据交换与共享&#xff1b;3. 日志记录&#xff1b;4. 配置管理&#xff1b;5. 数据备份与恢复&#xff1b;6. 用户输入与输出&…

校园快递助手小程序毕业系统设计

系统功能介绍 管理员端 1&#xff09;登录&#xff1a;输入账号密码进行登录 2&#xff09;用户管理&#xff1a;查看编辑添加删除 学生信息 3&#xff09;寄件包裹管理&#xff1a;查看所有的包裹信息&#xff0c;及物流信息 4&#xff09;待取件信息&#xff1a;查看已到达的…

Docker入门指南:Windows下docker配置镜像源加速下载

Windows下docker配置镜像源加速下载 docker的官方镜像是海外仓库&#xff0c;默认下载耗时较长&#xff0c;而且经常出现断站的现象&#xff0c;因此需要配置国内镜像源。 国内镜像源概述 国内现有如下镜像源可以使用 "http://hub-mirror.c.163.com", "http…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例2: 分页和排序

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)示例2: 分页和排序📚前言📚页面效果📚指令…