(一)docker:建立oracle数据库

  • 前言,整个安装过程主要根据docker-images/OracleDatabase/SingleInstance
    /README.md
    ,里边对如何制作容器讲的比较清楚,唯一问题就是都是英文,可以使用谷歌浏览器自动翻译成中文,自己再对照英文相互参照来制作
  • 提前准备下路径和文件夹
  • docker文件夹
    • oracle文件夹
      • oradata文件夹
  1. 从github下载或者使用gitdown下oracle镜像相关文件
    在这里插入图片描述

  2. 进入dockerfile目录执行batch

cd docker-images\OracleDatabase\SingleInstance\dockerfiles\
.\buildContainerImage.sh -v 21.3.0 -x -i

一定要选x,不然会报错,因为说明里有提到:必须提供 Oracle 数据库的安装二进制文件(Oracle Database 18c XE、21c XE 和 23c FREE 除外)并将它们放入该dockerfiles/文件夹中

3.镜像创建完成
在这里插入图片描述
4.创建并启动容器

sixdog@sixiaodong oracle % pwd
/Users/sixdog/Documents/docker/oracle
sixdog@sixiaodong oracle % 
sixdog@sixiaodong oracle % docker run -d \                       
--name oracle21 \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_PWD=123456 \
-v ./oradata:/opt/oracle/oradata \
oracle/database:21.3.0-xe
0aa0fc400733d45706d1c0869bc8b106f988c714eeb434ce37c75306b38a1e17
sixdog@sixiaodong dockerfiles % 

5.查看容器是否创建成功

#看最后20行log
sixdog@sixiaodong oracle % docker logs -f -t --tail=20 oracle21 
2023-10-21T06:56:09.180180864Z PL/SQL procedure successfully completed.
2023-10-21T06:56:09.180189649Z 
2023-10-21T06:56:09.182385347Z SQL> Disconnected from Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
2023-10-21T06:56:09.182415597Z Version 21.3.0.0.0
2023-10-21T06:56:09.197874176Z The Oracle base remains unchanged with value /opt/oracle
2023-10-21T06:56:09.382047867Z The Oracle base remains unchanged with value /opt/oracle
2023-10-21T06:56:09.482741134Z #########################
2023-10-21T06:56:09.482792178Z DATABASE IS READY TO USE!
2023-10-21T06:56:09.482802884Z #########################
2023-10-21T06:56:09.490836103Z The following output is now a tail of the alert.log:
2023-10-21T06:56:09.492573130Z XEPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
2023-10-21T06:56:09.492653263Z 2023-10-21T06:56:08.209280+00:00
2023-10-21T06:56:09.492661249Z ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE
2023-10-21T06:56:09.492664667Z Completed: ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE
2023-10-21T06:56:09.492666864Z 2023-10-21T06:56:08.771745+00:00
2023-10-21T06:56:09.492668983Z ALTER SYSTEM SET control_files='/opt/oracle/oradata/XE/control01.ctl' SCOPE=SPFILE;
2023-10-21T06:56:09.492671032Z 2023-10-21T06:56:08.796494+00:00
2023-10-21T06:56:09.492672981Z ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
2023-10-21T06:56:09.492674884Z ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE
2023-10-21T06:56:09.492676811Z Completed: ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE

6.查看容器

sixdog@sixiaodong oracle % docker ps -a
CONTAINER ID   IMAGE                       COMMAND                   CREATED         STATUS                    PORTS                                            NAMES
0aa0fc400733   oracle/database:21.3.0-xe   "/bin/bash -c $ORACL…"   9 minutes ago   Up 9 minutes (healthy)    0.0.0.0:1521->1521/tcp, 0.0.0.0:5500->5500/tcp   oracle21
sixdog@sixiaodong oracle % 

7.进入sqlplus并连接

