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

MySQL基础阶段学习-SQL语句篇

前言在后端开发与数据存储领域MySQL 无疑是使用最广泛、生态最成熟的关系型数据库之一。作为一款开源免费、轻量高效的数据库管理系统它凭借稳定可靠、易于上手、适配多种编程语言等优势从小型个人项目到大型企业级应用都随处可见更是后端开发者必须掌握的核心技能。本篇将作为 MySQL 基础入门篇章从基础概念、核心特性讲起一步步带你走进 MySQL 的世界夯实数据库操作的底层基础让后续的表设计、SQL 编写与性能优化都能有据可依。1.SQL操作语句分为以下四种:DDL,DML,DQL,DCL.1.1DDLData Definition Language数据定义语言用来定义数据库对象(数据库表字段) 。1.1.1数据库操作查询所有数据库show databases查询当前数据库select databases括号代表函数之后会讲解到。创建一个新的数据库create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序规则 ] ;删除一个数据库drop database [ if exists ] 数据库名 ;切换数据库use 数据库名字如果想切换到别的数据库进行对应的操作的话就写入对应的名字例如像切换到itcast数据库操作需要执行如下SQL语句use itcast1.1.2表操作1.1.2.1查询创建展示当前数据库中所有的表show tables;如use sys; show tables查看指定表结构desc 表名;通过这条指令我们可以查看到指定表的字段字段的类型、是否可以为NULL是否存在默认值等信息。查看指定表的建表语句show create table 表名 ;通过这条指令主要是用来查看建表语句的而有部分参数我们在创建表的时候并未指定也会查询到因为这部分是数据库的默认值如存储引擎、字符集等。创建表结构CREATE TABLE 表名( 字段1 字段1类型 [ COMMENT 字段1注释 ], 字段2 字段2类型 [COMMENT 字段2注释 ], 字段3 字段3类型 [COMMENT 字段3注释 ], ...... 字段n 字段n类型 [COMMENT 字段n注释 ] ) [ COMMENT 表注释 ] ;注意: […] 内为可选参数最后一个字段后面没有逗号。比如我们创建一张表 tb_user 对应的结构如下那么建表语句为create table tb_user( id int comment 编号, name varchar(50) comment 姓名, age int comment 年龄, gender varchar(1) comment 性别 ) comment 用户表;1.1.2.2数据类型在上述的建表语句中我们在指定字段的数据类型时用到了int varchar那么在MySQL中除了以上的数据类型还有哪些常见的数据类型呢 接下来,我们就来详细介绍一下MySQL的数据类型。MySQL中的数据类型有很多主要分为三类数值类型、字符串类型、日期时间类型。(1)数值类型(2)字符串类型char 与 varchar 都可以描述字符串char是定长字符串指定长度多长就占用多少个字符和字段值的长度无关 。而varchar是变长字符串指定的长度为最大占用长度 。相对来说char的性能会更高些。1). 用户名 username ------ 长度不定, 最长不会超过50 username varchar(50) 2). 性别 gender --------- 存储值, 不是男,就是女 gender char(1) 3). 手机号 phone -------- 固定长度为11 phone char(11)(3)日期时间类型1.1.2.3修改添加字段ALTER TABLE 表名 ADD 字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ];修改字段的数据类型ALTER TABLE 表名 MODIFY 字段名 新数据类型 (长度);修改字段的名字和新的数据类型ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型 (长度) [ COMMENT 注释 ] [ 约束 ]删除某一个字段ALTER TABLE 表名 DROP 字段名字1.1.2.4删除删除表ALTER TABLE 表名 DROP 字段名;可选项 IF EXISTS 代表只有表名存在时才会删除该表表名不存在则不执行删除操作(如果不加该参数项删除一张不存在的表执行将会报错)。例:如果tb_user表存在则删除tb_user表DROP TABLE IF EXISTS tb_user删除指定表并重新创建表TRUNCATETABLE表名;注意: 在删除表的时候表中的全部数据也都会被删除。1.2 DMLDML英文全称是Data Manipulation Language(数据操作语言)用来对数据库中表的数据记录进行增、删、改操作。添加数据INSERT修改数据UPDATE删除数据DELETE1.2.1 添加数据给指定字段添加数据INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);给全部字段添加数据INSERT INTO VALUES (值1, 值2, ...);批量添加数据INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ; INSERT INTO 表名 VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;1.2.2修改数据修改数据的具体语法为UPDATE 表名 SET 字段名1 值1 , 字段名2 值2 , .... [ WHERE 条件 ] ; 1例A.修改id为1的数据将名字改为itheima update employee set name itheima where id 1; B.修改id为1的数据将名字改为小昭性别改为女 update employee set name 小昭 , gender 女 where id 1; C.修改所有员工的入职日期为2008-01-01 update employee set entrydate 2008-01-01;1.2.3删除数据DELETE FROM 表名 [ WHERE 条件 ] ;1.3DQLDQL英文全称是Data Query Language(数据查询语言)数据查询语言用来查询数据库中表的记录。查询关键字: SELECT在一个正常的业务系统中查询操作的频次是要远高于增删改的当我们去访问企业官网、电商网站在这些网站中我们所看到的数据实际都是需要从数据库中查询并展示的。而且在查询的过程中可能还会涉及到条件、排序、分页等操作。在进行数据库的查询操作之前先来按照如下指令创建一个表drop table if exists employee; create table emp( id int comment 编号, workno varchar(10) comment 工号, name varchar(10) comment 姓名, gender char(1) comment 性别, age tinyint unsigned comment 年龄, idcard char(18) comment 身份证号, workaddress varchar(50) comment 工作地址, entrydate date comment 入职时间 )comment 员工表; INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (1, 00001, 柳岩666, 女, 20, 123456789012345678, 北京, 2000-01- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (2, 00002, 张无忌, 男, 18, 123456789012345670, 北京, 2005-09- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (3, 00003, 韦一笑, 男, 38, 123456789712345670, 上海, 2005-08- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (4, 00004, 赵敏, 女, 18, 123456757123845670, 北京, 2009-12-01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (5, 00005, 小昭, 女, 16, 123456769012345678, 上海, 2007-07-01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (6, 00006, 杨逍, 男, 28, 12345678931234567X, 北京, 2006-01-01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (7, 00007, 范瑶, 男, 40, 123456789212345670, 北京, 2005-05-01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (8, 00008, 黛绮丝, 女, 38, 123456157123645670, 天津, 2015-05- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (9, 00009, 范凉凉, 女, 45, 123156789012345678, 北京, 2010-04- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (10, 00010, 陈友谅, 男, 53, 123456789012345670, 上海, 2011-01- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (11, 00011, 张士诚, 男, 55, 123567897123465670, 江苏, 2015-05- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (12, 00012, 常遇春, 男, 32, 123446757152345670, 北京, 2004-02- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (13, 00013, 张三丰, 男, 88, 123656789012345678, 江苏, 2020-11- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (14, 00014, 灭绝, 女, 65, 123456719012345670, 西安, 2019-05- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (15, 00015, 胡青牛, 男, 70, 12345674971234567X, 西安, 2018-04- 01); INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate) VALUES (16, 00016, 周芷若, 女, 18, null, 北京, 2012-06-01);1.3.1 基础查询查询多个字段SELECT 字段1, 字段2, 字段3 ... FROM 表名 ; SELECT * FROM 表名 ; (*表示所有的字段)字段设置别名SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名; SELECT 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... FROM 表名;去除重复记录SELECT DISTINCT 字段列表 FROM 表名;1.3.2 条件查询基础语法SELECT 字段列表 FROM 表名 WHERE 条件列表 ;1.3.3聚合函数概念:将一列数据作为一个整体进行纵向计算 。常见的聚合函数语法select 聚合函数(字段列表) FROM 表名 null函数不参与任何运算例子A.统计该企业员工数量 select count(*) from emp; -- 统计的是总记录数 select count(idcard) from emp; -- 统计的是idcard字段不为null的记录数对于count聚合函数统计符合条件的总记录数还可以通过 count(数字/字符串)的形式进行统计查询比如select count(1) from emp;B.统计所有员工的平均年龄 select avg(age) from emp;C.统计所有员工的最大年龄 select max(age) from emp;D.统计所有员工的最小年龄 select min(age) from emp;E.统计西安地区的所有员工年龄之和 select sum(age) from emp where workaddress西安;1.3.4 分组查询语法SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组 后过滤条件 ];where与having区别执行时机不同where是分组之前进行过滤不满足where条件不参与分组而having是分组之后对结果进行过滤。 判断条件不同where不能对聚合函数进行判断而having可以。注意事项: • 分组之后查询的字段一般为聚合函数和分组字段查询其他字段无任何意义。• 执行顺序: where 聚合函数 having 。• 支持多字段分组, 具体语法为 : group by columnA,columnB例子A. 根据性别分组 , 统计男性员工 和 女性员工的数量 SELECT gender , count(*) from emp group by gender;B.根据性别分组 , 统计男性员工 和 女性员工的平均年龄 select gender, avg(age) from emp group by gender ;C.查询年龄小于45的员工 , 并根据工作地址分组 , 获取员工数量大于等于3的工作地址 select workaddress, count(*) address_count from emp where age 45 group by workaddress having address_count 3;D.统计各个工作地址上班的男性及女性员工的数量 select workaddress gender,count(*) 数量 from emp group by gender,workaddress;1.3.5排序查询排序在日常开发中是非常常见的一个操作有升序排序也有降序排序。语法SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 , 字段2 排序方式2 ;排序方式ASC : 升序(默认值)DESC: 降序如果不写出排序方式那么默认就是升序A.按照年龄对公司的员工进行排序 select * from emp order by age asc; select * from emp order by age;B.按照年龄对公司的员工进行逆向排序 select * from emp order by age desc;C. 根据年龄对公司的员工进行升序排序 , 年龄相同 , 再按照入职时间进行降序排序 select * from emp order by age asc , entrydate desc;1.3.6 分页查询分页操作在业务系统开发时也是非常常见的一个功能我们在网站中看到的各种各样的分页条后台都需要借助于数据库的分页操作。语法SELECT 字段列表 FROM 表名 LIMIT 起始索引, 查询记录数 ;• 起始索引从0开始起始索引 查询页码 - 1* 每页显示记录数。• 分页查询是数据库的方言不同的数据库有不同的实现MySQL中是LIMIT。• 如果查询的是第一页数据起始索引可以省略直接简写为 limit 10案例A.查询第一页的数据每页展示十条记录 select * from emp limit 0,10; select * from emp limit 10;B. 查询第2页员工数据, 每页展示10条记录 -------- (页码-1)*页展示记录数 select * from emp limit 10,10;1.3.7执行顺序在讲解DQL语句的具体语法之前我们已经讲解了DQL语句的完整语法及编写顺序接下来我们要来说明的是DQL语句在执行时的执行顺序也就是先执行那一部分后执行哪一部分。1.4 DCLDCL英文全称是Data Control Language(数据控制语言)用来管理数据库用户、控制数据库的访问权限。1.4.1 管理用户查询用户select * from mysql.user;创建用户CREATE USER 用户名主机名 IDENTIFIED BY 密码;修改用户密码ALTER USER 用户名主机名 IDENTIFIED WITH mysql_native_password BY 新密码删除用户DROP USER 用户名主机名 ;1.4.3 权限控制Mysql提供了以下权限上述只是简单罗列了常见的几种权限描述其他权限描述及含义可以直接参考官方文档。查询权限SHOW GRANTS FOR 用户名主机名 ;授予权限GRANT 权限列表 ON 数据库名.表名 TO 用户名主机名;撤销权限REVOKE 权限列表 ON 数据库名.表名 FROM 用户名主机名;

相关文章:

MySQL基础阶段学习-SQL语句篇

前言 在后端开发与数据存储领域,MySQL 无疑是使用最广泛、生态最成熟的关系型数据库之一。作为一款开源免费、轻量高效的数据库管理系统,它凭借稳定可靠、易于上手、适配多种编程语言等优势,从小型个人项目到大型企业级应用都随处可见&#x…...

FUTURE POLICE在会议场景的落地:实时语音转写与多说话人区分

FUTURE POLICE在会议场景的落地:实时语音转写与多说话人区分 每次开完会,你是不是都有这样的感觉:讨论得热火朝天,但会后整理纪要却成了大难题。谁说了什么?关键结论是什么?光靠回忆和手写记录&#xff0c…...

Pixel Couplet Gen 从零部署教程:Ubuntu系统环境与依赖项全配置

Pixel Couplet Gen 从零部署教程:Ubuntu系统环境与依赖项全配置 1. 准备工作与环境搭建 在开始部署Pixel Couplet Gen之前,我们需要先准备好基础环境。这个部分将带你一步步完成Ubuntu系统的初始设置,为后续的模型部署打好基础。 首先&…...

ESP8266墨水屏项目避坑指南:从接线到局刷,搞定4.2寸e-paper的汉字显示

ESP8266墨水屏项目避坑指南:从接线到局刷,搞定4.2寸e-paper的汉字显示 第一次点亮4.2寸墨水屏时,我盯着屏幕上扭曲的汉字和闪烁的残影,意识到这绝不是简单的"接线-烧录-运行"三步走项目。ESP8266驱动墨水屏看似门槛低&a…...

40_终极落地Checklist:你的公司Agent是否真的会干活了

核心价值:可打印、可传播的检查表 更新频率:季度/半年重磅很多团队的 Agent 能跑起来、能演示、能交付,但真正到生产环境里能不能稳定地"干活",是两回事。这篇文章提供一个结构化的评估框架,帮你从五个维度判…...

学C语言别乱选教程!这7本实测好用

一、学C语言的人,90%都选错了教程!难道你未曾怀揣着满怀的热忱渴望去学习C语言么,然而却对着荧屏中那些晦涩难懂的教程而毫无头绪,不知道该如何着手么?是不是在全网各处去寻找相关资料,逐一浏览过后&#x…...

Qwen3-Embedding-4B效果实测:32K长文本理解,中文检索表现惊艳

Qwen3-Embedding-4B效果实测:32K长文本理解,中文检索表现惊艳 1. 引言:为什么关注文本嵌入模型 在信息爆炸的时代,如何让计算机真正"理解"人类语言成为关键挑战。文本嵌入模型(Text Embedding Model&#…...

SK海力士新厂M15X即将拓展最先进动态随机存取存储器(DRAM)的量产规模。

近日,SK海力士将在坐落于韩国清州的新厂M15X正式开启这一进程,扩大最先进DRAM的量产规模。M15X乃是SK海力士依托现有M15工厂扩建而成的新型DRAM生产基地,其投资额高达约20万亿韩元。在该基地内,大规模部署了用于大规模生产尖端DRA…...

2026含金量高的财会行业证书排行。

2026年,财会行业正经历着深刻的变化。智能财务系统普及、电子发票全面推行、税务管理持续升级,传统的记账、报税工作正逐步被自动化工具辅助或替代。企业对财务人员的要求,早已不限于“算对账”,而是希望他们能从数据中发现问题、…...

c语言第一个编译器是用什么语言写的?自举原理

你可曾思考过如下问题,世界上首个C语言编译器,它究竟是运用何种语言编写而成的?要解开这个谜团,我们得回到计算机的起点CPU真正能够读懂的,仅仅是那由0和1所构成的机器语言,这是所有故事得以矗立的基石。那…...

PubNub C-Core嵌入式实时通信库深度解析

1. Pubnub C-Core 库概述Pubnub C-Core 是 PubNub 实时消息平台面向嵌入式与资源受限环境提供的轻量级 C 语言客户端核心库。其设计目标明确:在无标准 libc 环境(如裸机、FreeRTOS、Zephyr、ThreadX)或极简 libc 环境(如 newlib-n…...

# 发散创新:基于Python与Micro:bit的可穿戴心率监测系统实战在智能穿戴设备日益普及的今天,**实时健康数据

发散创新:基于Python与Micro:bit的可穿戴心率监测系统实战 在智能穿戴设备日益普及的今天,实时健康数据采集已成为开发者关注的核心方向之一。本文将带你从零开始构建一个轻量级、高扩展性的可穿戴心率监测系统,使用 Micro:bit(基…...

Phi-4-mini-reasoning开发者指南:从llm.log日志验证到实时问答全流程

Phi-4-mini-reasoning开发者指南:从llm.log日志验证到实时问答全流程 1. 模型简介 Phi-4-mini-reasoning是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员,它经过专门微调以提升数学…...

基于Streamlit构建的交互式教学展示平台

一、项目背景与意义1.1 背景在数据挖掘课程学习与教学过程中,知识点分散、代码与结果分离、环境配置复杂等问题较为突出。为解决上述痛点,开发一套轻量化、可交互、一键运行的案例展示平台,方便学习与演示。1.2 项目意义整合 Python、NumPy、…...

跨境电商降本增效利器:HY-MT1.5-1.8B翻译模型部署与优化

跨境电商降本增效利器:HY-MT1.5-1.8B翻译模型部署与优化 1. 引言:跨境电商的翻译痛点与解决方案 在跨境电商运营中,语言障碍是影响业务扩展的关键因素。从商品详情页的多语言适配到客服沟通的实时翻译,传统解决方案往往面临三大…...

忍者像素绘卷:天界画坊Java面试题精讲:AI项目中的多线程与资源管理

忍者像素绘卷:天界画坊Java面试题精讲:AI项目中的多线程与资源管理 1. 引言:当像素艺术遇上AI并发 在开发"忍者像素绘卷:天界画坊"这个AI驱动的像素艺术生成平台时,我们遇到了一个有趣的挑战:如…...

Wan2.2-I2V-A14B新手必看:WebUI界面各模块功能图解与操作动线

Wan2.2-I2V-A14B新手必看:WebUI界面各模块功能图解与操作动线 1. 开篇导览:认识你的视频创作助手 当你第一次打开Wan2.2-I2V-A14B的WebUI界面时,可能会被各种选项和参数搞得有点懵。别担心,这个界面其实设计得非常直观&#xff…...

向量空间表示:如何把实体和关系表示为向量

在知识图谱中,知识并不一定只能用符号和图结构表示。除了实体、关系、属性、三元组这些显式表示方式,还可以把实体和关系映射到向量空间中,用一组数字来表示它们的特征。这种方法通常称为向量空间表示(Vector Space Representatio…...

Mirage Flow 生成精美技术图表描述:辅助科研论文与项目汇报

Mirage Flow:让技术图表“开口说话”,科研与汇报的效率革命 如果你经常需要写论文、做项目汇报,或者整理技术文档,我猜你一定遇到过这样的烦恼:面对一张复杂的系统架构图,或者密密麻麻的数据曲线&#xff…...

StarUML6.3.0安装与汉化全攻略(2024最新版)

1. StarUML简介与准备工作 StarUML作为一款轻量级的UML建模工具,在开发者社区中一直保持着不错的口碑。我最早接触它是在2018年做毕业设计的时候,当时就被它简洁的界面和流畅的操作体验所吸引。经过这些年的迭代,6.3.0版本在性能和功能上都有…...

西门子200SMART PID温控实战:从配置到避坑(附加热棒控制案例)

西门子200SMART PID温控实战:从配置到避坑(附加热棒控制案例) 在工业自动化领域,温度控制一直是核心应用场景之一。无论是塑料挤出机的加热筒、食品烘干设备,还是实验室恒温箱,精准的温度控制直接影响产品质…...

51单片机电子琴:从播放到弹奏的双模实现与硬件设计

1. 51单片机电子琴的双模设计思路 第一次接触51单片机电子琴项目时,最让我兴奋的就是这个"双模切换"的设计。简单来说,就是让同一个硬件既能像MP3一样播放预存的音乐,又能像真实电子琴那样实时弹奏。这种设计不仅实用,而…...

从玩具车到真车:聊聊那颗让3.3V单片机安全驱动5V舵机的电平转换芯片

从玩具车到真车:聊聊那颗让3.3V单片机安全驱动5V舵机的电平转换芯片 记得去年参加机器人比赛时,我们团队用STM32F103做的小车在决赛前突然"罢工"——主控芯片冒烟了。事后排查发现,是直接连接5V舵机导致3.3V的GPIO口过压损坏。这个…...

nlp_structbert_sentence-similarity_chinese-large保姆级教程:错误日志排查与常见报错解决方案

nlp_structbert_sentence-similarity_chinese-large保姆级教程:错误日志排查与常见报错解决方案 1. 工具简介:你的中文句子相似度分析助手 nlp_structbert_sentence-similarity_chinese-large 是一个专门处理中文句子相似度的强大工具。它基于阿里达摩…...

群晖NAS网络性能瓶颈突破:RTL8152系列USB以太网驱动深度解析与实践

群晖NAS网络性能瓶颈突破:RTL8152系列USB以太网驱动深度解析与实践 【免费下载链接】r8152 Synology DSM driver for Realtek RTL8152/RTL8153/RTL8156 based adapters 项目地址: https://gitcode.com/gh_mirrors/r8/r8152 在数据密集型应用日益普及的今天&a…...

SPIRAN ART SUMMONER应用场景:虚拟偶像运营团队的内容视觉统一生成方案

SPIRAN ART SUMMONER应用场景:虚拟偶像运营团队的内容视觉统一生成方案 1. 引言:虚拟偶像的视觉挑战与机遇 想象一下,你是一个虚拟偶像运营团队的负责人。每天,你需要为偶像的社交媒体账号更新头像、发布宣传海报、制作直播背景…...

Qwen3-VL-2B-Instruct安全性设置:生产环境部署注意事项

Qwen3-VL-2B-Instruct安全性设置:生产环境部署注意事项 1. 引言:当AI有了“眼睛”,安全就是第一道防线 想象一下,你部署了一个能“看懂”图片的AI助手。它能识别商品、阅读文档、分析图表,甚至能根据一张照片描述场景…...

GTE-Chinese-Large部署案例:边缘设备(Jetson Orin)轻量化适配与INT8量化推理实测

GTE-Chinese-Large部署案例:边缘设备(Jetson Orin)轻量化适配与INT8量化推理实测 1. 引言:当大模型遇见小设备 想象一下,你有一个强大的中文文本理解模型,它能将任何一段话变成一个精准的“数字指纹”&am…...

MTools真实体验:集成化桌面工具如何提升你的工作效率

MTools真实体验:集成化桌面工具如何提升你的工作效率 1. 为什么你需要一个集成化桌面工具 在日常工作中,我们经常需要在不同软件之间来回切换:用Photoshop处理图片、用Premiere剪辑视频、用各种小工具完成特定任务。这种碎片化的工具使用方…...

基于OFA模型的智能客服系统开发实战:Python实现视觉问答

基于OFA模型的智能客服系统开发实战:Python实现视觉问答 1. 引言 想象一下这样的场景:一位用户在电商平台上传了一张商品图片,询问"这个产品的材质是什么?"或者"这个尺寸适合多大年龄的孩子?"。…...