【MYSQL】 mysql库和表的操作--详解

news2026/5/21 7:06:52
一.库的操作1.1 创建数据库创建数据库create database db_name; -- 本质就是在 /var/lib/mysql 创建一个目录CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name说明大写的表示关键字[] 是可选项CHARACTER SET: 指定数据库采用的字符COLLATE: 指定数据库字符集的校验规则创建数据库案例创建名为 db1 的数据库create database db1;当我们创建数据库没有指定字符集和校验规则时系统使用默认字符集utf8校验规则是utf8_general_ci创建一个使用utf8字符集的db2数据库create database db2 charsetutf8;创建一个使用utf字符集并带校对规则的db3数据库。create database db3 charsetutf8 collate utf8_general_ci;1-2删除数据库DROP DATABASE [IF EXISTS] db_ name;执行删除之后的结果:数据库内部看不到对应的数据库对应的数据库文件夹被删除级联删除里面的数据表全部被删注意不要随意删除数据库1-3认识mysql的编码创建数据库的时候有两个编码集数据库编码集 —— 数据库未来存储数据数据库校验集 —— 支持数据库进行字段比较使用的编码本质也是一种读取数据库中数据所采用的编码格式数据库无论对数据做任何操作都必须保证操作和编码是一致的1-3-1字符集和校验规则查看系统默认字符集以及校验规则show variables like character_set_database; show variables like collation_database;collation_connection当前连接使用的校验规则collation_database当前数据库的默认校验规则collation_server服务器级别的默认校验规则utf8mb4_0900_ai_ci的含义utf8mb4编码集支持完整Unicode包括emoji0900基于Unicode 9.0标准ai口音不敏感accent insensitiveci大小写不敏感case insensitiveshow variables like collation_database;这条指令用于查看当前数据库的校验规则。show variables like collation_%;这条指令用于查看所有以collation开头的系统变量。这里的%是一个通配符代表任意字符所以它会显示出包括连接、数据库、服务器等各级别的校验规则。1-3-2查看数据库支持的字符集show charset;字符集主要是控制用什么语言。比如utf8就可以使用中文。1-3-3查看数据库支持的字符集校验规则show collation;1-4创建数据库时的编码设置1. 默认创建不指定编码create database d1;当创建数据库没有指定字符集和校验规则时系统使用默认字符集utf8校验规则是utf8_general_ci在 Linux 底层MySQL 会在/var/lib/mysql/目录下创建对应的数据库文件夹里面会生成一个db.opt文件记录编码信息centos7[rootVM-8-5-centos mysql]# cat d1/db.opt default-character-setutf8 default-collationutf8_general_ci2. 指定字符集创建数据库create database d2 charsetutf8; create database d3 charsetutf8;两种写法效果相同查看底层文件[rootVM-0-3-centos mysql]# cat d2/db.opt default-character-setutf8 default-collationutf8_general_ci3. 指定字符集和校验规则创建数据库create database d4 charsetutf8 collate utf8_general_ci;4. 使用 GBK 字符集创建数据库create database d5 charsetgbk collate gbk_chinese_ci;查看 GBK 编码的数据库配置[rootVM-0-3-centos mysql]# cat d5/db.opt default-character-setgbk default-collationgbk_chinese_ciubbuntu22.04ubuntu22.04不能进行cat操作所以我选用的是mysql操作这个可以进行MySQL数据库 db.opt 文件缺失问题排查CentOS7 vs Ubuntu 22.04问题背景我在学习MySQL数据库时执行 CREATE DATABASE d1; 创建了数据库想通过查看 /var/lib/mysql/d1/db.opt 文件来确认字符集和校验规则但在Ubuntu 22.04环境中遇到了问题MySQL中 SHOW DATABASES 能看到 d1 且数据库内有数据、可正常使用Bash中 /var/lib/mysql/ 下存在 d1 目录但目录内没有 db.opt 文件修改目录权限也无法解决而CentOS 7环境中可以正常看到该文件环境差异说明环境 MySQL版本 系统特性 db.opt 文件表现CentOS 7中的MySQL 5.7 传统发行版MySQL数据目录权限严格 创建数据库后自动生成 db.optUbuntu 22.04 MySQL 5.7或8.0 Debian系发行版MySQL默认配置有差异 可能出现 db.opt 未生成的情况补充MySQL 8.0版本彻底取消了 db.opt 文件字符集配置统一存储在系统表 mysql.schemata 中这是Ubuntu 22.04默认安装MySQL 8.0时的常见情况。原因分析核心原因db.opt 是MySQL 5.7及之前版本中创建数据库时自动生成的物理文件用于记录该数据库的默认字符集和校验规则。CentOS 7中MySQL 5.7的默认安装流程完整创建数据库时会正常生成该文件Ubuntu 22.04中可能因为安装配置差异、权限初始化问题、创建时异常中断导致 db.opt 未生成即使 db.opt 缺失 SHOW DATABASES 从系统表读取数据所以仍能显示数据库存在d1 不是系统自带数据库是手动创建的不会默认生成 db.opt修改权限无法生成 db.opt 因为该文件仅在创建数据库时自动生成后期权限调整不会触发重新生成解决方案方案1用SQL命令直接查看字符集无需依赖 db.opt 这是最稳妥、跨版本通用的方法无论是否有 db.opt 都能生效-查看d1数据库的字符集和校验规则SHOW CREATE DATABASE d1;方案2手动创建 db.opt 文件MySQL 5.7适用如果需要恢复 db.opt 文件可以手动创建并配置权限# 进入d1数据库目录 cd /var/lib/mysql/d1 # 写入字符集配置 echo default-character-setutf8 db.opt echo default-collationutf8_general_ci db.opt # 修正文件权限必须为mysql:mysql否则MySQL无法读取 chown mysql:mysql db.opt chmod 660 db.opt # 重启MySQL服务生效 systemctl restart mysql方案3重建数据库适合有数据备份的情况# 1. 备份d1数据库数据 mysqldump -u root -p d1 d1_backup.sql # 2. 登录MySQL删除d1 mysql -u root -p DROP DATABASE d1; # 3. 重新创建d1指定字符集确保生成db.opt CREATE DATABASE d1 CHARACTER SET utf8 COLLATE utf8_general_ci; # 4. 恢复数据 mysql -u root -p d1 d1_backup.sql总结:1. 版本差异MySQL 8.0不再生成 db.opt 字符集查看请用 SHOW CREATE DATABASE2. 环境差异CentOS和Ubuntu的MySQL安装配置不同可能导致 db.opt 生成异常3. 最佳实践优先使用SQL命令查看字符集避免依赖物理文件 db.opt 缺失不影响数据库正常使用4. 思路先确认数据库逻辑存在→再查物理目录→最后针对性解决1-5校验规则对数据库的影响不区分大小写创建一个数据库校验规则使用utf8_ general_ ci不区分大小写create database test1 collate utf8_general_ci; use test1; create table person(name varchar(20)); insert into person values(a); insert into person values(A); insert into person values(b); insert into person values(B);不区分大小写的查询以及结果mysql use test1; mysql select * from person where namea;插入数据并查询数据结果排序不区分大小写排序以及结果mysql use test1; mysql select * from person order by name;select是从表里查询数据通配符*代表将表里的所有列数据都显示出来。插入的本质是存储数据采用default-character-setutf8也就是插入数据时所用的编码格式。查询的本质是按照校验集的要求来查找和比较数据。具体来说插入数据时使用编码集将数据编码后存入磁盘查询数据时使用校验集的规则来比较字段如where条件、order by排序、group by分组等两者必须匹配如果插入时用的编码集和查询时用的校验集不兼容就会导致比较结果出错甚至查不到本该存在的数据。区分大小写创建一个数据库校验规则使用utf8_ bin区分大小写create database test2 collate utf8_bin; use test2 create table person(name varchar(20)); insert into person values(a); insert into person values(A); insert into person values(b); insert into person values(B);进行查询区分大小写的查询以及结果mysql use test2; mysql select * from person where namea;结果排序区分大小写排序以及结果mysql use test2; mysql select * from person order by name;注意这里一般默认是升序排序。1-6数据库的删改查数据库删除DROP DATABASE [IF EXISTS] db_ name;执行删除之后的结果:数据库内部看不到对应的数据库对应的数据库文件夹被删除级联删除里面的数据表全部被删注意不要随意删除数据库显示创建语句show create database 数据库名;说明MySQL 建议我们关键字使用大写但是不是必须的。数据库名字的反引号,是为了防止使用的数据库名刚好是关键字有点版本比较低有这个情况/*!40100 default.... */ 这个不是注释表示当前mysql版本大于4.01版本就执行这句话修改数据库ALTER DATABASE db_name [alter_spacification [,alter_spacification]...] alter_spacification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name将 test2 数据库字符集改成 gbk这个是在centos5.7下运行的可以用cat查到mysql alter database test2 charsetgbk collate gbk_chinese_ci; Query OK, 1 row affected (0.00 sec)[rootVM-0-3-centos mysql]# cat test2/db.opt default-character-setutf8 default-collationutf8_bin [rootVM-0-3-centos mysql]# cat test2/db.opt default-character-setgbk default-collationgbk_chinese_ciubuntu22.04直接在mysql上查-- 查看当前数据库的字符集和校验规则 show variables like character_set_database; show variables like collation_database; -- 或者查看数据库的创建语句会显示编码信息 show create database test2;说明对数据库的修改主要指的是修改数据库的字符集校验规则查看数据库show databases;查询当前所在数据库select database();1-7数据库备份和恢复1.备份语法# mysqldump -P3306 -u root -p 密码 -B 数据库名 数据库备份存储的文件路径;# -P 端口号大写P默认3306可省略 # -p 密码小写p直接跟密码中间没有空格 mysqldump -P3306 -u root -p123456 -B test1 test1.sql 为了避免密码暴露在命令行中会被 history 记录更安全的做法是 # 不写密码执行后会提示交互式输入 mysqldump -P3306 -u root -p -B test1 D:/test1.sql # 然后系统会提示Enter password: 你输入密码不显示我们将test1进行备份这个文件实际上就是把我们的数据库相关的所有数据以及表等放到这个文件当中也可以称为物理文件2.还原语法mysql source /root/MySQL/test1.sql我刚直接输入指令西显示没有文件存在我就先if了一下确定恢复时没有先确保没有任何数据库占用冲突你直接source的时候如果test1数据库已经存在可能会报错或者跳过。两种恢复方式的区别情况一备份时带了-Bmysqldump -u root -p -B test1 test1.sql;恢复时直接source /root/MySQL/mytest.sql;不需要先建库、不需要use因为文件里已经有CREATE DATABASE和USE语句。情况二备份时没带-Bmysqldump -u root -p test1 test1.sql;恢复时必须先手动创建数据库create database mytest; use mytest; source /root/MySQL/mytest.sql;如果你直接source而没有先建库和use就会出问题。3. 注意事项如果备份的不是整个数据库而是其中的一张表怎么做mysqldump -u root -p 数据库名 表名1 表名2 test1.sql;同时备份多个数据库mysqldump -u root -p -B 数据库名1 数据库名2 ... 数据库存放路径;如果备份一个数据库时没有带上-B参数 在恢复数据库时需要先创建空数据库然后使用数据库再使用source来还原。4. 查看连接情况语法show processlist;列名含义你的例子中的具体值解读Id连接的线程ID唯一标识一个客户端连接5、23、27User连接所用的用户名event_scheduler系统内部事件调度器、root你的管理员账户Host客户端连接来源localhost表示本机连接localhost:57982表示本机的某个端口Db当前连接正在使用的数据库如果已选中test1表示正在使用 test1 库NULL表示没有选中任何库Command当前连接正在执行的命令类型Daemon后台守护进程、Sleep空闲、Query正在执行查询Time当前状态持续的时间秒5秒、5545秒约1.5小时、0秒State线程当前的状态Waiting on empty queue等待任务、NULL、init初始化Info正在执行的SQL语句如果Command是Queryshow processlist就是你刚执行的这条命令二.表的操作2-1创建表语法CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;说明field 表示列名datatype 表示列的类型character set 字符集如果没有指定字符集则以所在数据库的字符集为准collate 校验规则如果没有指定校验规则则以所在数据库的校验规则为准说明不同的存储引擎创建表的文件不一样。users 表存储引擎是 MyISAM 在数据目中有三个不同的文件分别是users.frm表结构users.MYD表数据users.MYI表索引示例MySQL 5.7不同的存储引擎创建表的文件不一样。(1) user1 表存储引擎是 MyISAM在数据目录中有三个不同的文件[rootVM-0-3-centos user_db]# ll total 128 -rw-r--r-- 1 mysql mysql 61 May 19 9:00 db.opt -rw-r--r-- 1 mysql mysql 8645 May 19 9:02 user1.frm -rw-r--r-- 1 mysql mysql 0 May 19 9:02 user1.MYD -rw-r--r-- 1 mysql mysql 1024 May 19 9:02 user1.MYIuser1.frm表结构user1.MYD表数据user1.MYI表索引(2) user2 表存储引擎是 InnoDB在数据目录中有两个不同的文件[rootVM-0-3-centos user_db]# ll total 128 -rw-r--r-- 1 mysql mysql 61 May 19 9:00 db.opt -rw-r--r-- 1 mysql mysql 8645 May 19 9:02 user1.frm -rw-r--r-- 1 mysql mysql 0 May 19 9:02 user1.MYD -rw-r--r-- 1 mysql mysql 1024 May 19 9:02 user1.MYI -rw-r--r-- 1 mysql mysql 8645 May 19 9:02 user2.frm -rw-r--r-- 1 mysql mysql 98304 May 19 9:02 user2.ibduser2.frm表结构user2.ibd表数据和索引创建 user3 表默认存储引擎mysql create table if not exists user3(name char(32)); Query OK, 0 rows affected (0.02 sec)查看文件[rootVM-0-3-centos user_db]# ll total 236 -rw-r--r-- 1 mysql mysql 61 May 19 9:02 db.opt -rw-r--r-- 1 mysql mysql 8645 May 19 9:02 user1.frm -rw-r--r-- 1 mysql mysql 0 May 19 9:02 user1.MYD -rw-r--r-- 1 mysql mysql 1024 May 19 9:02 user1.MYI -rw-r--r-- 1 mysql mysql 8645 May 19 9:02 user2.frm -rw-r--r-- 1 mysql mysql 98304 May 19 9:02 user2.ibd -rw-r--r-- 1 mysql mysql 8560 May 19 9:03 user3.frm -rw-r--r-- 1 mysql mysql 98304 May 19 9:03 user3.ibd表默认的存储引擎是 InnoDB。ubuntuUbuntu 输出可以看到user1表同时存在user1.MYD、user1.MYI和user1_369.sdi文件user2表只有user2.ibd文件这说明在 MySQL 8.0 中即使你指定engineMyISAM创建了表它依然会生成一个.sdi文件替代旧版的.frm同时也会生成.MYD和.MYI文件。但默认存储引擎是 InnoDB所以不指定引擎时创建的表如user3、person只会生成.ibd文件。你实际看到的文件对应关系表名存储引擎生成的文件user1MyISAMuser1.MYDuser1.MYIuser1_369.sdiuser2InnoDBuser2.ibdpersonInnoDB默认person.ibd为什么 user1 没有.frm而是.sdiUbuntu 装的是MySQL 8.0而笔记里的 CentOS 是MySQL 5.7。MySQL 5.7 及之前表结构存在.frm文件MySQL 8.0表结构存在数据字典中同时导出为.sdi序列化字典信息文件所以找不到user1.frm是正常的8.0 里对应的是user1_369.sdi。备注创建一个engine是innodb的数据库观察存储目录2-2查看表查看表结构desc 表名;显示表的详细信息show create table user1;show create table user1 \G;\G格式化显示把不需要的符号去掉。\G格式化显示去掉不需要的符号。2-3修改表在项目实际开发中经常修改某个表的结构比如字段名字字段大小字段类型表的字符集类型表的存储引擎等等。我们还有需求添加字段删除字段等等。这时我们就需要修改表。语法LTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...); ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...); ALTER TABLE tablename DROP (column);将user1改为user(to可以省略在表中添加记录insert into tablename values(插入各项内容);在表中添加一个字段alter table tablename add (column datatype [DEFAULT expr][,column datatype]...);插入新字段后对原来表中的数据没有影响2-4修改属性alter table tablename modify(column datatype[DEFAULT expr][,column datatype]...);不是指定进行修改所以要将所修改属性后面的内容也加上否则将直接覆盖原有内容。2-5删除password列注意删除字段一定要小心删除字段及其对应的列数据都没了alter table tablename drop(column);2-6修改列名alter table tablename change(column newcolumn datatype[DEFAULT expr][,column datatype]...);新字段需要完整定义属性也要带上2-7删除表语法格式DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…