sixdog@sixiaodong oracle % docker exec -it oracle21 /bin/sh
[sh-4.2$ sqlplus sys/123456@//localhost:1521/XE as sysdba;SQL*Plus: Release 21.0.0.0.0 - Production on Sat Oct 21 07:02:50 2023
Version 21.3.0.0.0Copyright (c) 1982, 2021, Oracle.  All rights reserved.Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0SQL> 

数据库连接成功

8.找一个macos好用的SQL连接工具,我开始找了dbwear,但是他很不友好,不显示数据库的schema,表等等,也可能是我用的不对,最后还是下载了sqldeveloper-23.1.0.097.1607-macos-x64.app.zip,连接比较好用
在这里插入图片描述
在这里插入图片描述

可以分别执行一下,看看当前数据库的情况
--查看所有的数据库实例
select * from v$instance;
--查看当前的所有数据库
select * from v$database;
--查看当前库的所有数据表:
select TABLE_NAME from all_tables;

9.创建用户授权

CREATE USER SIXDOG IDENTIFIED BY 123456;

然后报错


在行: 1 上开始执行命令时出错 -
CREATE USER SIXDOG IDENTIFIED BY 123456
错误报告 -
ORA-65096: 公用用户名或角色名无效
65096. 00000 -  "invalid common user or role name"
*Cause:    An attempt was made to create a common user or role with a namethat was not valid for common users or roles. In addition to theusual rules for user and role names, common user and role namesmust consist only of ASCII characters, and must contain the prefixspecified in common_user_prefix parameter.
*Action:   Specify a valid common user or role name.

这个原因查一下就知道了,但是一大堆没什么意义,我们是要能正常使用,只要知道怎么解决就可以了

select pdb_name from cdb_pdbs;
--XEPDB1
--PDB$SEED
alter session set container = XEPDB1;
--Session已变更。
--CREATE USER SIXDOG IDENTIFIED BY 123456;
--select pdb_name from cdb_pdbs;
--alter session set container = XEPDB1;
CREATE USER SIXDOG IDENTIFIED BY 123456;
GRANT CONNECT, RESOURCE, DBA TO SIXDOG;

在这里插入图片描述
10.创建表

--------------------------------------------------------
--  文件已创建 - 星期六-十月-21-2023   
--------------------------------------------------------
--------------------------------------------------------
--  DDL for Table DEPT
--------------------------------------------------------CREATE TABLE "SIXDOG"."DEPT" (	"DEPTNO" NUMBER(2,0), "DNAME" VARCHAR2(14 BYTE), "LOC" VARCHAR2(13 BYTE)) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "USERS" ;
REM INSERTING into SIXDOG.DEPT
SET DEFINE OFF;
Insert into SIXDOG.DEPT (DEPTNO,DNAME,LOC) values (10,'ACCOUNTING','NEW YORK');
Insert into SIXDOG.DEPT (DEPTNO,DNAME,LOC) values (20,'RESEARCH','DALLAS');
Insert into SIXDOG.DEPT (DEPTNO,DNAME,LOC) values (30,'SALES','CHICAGO');
Insert into SIXDOG.DEPT (DEPTNO,DNAME,LOC) values (40,'OPERATIONS','BOSTON');
--------------------------------------------------------
--  DDL for Index PK_DEPT
--------------------------------------------------------CREATE UNIQUE INDEX "SIXDOG"."PK_DEPT" ON "SIXDOG"."DEPT" ("DEPTNO") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "USERS" ;
--------------------------------------------------------
--  Constraints for Table DEPT
--------------------------------------------------------ALTER TABLE "SIXDOG"."DEPT" ADD CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "USERS"  ENABLE;

在这里插入图片描述

--------------------------------------------------------
--  文件已创建 - 星期六-十月-21-2023   
--------------------------------------------------------
--------------------------------------------------------
--  DDL for Table EMP
--------------------------------------------------------CREATE TABLE "SIXDOG"."EMP" (	"EMPNO" NUMBER(4,0), "ENAME" VARCHAR2(10 BYTE), "JOB" VARCHAR2(9 BYTE), "MGR" NUMBER(4,0), "HIREDATE" DATE, "SAL" NUMBER(7,2), "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0)) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGINGSTORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "USERS" ;
REM INSERTING into SIXDOG.EMP
SET DEFINE OFF;
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7839,'KING','PRESIDENT',null,to_date('17-11月-81','DD-MON-RR'),5000,null,10);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7698,'BLAKE','MANAGER',7839,to_date('01-5月 -81','DD-MON-RR'),2850,null,30);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7782,'CLARK','MANAGER',7839,to_date('09-6月 -81','DD-MON-RR'),2450,null,10);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7566,'JONES','MANAGER',7839,to_date('02-4月 -81','DD-MON-RR'),2975,null,20);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7902,'FORD','ANALYST',7566,to_date('03-12月-81','DD-MON-RR'),3000,null,20);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7369,'SMITH','CLERK',7902,to_date('17-12月-80','DD-MON-RR'),800,null,20);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7499,'ALLEN','SALESMAN',7698,to_date('20-2月 -81','DD-MON-RR'),1600,300,30);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7521,'WARD','SALESMAN',7698,to_date('22-2月 -81','DD-MON-RR'),1250,500,30);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7654,'MARTIN','SALESMAN',7698,to_date('28-9月 -81','DD-MON-RR'),1250,1400,30);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7844,'TURNER','SALESMAN',7698,to_date('08-9月 -81','DD-MON-RR'),1500,0,30);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7900,'JAMES','CLERK',7698,to_date('03-12月-81','DD-MON-RR'),950,null,30);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7934,'MILLER','CLERK',7782,to_date('23-1月 -82','DD-MON-RR'),1300,null,10);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7788,'SCOTT','ANALYST',7566,to_date('19-4月 -87','DD-MON-RR'),3000,null,20);
Insert into SIXDOG.EMP (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO) values (7876,'ADAMS','CLERK',7788,to_date('23-5月 -87','DD-MON-RR'),1100,null,20);
--------------------------------------------------------
--  DDL for Index PK_EMP
--------------------------------------------------------CREATE UNIQUE INDEX "SIXDOG"."PK_EMP" ON "SIXDOG"."EMP" ("EMPNO") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "USERS" ;
--------------------------------------------------------
--  Constraints for Table EMP
--------------------------------------------------------ALTER TABLE "SIXDOG"."EMP" ADD CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE "USERS"  ENABLE;
--------------------------------------------------------
--  Ref Constraints for Table EMP
--------------------------------------------------------ALTER TABLE "SIXDOG"."EMP" ADD CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")REFERENCES "SIXDOG"."DEPT" ("DEPTNO") ENABLE;

