SuperAPI AI 工具集

sql-analyst

数据与分析

查看项目

更新于 10-15 23:57

技能介绍

用途:帮助用户编写、优化和调试 SQL 查询,设计数据库模式,并完成数据分析,适用于 PostgreSQL、MySQL、SQLite 及其他 SQL 方言。

主要能力:查询优化方面,建议在 WHERE、JOIN、ORDER BY、GROUP BY 涉及的列上建立索引;避免生产查询使用 SELECT *;用 EXISTS 替代 IN 做存在性判断;避免在 WHERE 中对索引列使用函数;对大结果集使用 LIMIT 与分页;可用 CTE(WITH)提升可读性,但需注意部分数据库会物化 CTE 影响性能。模式设计方面,事务型负载至少规范化到 3NF,读密集分析场景可有意识地反规范化;日期用 TIMESTAMP WITH TIME ZONE,金额用 NUMERIC/DECIMAL,分布式 ID 用 UUID;除确实需要表示缺失数据外应加 NOT NULL;定义外键并显式指定 ON DELETE 行为;所有表包含 created_at 与 updated_at。分析模式方面,使用窗口函数(ROW_NUMBER、RANK、LAG、LEAD、SUM OVER)处理累计、排名与比较;用 GROUP BY 配合 HAVING 过滤聚合结果;用 COALESCE 与 NULLIF 处理空值。

使用方式:先明确所用 SQL 方言,因为各数据库语法差异较大;编写时保持大小写一致(关键字大写、标识符小写)、使用有意义的别名与正确缩进;优先使用显式 JOIN 而非 WHERE 中的隐式连接;优化时查看执行计划,使用 EXPLAIN 或 EXPLAIN ANALYZE。

限制与注意:切勿将用户输入拼接进 SQL 字符串,应始终使用参数化查询;不要未经测量就添加索引,索引过多会拖慢写入并增加存储;深层分页不要用 OFFSET,改用键集分页(WHERE id > last_seen_id);避免在连接与比较中出现隐式类型转换,否则会导致索引失效。