
SQL数据库
文章平均质量分 86
95号闪电麦坤
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SQL: 窗口滑动(Sliding Window)
滑动窗口分析摘要 滑动窗口是一种动态分析数据范围的技术,分为时间窗口和行窗口两类。 时间窗口以时间单位(如天、小时)定义滑动区间,常用于计算移动平均值(如过去7天销售额)。实现方式包括子查询和自连接,窗口形式包括: 滑动窗口(重叠区间,如每日更新7天均值) 滚动窗口(无重叠,如按天/小时聚合) 会话窗口(用户连续行为划分,如超时断开后重启) 行窗口以固定行数为范围(如前3行均值),通过ROWS BETWEEN语法实现,适用于累计求和或排名。 核心区别:时间窗口(RANGE)基于时间值,行窗口(ROWS)基于原创 2025-06-02 12:06:42 · 1102 阅读 · 0 评论 -
SQL:基本语法总结
表示暂时还未涉及,以后会继续更新。原创 2025-06-02 11:26:50 · 106 阅读 · 0 评论 -
SQL:合并查询(UNION)
UNION 是 SQL 中的一个关键字,用于 合并多个 SELECT 查询结果,并去除重复的记录,形成一个新的结果表。重点规则:每个 SELECT 查询的列数量必须一致。每个对应列的数据类型要兼容(如都是字符串、都是数字)。UNION 会自动去除重复行,如果你想保留重复,可以使用 UNION ALL。原创 2025-05-26 10:55:40 · 1069 阅读 · 0 评论 -
SQL:窗口函数(Window Functions)
窗口函数是一类 SQL 函数,在不分组的情况下,可以对查询结果中的某一“窗口”范围内的数据进行计算。不同于聚合函数(如 SUM, AVG),窗口函数不会压缩行,而是为每一行返回一个计算值。原创 2025-05-22 09:04:46 · 2103 阅读 · 0 评论 -
SQL:多列匹配(Multiple-column Matching)
MySQL中的多列匹配是指在查询时同时对多个列进行组合匹配,常见于WHERE子句、IN子句、JOIN条件或索引使用场景。多列匹配的基础形式为SELECT * FROM table WHERE (col1, col2) = ('value1', 'value2');,表示只有当两列同时满足条件时才匹配成功。其应用场景包括多列等值匹配、多列IN匹配、多列JOIN匹配、子查询、EXISTS、UNION组合数据源以及索引优化等。多列匹配在复合主键或唯一约束字段组合中尤为高效,且比AND更具表达力。性能优化方面,建议原创 2025-05-19 10:52:14 · 667 阅读 · 0 评论 -
SQL:MySQL函数:空值处理函数(NULL Handling Functions)
在MySQL中,NULL表示“未知”或“无值”的状态,不同于数字0或空字符串。处理NULL值时,常用函数包括:IFNULL()用于替换空值为默认值,COALESCE()返回第一个非NULL值,NULLIF()在表达式相等时返回NULL以避免错误,以及ISNULL/ISNOTNULL用于判断值是否为NULL。这些函数在数据库查询中非常有用,例如替换空值、避免除以0错误或筛选空值记录。具体应用场景和示例语句可参考相关技术文章。原创 2025-05-15 21:07:22 · 1092 阅读 · 0 评论 -
SQL:MySQL函数:条件函数(Conditional Functions)
条件函数是SQL查询中用于根据条件真假返回不同值的函数,常用于逻辑控制、数据筛选和分类处理。常见的MySQL条件函数包括: IF():根据条件返回不同值,如IF(score>=60, '及格', '不及格')。 IFNULL():判断值是否为NULL并返回替代值,如IFNULL(bonus, 0)。 NULLIF():若两表达式相等则返回NULL,如NULLIF(grade, 'F')。 CASE:实现多条件分支判断,如CASE WHEN salary>10000 THEN '高薪' ELSE原创 2025-05-15 20:56:49 · 624 阅读 · 0 评论 -
SQL:MySQL函数:数学函数(Mathematical Functions)
在 MySQL 中,数学函数(Mathematical Functions)主要用于执行数值计算,如求和、取整、开方、对数等,广泛应用于统计、报表、数据建模等领域。原创 2025-05-13 10:36:40 · 869 阅读 · 0 评论 -
SQL:JOIN 进阶
JOIN是关系数据库中用于连接两个表的操作,本质上是“笛卡尔积+条件筛选”。外连接(OUTER JOIN)不仅保留匹配成功的行,还保留未匹配的行,用NULL补全缺失部分,包括LEFT、RIGHT和FULL OUTER JOIN。USING子句是一种简化JOIN操作的语法,适用于连接字段名相同的情况,避免重复书写ON条件,且SELECT结果中只显示一次公共字段。NATURAL JOIN则自动基于相同列名进行连接,但存在字段名冲突和表结构变动的风险,可控性较低。JOIN的底层逻辑是通过笛卡尔积生成所有可能的行组原创 2025-05-12 22:18:39 · 1142 阅读 · 0 评论 -
SQL:MySQL函数:日期函数(Date Functions)
我们用 MySQL 存储时间,其实和存储数字、字符串一样,时间是。适用场景:记录操作时间、筛选“今天”的数据、判断是否超期。适用场景:前端展示、日志格式化、分组查询(比如按月统计)。适用场景:查“过去 7 天”/“近 1 个月”的记录。适用场景:计算会员时长、距离到期还有几天、是否超时。于是我们需要一类“时间函数工具箱”来完成这些任务。适用场景:按年月日分组、按小时分布分析。某个时间加上 3 天是多少?显示成“年-月-日”?原创 2025-05-12 08:46:16 · 595 阅读 · 0 评论 -
SQL:SELF JOIN(自连接)与CROSS JOIN(交叉连接)
比较项SELF JOINCROSS JOIN含义表与自身连接,按条件匹配不同记录两表的所有记录两两组合结果行数根据 JOIN 条件过滤后生成的匹配行m × n 行(m,n 分别为两表的行数)使用场景自我比较、查找相关记录(如“比昨天温度高”)枚举所有组合,如“所有商品和所有客户”性能较高(条件过滤优先)较低(生成全部组合再过滤)原创 2025-05-11 22:44:23 · 1332 阅读 · 0 评论 -
SQL:MySQL函数:字符串函数
我们用数据库存储信息,经常会处理文字/文本(如:用户名、推文、商品名、评论内容)。但是这些文字往往:太长、太短(需要裁剪)多余空格(要去掉)出现错别字/旧字段(要替换)需要统计长度(做验证、展示控制)👉 所以,就像洗衣机、剪刀、胶水,是处理文本的“工具箱”。原创 2025-05-08 21:37:31 · 1031 阅读 · 0 评论 -
SQL:MySQL 函数
Concatenation 中文叫做“拼接”,意思是把两个或多个字符串连起来,形成一个更长的字符串。在生活中我们经常干这个事,比如:原创 2025-04-26 10:30:21 · 818 阅读 · 0 评论 -
SQL:子查询(Subquery)
子查询(Subquery)就是 SQL 中处理“复杂逻辑拆成两步”的工具,像数学里的中间变量,能帮助你更自然地表达“先求出一个值,再用它继续筛选”的需求。原创 2025-04-25 09:02:43 · 1209 阅读 · 0 评论 -
SQL:聚合函数(Aggregate Functions)
聚合函数是 MySQL 中用于对一整列的数据进行统计、计算或汇总的函数。它不是作用于“某一行”,而是作用于“一列”或“一组”数据。原创 2025-04-18 21:20:26 · 1453 阅读 · 0 评论 -
SQL:Constraint(约束)
Constraint(约束) 是你在创建表时指定的一组规则,用于限制字段中允许的值,以防止无效、重复或不一致的数据写入数据库。原创 2025-04-12 17:23:24 · 508 阅读 · 0 评论 -
SQL:Relationship(关系)
关系(Relationship)在 MySQL 中指的是表与表之间的关联方式,用来反映现实世界中实体之间的联系。在数据库设计中,我们通过主键(Primary Key)和外键(Foreign Key)来实现这些关系。关系类型特点示例一对一双方都唯一人与身份证一对多一方唯一,多方可以重复教师与学生多对多双方都可以多个学生与课程。原创 2025-04-12 17:17:17 · 1058 阅读 · 0 评论 -
SQL:Normalization(范式化)
字段中不能有多个值(必须是原子值)字段名不应重复(如 Class1, Class2)每一行记录应代表一个唯一实体的单一信息单位StudentYearClass11Math10History11MathBrian Cox87❌ 为什么这个表不满足第一范式(1NF)?字段“Class”不是原子值(存在多个值组合成一个字段):Brian Cox 的 Class 是 “English, Chemistry”(包含多个课程)原创 2025-04-12 16:26:34 · 909 阅读 · 0 评论 -
SQL: 多表连接与跨表查询(JOIN)
在 MySQL Workbench 中创建 Entity Relationship Diagram(ERD) 是非常实用的功能,适合可视化数据库结构。是用来连接两个或多个表的操作,它基于表之间的关系(通常是外键),将它们的记录“拼接”起来,它让你能在多个表之间组合数据。某个客户买了什么商品?写别名的目的是为了避免重复表名前缀,尤其在多表连接中非常有用。6.你可以在这个界面中拖动、调整表的位置,并右键表查看表结构。每一条记录是:某个顾客买了某个商品,在某个时间。,每次 JOIN 两张表,最后形成一张大表。原创 2025-04-12 11:19:33 · 1366 阅读 · 0 评论 -
SQL:单表查询基础
WHERE。原创 2025-04-11 11:00:30 · 830 阅读 · 0 评论 -
SQL:DML的基本语法
默认在某些客户端(如 MySQL Workbench)中启用,用来防止“无意更新或删除整个表”的风险。MySQL 中的“表”是由字段(列)组成的结构化数据集合。插入的记录(行)必须匹配这些字段的定义。含义是:关闭安全更新限制,允许执行不带 WHERE 的 UPDATE/DELETE 语句。如果忘记加WHERE,会把整张表的 price 都改成 3.20,生产环境很容易翻车。删除所有价格小于 3 的,并且产地是 Kenya 的咖啡产品。(⚠️ 没有它就是删除整个表的内容)是对应字段的值,类型要匹配。原创 2025-04-10 11:11:48 · 972 阅读 · 0 评论 -
SQL:DDL的基本语法
下面我们通过具体的例子,给大家介绍DDL的基本语法,并对常见问题进行解答。原创 2025-04-09 21:10:09 · 997 阅读 · 0 评论 -
SQL:Primary Key(主键)和Foreign Key(外键)
首先,我想先介绍一下简单介绍SQL中的Key(键)和Index(索引)。原创 2025-04-07 21:34:30 · 1959 阅读 · 0 评论 -
SQL:数据类型(Data Types)
当你在数据库中创建表格时,你必须指明表中每一列可以保存的数据类型。数据类型可以分为几类:数字数据类型(Numeric data types),非数据类型(Non-numeric data types),日期和时间类型(Date and Time Types)。原创 2025-04-07 17:24:20 · 2045 阅读 · 0 评论 -
SQL:DDL(数据定义语言)和DML(数据操作语言)
SQL(Structured Query Language,结构化查询语言)是用来管理数据库的语言。想象数据库就像一个大仓库,里面存放着各种数据(比如顾客信息、商品记录等),而SQL就是你用来“指挥”这个仓库的工具。它可以帮你创建仓库、整理货架、添加货物、查询货物,甚至清空仓库。SQL被分成几大类,其中最基础的两类是DDL和DML。DDL是用来定义数据库“结构”的语言。结构就像是仓库的框架,包括仓库本身、货架(表)、货架上的格子(列)以及索引(方便找东西的标签)。原创 2025-04-07 16:35:36 · 1363 阅读 · 0 评论