在这里插入图片描述
11.确认创建的表和数据
因为SQL developer一直卡死的状态,所以SQLplus确认

SQL> connect SIXDOG@XEPDB1
Enter password: 123456
Connected.SQL> SELECT COUNT(*) FROM EMP;COUNT(*)
----------14SQL> SELECT COUNT(*) FROM DEPT;COUNT(*)
----------4SQL> 

12.现在就是一个正常的数据库了,再看下本地挂载的目录里oracle配置文件的信息

sixdog@sixiaodong XE % pwd
/Users/sixdog/Documents/docker/oracle/oradata/dbconfig/XE
sixdog@sixiaodong XE % vi tnsnames.ora
# tnsnames.ora Network Configuration File:XE =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XE)))LISTENER_XE =(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))XEPDB1 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XEPDB1)))EXTPROC_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)))(CONNECT_DATA =(SID = PLSExtProc)(PRESENTATION = RO)))
"tnsnames.ora" 34L, 678B

13.因为SQL developer一直卡死,最后还是研究了下dbeaver,最后找到了创建的表和数据
在这里插入图片描述

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

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

相关文章

docker报错问题解决:Error Invalid or corrupt jarfile app.jar

文章目录 1.问题描述2.问题分析3.问题解决 1.问题描述 此时处在 /home/ubuntu/app 目录下,并且在该目录下有一个 jenkins-0.0.1-SNAPSHOT.jar。 我在 /home/ubuntu/app 目录下执行了 docker 容器运行命令: # 映射 8859 端口 # 容器名为 jenkins-demo #…

VB.NET之SqlCommand详解

目录 一.前言 二.SqlCommand的背景方法 1.构造函数 2.属性 3.方法 三.SqlCommand的使用实例 1.创建SqlCommand对象 2.执行SQL查询语句 3.执行存储过程 四.总结 一.前言 VB.NET的SqlCommand是ADO.NET的一部分,主要用于执行SQL语句并返回受影响的行数、查询…

16、监测数据采集物联网应用开发步骤(12.1)

阶段性源码将于本章节末尾给出下载 监测数据采集物联网应用开发步骤(11) 本章节进行前端web UI开发web数据接口服务开发 web数据接口服务利用SOCKET TCP服务方式解析http协议内容模式 在com.zxy.common.Com_Para.py中添加如下内容 #修改web数据接口服务端口 port 9000 #是…

力扣labuladong——一刷day03

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣LCR 140. 训练计划 II二、力扣LCR 142. 训练计划 IV三、力扣LCR 171. 训练计划 V四、力扣LCR 021. 删除链表的倒数第 N 个结点五、力扣LCR 022. 环形链…

使用Dockerfile生成docker镜像和容器的方法记录

一、相关介绍 Docker 是一个开源的容器化平台,其中的主要概念是容器和镜像。 容器是 Docker 的运行实例。 它是一个独立并可执行的软件包,包含了应用程序及其依赖的所有组件(如代码、运行时环境、系统工具、库文件等)。容器可以在…

我的电子萝卜刀火了吗?

引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 笔者在上一篇文章《萝卜刀真的太危险了,于是我用Cocos做了一个》中说到因女儿从学校回来之后想要我给她买一把萝卜刀被我拒绝,但是又想要让她体验一下,因此用Cocos…

REDIS命令

常见文件名 Redis-cli使用命令 1、启动Redis2、连接Redis3、停止Redis4、发送命令 1、redis-cli带参数运行,如:2、redis-cli不带参数运行,如:5、测试连通性key操作命令 获取所有键查询键是否存在删除键查询键类型移动键查询key的生…

