[{"data":1,"prerenderedAt":872},["ShallowReactive",2],{"post:\u002Fposts\u002F2020\u002Fmysql-basics":3,"posts:catalog":598},{"id":4,"title":5,"aiSummary":6,"audio":7,"body":8,"categories":580,"cover":582,"description":583,"extension":584,"meta":585,"navigation":6,"path":586,"pin":587,"publish":588,"seo":589,"series":7,"seriesOrder":7,"stem":590,"summary":7,"summarySource":591,"tags":592,"theme":594,"update":7,"wip":595,"wordCount":596,"__hash__":597},"posts\u002Fposts\u002F2020\u002Fmysql-basics.md","MySQL 基础",true,null,{"type":9,"value":10,"toc":541},"minimark",[11,16,20,24,30,33,37,40,43,46,49,65,68,71,74,77,80,83,111,115,118,126,129,140,143,147,150,153,156,167,170,175,178,183,186,189,192,195,198,201,208,214,217,220,226,229,232,238,241,244,250,253,256,262,266,269,272,275,278,281,298,301,400,403,406,409,417,423,426,429,435,442,448,454,460,463,469,475,478,481,486,489,495,498,504,507,517,523,526,535,538],[12,13,15],"h1",{"id":14},"mysql-介绍","MySQL 介绍",[17,18,19],"h2",{"id":19},"简介",[21,22,23],"p",{},"百度百科：",[25,26,27],"blockquote",{},[21,28,29],{},"MySQL 是一个关系型数据库管理系统，由瑞典 MySQL AB 公司开发，属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一，在 WEB 应用方面，MySQL 是最好的 RDBMS (Relational Database Management System，关系数据库管理系统) 应用软件之一。\nMySQL 是一种关系型数据库管理系统，关系数据库将数据保存在不同的表中，而不是将所有数据放在一个大仓库内，这样就增加了速度并提高了灵活性。",[17,31,32],{"id":32},"数据库系统概述",[34,35,36],"h3",{"id":36},"数据库",[21,38,39],{},"数据库（DataBase，DB）是以一定的组织方式将相关的数据组织在一起存放在计算机外存储器上，并能为多个用户共享的与应用程序彼此独立的一组相关数据的集合。它不仅包括描述事物的数据本身，而且包括相关事物之间的联系。对数据库中数据的增加、删除、修改和检索等操作，由数据库管理系统进行统一控制。",[34,41,42],{"id":42},"数据库管理系统",[21,44,45],{},"数据库管理系统（DataBase Management System，DBMS）是为数据库的建立、使用和维护而配置的软件，它提供了安全性和完整性等统一控制机制，方便用户管理和存取大量的数据资源。例如，MySQL 就是计算机上使用的一种数据库管理系统。",[21,47,48],{},"数据库管理系统的主要功能包括以下几个方面：",[50,51,52,56,59,62],"ul",{},[53,54,55],"li",{},"数据定义功能",[53,57,58],{},"数据操纵功能",[53,60,61],{},"数据库的运行管理",[53,63,64],{},"数据库的建立和维护功能",[34,66,67],{"id":67},"数据库系统",[21,69,70],{},"数据库系统（DataBase System，DBS）是指引进数据库技术后的计算机系统，能实现有组织地、动态地存储大量相关数据，提供数据处理和信息资源共享的便利手段。由 5 部分组成：硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员（DataBase Administrator，DBA）和用户。其中，数据库管理系统是数据库系统的核心。",[34,72,73],{"id":73},"数据库应用系统",[21,75,76],{},"数据库应用系统（DataBase Application System，DBAS）是指系统开发人员利用数据库系统资源开发出来的，面向某一类信息处理问题而建立的软件系统，例如，以数据库为基础的学籍管理系统等。",[17,78,79],{"id":79},"数据库系统的特点",[21,81,82],{},"数据库系统的主要特点如下：",[84,85,86,93,99,105],"ol",{},[53,87,88,92],{},[89,90,91],"strong",{},"数据结构化","：数据结构化是数据库系统与文件系统的根本区别。",[53,94,95,98],{},[89,96,97],{},"数据的共享性高，冗余度低，易于扩充","：数据共享减少了数据冗余，而且解决了重复存储时经常发生的因不同应用修改数据的不同副本而造成的数据不一致问题。",[53,100,101,104],{},[89,102,103],{},"数据独立性强","：包括物理独立性和逻辑独立性。",[53,106,107,110],{},[89,108,109],{},"数据统一管理和控制","：为保证数据库数据的正确性和有效性，数据库系统提供了安全性控制、完整性控制、并发性控制、数据库恢复。",[12,112,114],{"id":113},"mysql-安装与配置","MySQL 安装与配置",[21,116,117],{},"下面的链接介绍的非常详细了，避免篇幅过长具体不再重复赘述。",[21,119,120],{},[121,122,125],"a",{"href":123,"target":124},"https:\u002F\u002Fwww.runoob.com\u002Fw3cnote\u002Fwindows10-mysql-installer.html","_blank","点击查看安装教程",[21,127,128],{},"记住改好的密码，每次打开都需要登陆。",[130,131,136],"pre",{"className":132,"code":134,"language":135},[133],"language-text","命令格式: mysql -u 用户名 -p 密码\n例如:     mysql -u root -p password\n","text",[137,138,134],"code",{"__ignoreMap":139},"",[12,141,142],{"id":142},"数据库的创建与管理",[17,144,146],{"id":145},"mysql-数据库简介","MySQL 数据库简介",[34,148,149],{"id":149},"数据库的构成",[21,151,152],{},"MySQL 数据库主要分为系统数据库、示例数据库和用户数据库。 1.系统数据库",[21,154,155],{},"sys 数据库:",[50,157,158,161,164],{},[53,159,160],{},"information_schema 数据库",[53,162,163],{},"performance_schema 数据库",[53,165,166],{},"mysql 数据库",[21,168,169],{},"示例数据库:",[50,171,172],{},[53,173,174],{},"sakila 和 world 示例数据库是完整的示例。",[21,176,177],{},"用户数据库:",[50,179,180],{},[53,181,182],{},"自己创建的",[34,184,185],{"id":185},"数据库文件",[21,187,188],{},"数据库管理的核心任务包括创建、操作和支持数据库。在 MySQL 中，每个数据库都对应存放在一个与数据库同名的文件夹中。MySQL 数据库文件有“.FRM”、“.MYD”和“.MYI”3 种文件，其中“.FRM”是描述表结构的文件，“.MYD”是表的数据文件，“.MYI”是表数据文件中的索引文件。",[34,190,191],{"id":191},"数据库对象",[21,193,194],{},"MySQL 数据库中的数据在逻辑上被组织成一系列数据库对象，这些数据库对象包括：表、视图、约束、索引、存储过程、触发器、用户定义函数、用户和角色。",[17,196,197],{"id":197},"管理数据库",[34,199,200],{"id":200},"创建",[21,202,203,204,207],{},"SQL 语句创建用户数据库其语法格式如下：\n",[137,205,206],{},"CREATE {DATABASE|SCHEMA}[IF NOT EXISTS] \u003C数据库文件名>","\n例如:",[130,209,212],{"className":210,"code":211,"language":135},[133],"#创建名为D_sample的数据库\ncreate datebase D_sample;\n\n#为避免因重复创建时系统显示的错误信息,可使用:\ncreate database if not exists D_sample;\n",[137,213,211],{"__ignoreMap":139},[34,215,216],{"id":216},"查看已有的数据库",[21,218,219],{},"其语法格式如下：\nSHOW DATABASES;\n例如:",[130,221,224],{"className":222,"code":223,"language":135},[133],"show databases;\n",[137,225,223],{"__ignoreMap":139},[34,227,228],{"id":228},"打开数据库",[21,230,231],{},"在对某数据库操作前需要先选中\n例如: 打开 D_sample 数据库:",[130,233,236],{"className":234,"code":235,"language":135},[133],"use D_sample;\n",[137,237,235],{"__ignoreMap":139},[34,239,240],{"id":240},"修改数据库",[21,242,243],{},"修改数据库 D_sample 的默认字符集和校对规则。",[130,245,248],{"className":246,"code":247,"language":135},[133],"alter database D_sample\n  default character set=gbk\n  default collate=gbk_chinese_ci;\n",[137,249,247],{"__ignoreMap":139},[34,251,252],{"id":252},"删除数据库",[21,254,255],{},"删除 D_sample 数据库:",[130,257,260],{"className":258,"code":259,"language":135},[133],"drop database D_sample1;\n",[137,261,259],{"__ignoreMap":139},[17,263,265],{"id":264},"mysql-图形化管理工具","MySQL 图形化管理工具",[21,267,268],{},"使用图形化管理工具，可让操作变得更简单直接。\n常用的有 Workbench、Navicat、SQLyog 等等很多。",[12,270,271],{"id":271},"表的创建与管理",[21,273,274],{},"数据表是数据库中最重要的对象，用于存储数据库中的所有数据。因此，数据表的设计与实现将直接影响数据库能否合理高效地使用。",[17,276,19],{"id":277},"简介-1",[21,279,280],{},"在 MySQL 中，表用于存储实体集和实体间联系的数据。一个表就是一个关系，表实质上就是行列的集合，每一行代表一条记录，每一列代表记录的一个字段。在 MySQL 数据库中，表通常具有以下几个特点：",[84,282,283,286,289,292,295],{},[53,284,285],{},"表通常代表一个实体",[53,287,288],{},"表由行和列组成",[53,290,291],{},"行值在同一个表中具有唯一性",[53,293,294],{},"字段名在同一个表中具有唯一性",[53,296,297],{},"行和列的无序性",[17,299,300],{"id":300},"数据类型",[302,303,304,316],"table",{},[305,306,307],"thead",{},[308,309,310,313],"tr",{},[311,312,300],"th",{},[311,314,315],{},"系统数据类型",[317,318,319,328,336,344,352,360,368,376,384,392],"tbody",{},[308,320,321,325],{},[322,323,324],"td",{},"整数型",[322,326,327],{},"TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT",[308,329,330,333],{},[322,331,332],{},"精确数值型",[322,334,335],{},"DECIMAL(M,D),NUMERIC(M,D)",[308,337,338,341],{},[322,339,340],{},"浮点型",[322,342,343],{},"FLOAT, REAL,DOUBLE",[308,345,346,349],{},[322,347,348],{},"位型",[322,350,351],{},"BIT",[308,353,354,357],{},[322,355,356],{},"二进制型",[322,358,359],{},"BINARY,VARBINARY",[308,361,362,365],{},[322,363,364],{},"字符型",[322,366,367],{},"CHAR,VARCHAR,BLOB,TEXT,ENUM,SET",[308,369,370,373],{},[322,371,372],{},"Unicode 字符型",[322,374,375],{},"NCHAR,NVARCHAR",[308,377,378,381],{},[322,379,380],{},"文本型",[322,382,383],{},"TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT",[308,385,386,389],{},[322,387,388],{},"BLOB 类型",[322,390,391],{},"TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB",[308,393,394,397],{},[322,395,396],{},"日期时间型",[322,398,399],{},"DATETIME,DATE,TIMESTAMP,TIME,YEAR",[17,401,402],{"id":402},"数据表操作",[34,404,405],{"id":405},"创建数据表",[21,407,408],{},"创建数据表的语法格式如下：",[21,410,411,414,207],{},[137,412,413],{},"CREATE [TEMPORARY] TABLE [IF NOT EXISTS] \u003C表名>",[137,415,416],{},"[(\u003C字段名> \u003C数据类型> [完整性约束条件][,…])][表的选项];",[130,418,421],{"className":419,"code":420,"language":135},[133],"use D_sample;\ncreate table student\n( #设置主键约束\n学号 char(9) primary key,\n姓名 varchar(10),\n性别 char(2),\n出生日期 date,\n民族 varchar(10),\n政治面貌 varchar(8)\n);\n",[137,422,420],{"__ignoreMap":139},[34,424,425],{"id":425},"查看表的信息",[21,427,428],{},"查看信息:SHOW TABLES;\n例如:",[130,430,433],{"className":431,"code":432,"language":135},[133],"show tables;\n",[137,434,432],{"__ignoreMap":139},[21,436,437,438,441],{},"查看表:",[137,439,440],{},"{DESCRIBE |DESC}\u003C表名> [字段名];","\n例如查看 D_sample 数据库中 student 表的信息:",[130,443,446],{"className":444,"code":445,"language":135},[133],"desc student;\n",[137,447,445],{"__ignoreMap":139},[21,449,450,451],{},"修改表:",[137,452,453],{},"ALTER TABLE \u003C表名>",[130,455,458],{"className":456,"code":457,"language":135},[133],"alter table student #添加字段\nadd 专业 char(30);\n#course 表中的学分字段的数据类型改为 smallint\nmodify 学分 smallint; #删除字段\ndrop column 专业; #重命名表\nrename as stu;\n",[137,459,457],{"__ignoreMap":139},[34,461,462],{"id":462},"删除表",[21,464,465,466],{},"删除表语法格式如下:\n",[137,467,468],{},"DROP [TEMPORARY] TABLE [IF EXISTS] \u003C表名> [,\u003C表名>...];",[130,470,473],{"className":471,"code":472,"language":135},[133],"drop table student;\n",[137,474,472],{"__ignoreMap":139},[17,476,477],{"id":477},"表数据操作",[34,479,480],{"id":480},"添加数据",[21,482,483],{},[137,484,485],{},"INSERT INTO \u003C表名> [\u003C字段名>[,…]]VALUES (\u003C常量>[,…]);",[21,487,488],{},"向数据库 D_sample 的 student 表中添加数据:",[130,490,493],{"className":491,"code":492,"language":135},[133],"insert into student\nvalues('201839001','刘一','女','1998-07-07','汉族','共青团员');\ninsert into student\nvalues('201839002','陈二','男','2000-06-12','汉族','共青团员');\ninsert into student\nvalues('201839003','张三','男','1899-03-29','汉族','中共党员');\nvalues('201839003','李四','男','2000-01-25','汉族','共青团员');\nvalues('201839003','王五','男','1999-08-24','汉族','共青团员');\nvalues('201839003','赵六','男','1999-07-14','汉族','共青团员');\nvalues('201839003','孙七','男','1999-02-14','汉族','共青团员');\nvalues('201839003','周八','男','1999-01-06','汉族','共青团员');\n",[137,494,492],{"__ignoreMap":139},[21,496,497],{},"向数据库 D_sample 的 course 表中添加数据:",[130,499,502],{"className":500,"code":501,"language":135},[133],"insert into course\nvalues('07001','计算机应用基础','掌握计算机基本操作',4,4,'1');\ninsert into course\nvalues('07002','计算机网络技术基础','掌握计算机网络应用',4,4,'1');\ninsert into course\nvalues('07003','数据库技术基础','掌握数据库系统设计',4,4,'2');\n",[137,503,501],{"__ignoreMap":139},[34,505,506],{"id":506},"更新数据",[21,508,509,510,513,516],{},"修改表中数据语法格式如下:\n",[137,511,512],{},"UPDATE \u003C表名>",[137,514,515],{},"SET \u003C字段名>=\u003C表达式>[,…][where \u003C条件>];","\n例如:\n将 student 表中姓名值为“周八”的出生日期改为“1999-02-01”",[130,518,521],{"className":519,"code":520,"language":135},[133],"update student\nset 出生日期='1999-02-01'\nwhere 姓名='周八';\n",[137,522,520],{"__ignoreMap":139},[34,524,525],{"id":525},"删除数据",[21,527,528,529,532],{},"删除表中数据语法格式如下:\n",[137,530,531],{},"DELETE FROM \u003C表名>",[137,533,534],{},"[WHERE\u003C条件>];",[12,536,537],{"id":537},"总结",[21,539,540],{},"参考：\n菜鸟教程、MySQL 数据库应用与实践教程",{"title":139,"searchDepth":542,"depth":543,"links":544},12,5,[545,547,554,555,560,567,568,569,570,575],{"id":19,"depth":546,"text":19},2,{"id":32,"depth":546,"text":32,"children":548},[549,551,552,553],{"id":36,"depth":550,"text":36},3,{"id":42,"depth":550,"text":42},{"id":67,"depth":550,"text":67},{"id":73,"depth":550,"text":73},{"id":79,"depth":546,"text":79},{"id":145,"depth":546,"text":146,"children":556},[557,558,559],{"id":149,"depth":550,"text":149},{"id":185,"depth":550,"text":185},{"id":191,"depth":550,"text":191},{"id":197,"depth":546,"text":197,"children":561},[562,563,564,565,566],{"id":200,"depth":550,"text":200},{"id":216,"depth":550,"text":216},{"id":228,"depth":550,"text":228},{"id":240,"depth":550,"text":240},{"id":252,"depth":550,"text":252},{"id":264,"depth":546,"text":265},{"id":277,"depth":546,"text":19},{"id":300,"depth":546,"text":300},{"id":402,"depth":546,"text":402,"children":571},[572,573,574],{"id":405,"depth":550,"text":405},{"id":425,"depth":550,"text":425},{"id":462,"depth":550,"text":462},{"id":477,"depth":546,"text":477,"children":576},[577,578,579],{"id":480,"depth":550,"text":480},{"id":506,"depth":550,"text":506},{"id":525,"depth":550,"text":525},[581],"笔记","\u002Fimages\u002F2020\u002Fmysql-basics\u002Fmysql-basics.png","本文介绍MySQL关系型数据库管理系统基础知识，包括数据库、数据库管理系统、数据库系统和数据库应用系统的概念，及其数据结构化、共享性高、冗余度低、独立性强和统一管理等特点；简述数据库的创建、查看、打开、修改和删除操作，以及数据表的创建、修改、删除和表数据的添加、更新、删除方法，并提及图形化管理工具。","md",{},"\u002Fposts\u002F2020\u002Fmysql-basics",0,"2020-06-05",{"title":5,"description":583},"posts\u002F2020\u002Fmysql-basics","ai",[593,36],"mysql","#a369ff",false,1825,"FrUK5Kw6FVqCRX4bWOy3yKXCzr5Sx031zMIuCswY0M8",[599,615,629,637,650,665,678,690,700,713,725,736,748,759,771,782,791,805,808,820,833,843,853,862],{"path":600,"stem":601,"title":602,"description":603,"wordCount":604,"publish":605,"update":605,"cover":606,"tags":607,"categories":613,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2026\u002Fwsl3","posts\u002F2026\u002Fwsl3","WSL 3 正式发布~","微软发布 WSL 3.0.1，正式提供稳定的 WSL 容器功能，无需 Docker 即可原生创建和运行 Linux 容器。该版本改进包括跨操作系统文件访问性能最高提升至原来的两倍（采用 virtiofs），以及网络模式 Consomme 优化端口映射和 VPN 兼容性。文章介绍了 WSL 安装、从 WSL 2 升级的方法，并示例使用 wslc 运行 Ubuntu、Nginx 容器及构建自定义镜像。",1038,"2026-10-01","\u002Fimages\u002F2026\u002Fwsl3\u002Fwsl3.png",[608,609,610,611,612],"WSL","Linux","Windows","Docker","容器",[614],"工具",{"path":616,"stem":617,"title":618,"description":619,"wordCount":620,"publish":621,"update":7,"cover":622,"tags":623,"categories":628,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2026\u002Fcodex-prompt","posts\u002F2026\u002Fcodex-prompt","Codex 的 GPT-6 Sol 提示词泄露了？","文章围绕网传Codex GPT-6 Sol提示词泄露展开，选取部分内容解读。提示词要求像同事一样交流、降低认知负担，用具体描述并说明改动、原因、测试与风险；明确禁止使用AI套话；通过高质量和低质量示例约束输出。摘要表还涵盖沟通、执行、权限、长期任务、工具与界面、质量与证据等核心要求。",1073,"2026-09-25","\u002Fimages\u002F2026\u002Fcodex-prompt\u002Fcodex-prompt.png",[624,625,626,627],"AI","Codex","提示词","Agent",[624],{"path":630,"stem":631,"title":632,"description":633,"wordCount":634,"publish":621,"update":7,"cover":7,"tags":635,"categories":636,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2026\u002Fcodex-prompt-translation","posts\u002F2026\u002Fcodex-prompt-translation","Codex GPT-6 Sol 提示词完整中文译文","第三方仓库收录的 Codex GPT-6 Sol 提示词中文译文，按原顺序保留全部 54 个模板。",34261,[624,625,626,627],[624],{"path":638,"stem":639,"title":640,"description":641,"wordCount":642,"publish":643,"update":644,"cover":645,"tags":646,"categories":649,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2026\u002Fjev","posts\u002F2026\u002Fjev","JEV 是好模型吗？","本文评析JEV模型，认为其并非通用大模型，而是专做预定义判断的System One模型，通过选择、评分、是非题返回结构化结果，不生成文本。其快与便宜源于非自回归并行输出，但“零幻觉”仅指输出结构合规，判断仍可能出错。该思路适用于答案范围明确、需频繁调用的场景，也可用普通大模型近似实现，核心在于把任务收窄为单一判断。",2429,"2026-09-21","2026-09-23","\u002Fimages\u002F2026\u002Fjev\u002Fjev.webp",[624,647,648],"JEV","LLM",[624],{"path":651,"stem":652,"title":653,"description":654,"wordCount":655,"publish":656,"update":657,"cover":7,"tags":658,"categories":663,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002Fblog\u002Foverview","posts\u002F2.blog\u002F01.overview","新版博客已上线！","新版博客“mukuchi”上线，具备文章写作、标签分类、全文搜索、阅读目录、代码复制、图片缩放、深浅主题切换及移动端适配等功能。内容以Markdown和MDC编写，后台支持草稿、上传、预览与发布，并可生成AI摘要、朗读和双人播客。技术栈采用Nuxt、Vue、UnoCSS、Nuxt Content及Cloudflare服务，文章存于GitHub仓库。后续计划增加工具、重做账号系统并改为站内评论。",1059,"2026-09-14","2026-09-22",[659,660,661,662],"博客","Nuxt","Vue","Cloudflare",[664],"建站记录",{"path":666,"stem":667,"title":668,"description":669,"wordCount":670,"publish":671,"update":7,"cover":7,"tags":672,"categories":676,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2026\u002Fgame-dlss5","posts\u002F2026\u002Fgame-dlss5","哦，我的上帝！这是真实的！ —— DLSS 5 渲染实测","文章以《崩坏3rd》和《崩坏：星穹铁道》为例，展示DLSS 5渲染在多个场景下开启与关闭的画面对比。教程说明通过XXMI-Launcher注入ReShade的d3d12.dll，启动游戏后按Home键配置RenoDX DLSS参数，并提示下线前需手动关闭。文末附相关工具与网盘资源下载方式。",390,"2026-09-08",[673,674,675],"DLSS5","mod","xxmi",[677],"游戏",{"path":679,"stem":680,"title":681,"description":682,"wordCount":683,"publish":684,"update":685,"cover":7,"tags":686,"categories":689,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2026\u002Fmilanote-api","posts\u002F2026\u002Fmilanote-api","Milanote API","本文介绍了作者开发的 Milanote API 项目，用于在外部使用 Milanote 分享 Board 的内容。项目已完成根据分享链接获取完整 API 数据、解析卡片内容与布局、构建 Playground 在线可视化示例、部署至 Cloudflare Workers 并提供字段筛选功能；待实现免密钥在线解析。文章还说明了获取 Milanote 只读分享链接的步骤，并展示了 Playground 界面效果。",234,"2026-07-22","2026-07-23",[687,688],"Milanote","API",[614],{"path":691,"stem":692,"title":693,"description":694,"wordCount":695,"publish":696,"update":7,"cover":697,"tags":698,"categories":699,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2026\u002Fduolingo","posts\u002F2026\u002Fduolingo","今天你 Duolingo 了吗？","本文介绍使用 Cloudflare Workers 构建 Duolingo 用户信息接口，解决跨域与缓存问题。接口支持按环境变量查询固定用户，返回昵称、头像、经验及连续学习天数，并提供搜索和其他用户详情接口。通过 KV 缓存和定时任务减少上游请求，支持带鉴权的手动刷新，并包含超时和错误处理。",1581,"2026-07-14","\u002Fimages\u002F2026\u002Fduolingo\u002Fduolingo.png",[688,662],[614],{"path":701,"stem":702,"title":703,"description":704,"wordCount":705,"publish":706,"update":7,"cover":7,"tags":707,"categories":712,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002Fblender","posts\u002Fblender\u002Findex","Blender 专题","本文介绍Blender这一免费开源3D建模软件，涵盖建模、动画、渲染、视频剪辑等功能，适合从入门到高级开发。文档提供官网地址；教程部分包含动画大师课VV purple、角色建模课Zimon3D，并附B站链接；素材推荐BlenderKit官方素材库、Sketchfab及模之屋等免费资源平台。",158,"2026-06-18",[708,709,710,711],"Blender","3D","建模","动画",[708],{"path":714,"stem":715,"title":716,"description":717,"wordCount":718,"publish":706,"update":7,"cover":7,"tags":719,"categories":724,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002Fthreejs","posts\u002Fthreejs\u002Findex","Three.js 专题","本文介绍Three.js作为Web端主流3D图形库，封装WebGL\u002FWebGPU，用于构建3D场景、动画、游戏和数据可视化等。文章汇总官方资源，包括官网、示例、文档、教程、在线编辑器和GitHub仓库。基础使用方面，说明在Vue3中通过TresJS、React中通过React Three Fiber进行组件化开发，并提及GSAP动画库和Blender建模软件。其他资源推荐Three.js Journey系统教程、The Book of Shaders书籍和Kenney免费游戏素材，AI与问题部分尚在完善中。",418,[720,721,722,723],"Three.js","WebGL","WebGPU","Shader",[720],{"path":726,"stem":727,"title":728,"description":729,"wordCount":730,"publish":731,"update":731,"cover":732,"tags":733,"categories":735,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2025\u002Fmagic-js","posts\u002F2025\u002Fmagic-js","你能看懂这些 JavaScript 表达式吗？","本文解析了JavaScript中多个怪异表达式结果的原因，指出其源于IEEE 754浮点数表示、隐式类型转换及同一符号在不同语法环境中的歧义。例如NaN为number、大整数舍入、0.1+0.2不等于0.3、空数组与对象相加、布尔值运算及宽松相等等行为，均可据此解释。建议工程中使用严格相等和明确转换以避免陷阱。",2035,"2025-07-31","\u002Fimages\u002F2025\u002Fmagic-js\u002Fmagic-js.png",[734],"JavaScript",[734],{"path":737,"stem":738,"title":739,"description":740,"wordCount":741,"publish":742,"update":743,"cover":744,"tags":745,"categories":747,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2021\u002Fgit","posts\u002F2021\u002Fgit","Git 笔记","本文介绍Git的安装与基础配置，涵盖用户名邮箱设置及配置作用域优先级；解释工作区、暂存区和本地仓库的工作流；列举git add、commit、branch、switch、log、diff、stash、rm、mv等常用命令；说明查看日志、比较差异、对象关系、搁置改动、忽略文件等操作；并回答删除分支、修改提交信息、合并提交、取消暂存、丢弃改动和删除文件等常见问题。",878,"2021-09-07","2026-05-17","https:\u002F\u002Fgit-scm.com\u002Fimages\u002Flogo@2x.png",[746],"Git",[614],{"path":749,"stem":750,"title":751,"description":752,"wordCount":753,"publish":754,"update":7,"cover":755,"tags":756,"categories":758,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2021\u002Fhexo-editor","posts\u002F2021\u002Fhexo-editor","HexoEditor(适用于Hexo的专用编辑器)","本文介绍了专为Hexo优化的Markdown编辑器HexoEditor。该编辑器预览效果与Hexo生成页面高度相似，支持快速执行Hexo命令。软件开源，可从GitHub获取安装程序及中英文手册。配置包括通用、编辑、Hexo路径设置、渲染主题（支持GitHub和Next）以及图片云存储（如SM.MS、腾讯云等）。还提供右键快捷操作Hexo命令。",587,"2021-03-22","\u002Fimages\u002F2021\u002Fhexo-editor\u002Fhexo-editor.jpg",[614,757],"Hexo",[614],{"path":760,"stem":761,"title":762,"description":763,"wordCount":764,"publish":754,"update":7,"cover":765,"tags":766,"categories":770,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2021\u002Ftomcat-servlet","posts\u002F2021\u002Ftomcat-servlet","Tomcat和Servlet应用配置及部分问题","本文介绍Tomcat与Servlet的配置及常见问题。Tomcat部分涵盖安装、环境变量、启动关闭、乱码与端口占用处理、项目部署及IDEA集成。Servlet部分说明实现方式、生命周期、请求与响应对象、乱码处理、请求转发与重定向，以及Cookie、Session、ServletContext等对象和三大域对象的作用范围。",4196,"\u002Fimages\u002F2021\u002Ftomcat-servlet\u002Ftomcat-servlet.jpg",[767,768,769],"JavaWEb","Tomcat","Servlet",[581],{"path":772,"stem":773,"title":774,"description":775,"wordCount":776,"publish":777,"update":7,"cover":778,"tags":779,"categories":781,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2021\u002Fgithub-actions","posts\u002F2021\u002Fgithub-actions","使用Github Action实现全自动部署","本文介绍使用GitHub Action实现Hexo博客全自动部署的流程。需先获取GitHub与Coding的个人访问令牌，创建存放源码的私有仓库，并在站点配置中设置部署仓库地址和令牌。接着在.github\u002Fworkflows目录创建自动部署工作流文件，配置检出、安装Node与Hexo、缓存依赖、生成静态文件和部署步骤。随后更新远程仓库分支，添加.gitignore屏蔽项并推送源码，最后通过Actions查看部署状态。",910,"2021-01-26","\u002Fimages\u002F2021\u002Fgithub-actions\u002Fgithub-actions.jpg",[780],"博客优化",[780],{"path":783,"stem":784,"title":785,"description":786,"wordCount":787,"publish":777,"update":7,"cover":788,"tags":789,"categories":790,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2021\u002Fhexo-auto-open-editor","posts\u002F2021\u002Fhexo-auto-open-editor","Hexo添加文章时自动打开编辑器","本文介绍Hexo新建文章后自动打开编辑器的方法。通过监听Hexo的new事件并在scripts目录下添加脚本，利用child_process.exec执行系统命令，Windows使用start、macOS使用open -a启动指定编辑器并打开新文章路径。用户需替换脚本中的编辑器绝对地址，保存后执行hexo new即可自动打开对应文件。",269,"\u002Fimages\u002F2021\u002Fhexo-auto-open-editor\u002Fhexo-auto-open-editor.webp",[780],[780],{"path":792,"stem":793,"title":794,"description":795,"wordCount":796,"publish":797,"update":7,"cover":798,"tags":799,"categories":804,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2021\u002Fhttp-canary-ca","posts\u002F2021\u002Fhttp-canary-ca","解决部分安卓11HttpCanary无法安装证书及其他诸多问题","本文分享安卓11下HttpCanary证书安装失败等问题的解决方法，需root或虚拟机。MIUI系统点击安装根证书无反应时，将指定缓存路径的HttpCanary.pem复制为HttpCanary.jks并重启应用，再以root权限安装到系统；无效则先导出带.0证书再安装。抓https失败或提示证书不可信，可安装Xposed框架和JustTrustMe插件关闭SSL认证。资源可从酷安或应用商店获取，免费版与付费版主要区别为插件支持。",506,"2021-01-16","\u002Fimages\u002F2021\u002Fhttp-canary-ca\u002Fhttp-canary-ca.png",[800,801,802,803],"Android","HttpCanary","抓包","问题",[802],{"path":586,"stem":590,"title":5,"description":583,"wordCount":596,"publish":588,"update":7,"cover":582,"tags":806,"categories":807,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},[593,36],[581],{"path":809,"stem":810,"title":811,"description":812,"wordCount":813,"publish":814,"update":7,"cover":815,"tags":816,"categories":819,"series":7,"seriesOrder":7,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002F2020\u002Fpython-tkinter","posts\u002F2020\u002Fpython-tkinter","Python图形用户界面(Tkinter)","本文简介Python常用GUI库，重点说明Tkinter的标准控件、共同属性及pack、grid、place三种几何布局管理器。使用Tkinter需导入模块、创建控件、添加交互并编写函数、进入主事件循环。文中以简单登录界面为例，演示标签、输入框、按钮的放置，以及为按钮设置回调函数进行输入校验和登录提示。",965,"2020-05-25","\u002Fimages\u002F2020\u002Fpython-tkinter\u002Fpython-tkinter.jpg",[817,818],"Python","GUI",[581],{"path":821,"stem":822,"title":823,"description":824,"wordCount":825,"publish":826,"update":827,"cover":7,"tags":828,"categories":831,"series":832,"seriesOrder":543,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002Fmarkdown\u002Fcollapse","posts\u002F1.markdown\u002F05.collapse","在正文中使用折叠内容","本文说明正文中折叠内容的使用方法：折叠块适合放置补充说明、较长代码或可选阅读内容，标题始终可见，点击整行展开，各折叠块独立记录状态。支持默认收起，也可通过 open 属性设置初始展开。折叠内部可包含 Markdown、列表、代码、表格、图片等，目录或锚点访问内部标题会先展开所属折叠块。还支持嵌套折叠，外层使用三个冒号、内层使用两个冒号，内外层独立控制；访问嵌套目标可一次展开沿途两层。",428,"1970-01-01","2026-09-26",[829,830],"Markdown","MDC",[832],"文章示例",{"path":834,"stem":835,"title":836,"description":837,"wordCount":838,"publish":826,"update":644,"cover":7,"tags":839,"categories":841,"series":832,"seriesOrder":842,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002Fmarkdown\u002Fvideo","posts\u002F1.markdown\u002F04.video","在文章中嵌入视频","本文介绍在文章与关于页中嵌入Bilibili和YouTube视频的MDC组件用法，无需API密钥或手写iframe。播放器按16:9自适应宽度，接近可视区域时加载，默认不自动播放。Bilibili可通过BV号或视频链接指定分P与开始时间，YouTube可通过11位视频ID或链接指定开始时间，标题由title参数设置。组件会过滤分享追踪参数与自动播放设置，无效参数仅显示提示，不影响正文。",597,[829,830,840],"视频",[832],4,{"path":844,"stem":845,"title":846,"description":847,"wordCount":848,"publish":826,"update":849,"cover":7,"tags":850,"categories":852,"series":832,"seriesOrder":550,"pin":587,"wip":6,"theme":594},"\u002Fposts\u002Fmarkdown\u002Fmarkdown-extended","posts\u002F1.markdown\u002F03.markdown-extended","Markdown 扩展功能","本文介绍Markdown扩展功能。已实现多风格提醒框，支持GitHub、Obsidian、VitePress、Docusaurus四种主题及折叠嵌套，可通过参数或全站配置设置；同时提供GitHub仓库卡片、Bilibili\u002FYouTube视频卡片与正文图片预览。图片画廊与作品集仍在计划中，当前采用标准图片语法配合图注和链接。GitHub仓库卡片在构建时获取公开仓库数据快照，不可用字段显示短横线。后续将实现图片画廊与作品集。",1822,"2026-09-27",[829,830,851],"功能规划",[832],{"path":854,"stem":855,"title":856,"description":857,"wordCount":858,"publish":826,"update":849,"cover":7,"tags":859,"categories":861,"series":832,"seriesOrder":546,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002Fmarkdown\u002Fmdc-tutorial","posts\u002F1.markdown\u002F02.mdc-tutorial","MDC 教程","本文介绍 MDC（Markdown Components）在 Nuxt Content 中的语法与用法，涵盖块级容器、行内属性、Props 传递、插槽、嵌套、绑定文章数据，以及代码块与代码组、图片预览、GitHub 仓库卡片、视频卡片、提醒框和文章自动提醒等已接入功能。文末说明自定义组件需实现并注册，并解答组件不显示、插槽误识别等常见问题。",2594,[830,860,661],"Nuxt Content",[832],{"path":863,"stem":864,"title":865,"description":866,"wordCount":867,"publish":826,"update":656,"cover":7,"tags":868,"categories":870,"series":832,"seriesOrder":871,"pin":587,"wip":595,"theme":594},"\u002Fposts\u002Fmarkdown\u002Fmarkdown","posts\u002F1.markdown\u002F01.markdown","Markdown 教程","本文为 Markdown 教程，系统介绍常用语法：段落与换行、标题与目录生成、引用、无序\u002F有序\u002F任务列表、强调与行内代码、普通\u002F引用式\u002F自动链接、图片、代码块、表格、分隔线与转义，并说明本站 Nuxt Content 环境下文章文件位置、frontmatter 要求及后续扩展内容。",1449,[829,869],"写作",[832],1,1791108778913]