Howler.js HTML5声音引擎

介绍 Howler.js是一个不错的HTML5声音引擎。功能强大,性能不错,用起来也很方便。 1. 官网 https://howlerjs.com/ GitHub https://github.com/goldfire/howler.js 2. 兼容性 Howler默认使用Web Audio,但在IE上可以自动转为HTML 5 Audio。这…

零基础学python:错误与异常

嗨喽,大家好呀~这里是爱看美女的茜茜呐 语法错误 异常:大多数的异常都不会被程序处理,都以错误信息的形式展现在这里 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ pyth…

Ubuntu源码编译samba

概述 本人最近研究samba的源码,但是在源码编译的时候,本以为直接config,make,make install。没想到编译过程中碰到很多麻烦,主要是各种依赖问题。 基于此,本文把samba编译的详细过程记录下来,以供再次研究借鉴。 软件…

力扣刷题 day50:10-20

1.存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 方法一:集合去重 #方法一:集合去重 def containsDuplicate(nums):return len(n…

AWS SAA-C03考试知识点整理

S3: 不用于数据库功能 分类: S3 Standard :以便频繁访问 S3 Standard-IA 或 S3 One Zone-IA : 不经常访问的数据 Glacier: 最低的成本归档数据 S3 Intelligent-Tiering智能分层 :存储具有不断变化或未知访问…

KubeSphere一键安装部署K8S集群(单master节点)-亲测过

1. 基础环境优化 hostnamectl set-hostname master1 && bash hostnamectl set-hostname node1 && bash hostnamectl set-hostname node2 && bashcat >> /etc/hosts << EOF 192.168.0.34 master1 192.168.0.45 node1 192.168.0.209…

从零开始,学好 Python 从大一新生自我介绍开始

从零开始&#xff0c;学好 Python 从大一新生自我介绍开始 大家好&#xff0c;我叫xxx,今年18岁&#xff0c;刚刚入学不久。我决定从零开始系统学习Python编程语言。 Python是一种解释型、交互式和脚本编程语言。它由荷兰人Guido van Rossum在1991年左右创立&#xff0c;语法简…

Python学习第2天-安装pycharm

文章目录 前言一、下载二、安装1.选择安装目录2.安装配置 总结 前言 好用的工具可以极大地提高生产力&#xff0c;开发Python推荐使用jetbrains全家桶的pycharm。 一、下载 通过官网下载安装包。 二、安装 1.选择安装目录 2.安装配置 一路Next&#xff0c;安装完成 总结 …

模拟最终成绩计算过程

首先输入大于2的整数作为评委人数,然后依次输入每个评委的打分,要求每个分数介于0~100.输入完所有评委打分之后,去掉一个最高分,去掉一个最低分,剩余分数的平均分即为该选手的最终得分 (1) while True:try:n int(input(请输入评委人数:))assert n > 2# 跳出循环breakexce…

快速排序原理JAVA和Scala实现-函数式编程的简洁演示

快速排序原理JAVA和Scala实现-函数式编程的简洁演示 目录 快速排序原理JAVA和Scala实现-函数式编程的简洁演示 C语言快速排序实现 Java 快速排序实现 Scala 快速排序实现 本文章向大家介绍快速排序原理JAVA和Scala实现-函数式编程的简洁演示&#xff0c;主要内容包括C语言…

在Ubuntu上安装和挂载NFS

在Ubuntu上安装和挂载NFS可以按照以下步骤进行&#xff1a; 安装NFS客户端工具&#xff1a;在Ubuntu上&#xff0c;可以使用以下命令安装NFS客户端工具&#xff1a; shell复制代码 sudo apt-get install nfs-common 创建挂载点&#xff1a;在本地Ubuntu计算机上&#xff0c;…

机器学习(23)---Boosting tree(课堂笔记)

文章目录 一、知识记录二、题目2.1 题目12.2 题目22.3 题目三2.4 答案书写 一、知识记录 二、题目 2.1 题目1 2.2 题目2 2.3 题目三 T 4 T_4 T4​中 0.15 0.15 0.15 改为 − 0.16 -0.16 −0.16&#xff0c; − 0.22 -0.22 −0.22 改为 0.11 0.11 0.11。 2.4 答案书写

python 之计算矩阵乘法

文章目录 总的介绍例子 总的介绍 np.matmul 是NumPy库中的矩阵乘法函数&#xff0c;用于执行矩阵乘法操作。矩阵乘法是线性代数中的一种常见操作&#xff0c;用于将两个矩阵相乘以生成新的矩阵。在神经网络、机器学习和科学计算中&#xff0c;矩阵乘法经常用于变换和组合数据。…