- 博客(40)
- 收藏
- 关注
原创 索引设计速查:哪些字段该建索引?哪些不能建?
phone 字段经常用于查找用户信息,那么在 phone 上建立索引,可以显著加快查询速度。插入、更新、删除数据时,数据库要同时维护索引结构(如 B+Tree),造成额外的写入开销。如果一个字段的取值非常有限,比如性别(男女)、状态(0/1),索引几乎不会提升查询速度。在数据库优化中,索引(Index) 是提升查询性能的“利器”,但也是一把“双刃剑”。因为字段区分度太低(只有男女两种值),即使建索引,查询时仍要扫描大量记录。索引不是越多越好,它的作用是加快“查”,但会拖慢“增删改”。
2025-10-17 16:54:38
1293
原创 MySQL 索引类型全梳理:B+Tree、Hash、全文索引一文看懂
今天这篇文章,我们就来系统梳理 MySQL 的常见索引类型:B+Tree 索引、Hash 索引、全文索引——并讲清楚它们的使用场景与性能差异。注意:在 InnoDB 中,虽然默认是 B+Tree,但 MySQL 也会在内部使用“自适应 Hash 索引”来优化查询性能。它的底层使用 倒排索引(Inverted Index) 实现,能高效地查找包含某个词的文本。而索引的存在,可以让数据库在数据结构中“定位”到目标行,从而显著加快查询速度。会写 SQL 的是开发,会用索引的,才是懂数据库的人。
2025-10-16 11:09:02
768
原创 SQL 索引速查:CREATE / DROP / SHOW INDEX 用法全解
能用到索引的查询:WHERE name = 'Tom' 或 WHERE name = 'Tom' AND age = 25。经常出现在 WHERE、JOIN、ORDER BY 中的字段值得建索引。学会合理使用索引,是从“写 SQL”到“优化 SQL”的第一步。在数据库优化中,索引(Index) 是最关键的性能工具之一。但如果 email 字段上有索引,数据库能立刻定位那一行。不建议给低选择性的字段建索引,比如性别、布尔类型等。如果字段更新频繁或索引长期不被使用,就需要删除。
2025-10-12 15:53:39
2321
原创 数据库索引速查大全:一文搞懂主键、唯一、普通、联合索引
查询时,如果 WHERE 条件中使用了索引的前缀部分(如 name 或 name + email),索引就能生效。底层原理上,MySQL 的大多数索引基于 B+Tree 实现,也就是说它是一种有序结构,便于范围查询和快速定位。学会这些,你就能在实际开发中写出更高效的 SQL,也能在面试中自信解释“索引底层逻辑与设计思路”。很多人只知道“建索引能让查询更快”,但不知道有哪些索引、各自有什么区别、该怎么设计。普通索引是最基础的索引类型,用来加快查询速度,但不限制数据唯一性。
2025-10-11 15:53:30
852
原创 SQL 面试题解析:如何用多表查询写用户订单统计?
先确定表关系,再选 JOIN 类型,用聚合函数统计,最后考虑边界情况(无订单用户、NULL 值、条件过滤)。已知用户表(user)、订单表(order),如何统计每个用户的订单数量和总金额?IFNULL 的作用是防止出现 NULL,比如用户没有订单时总金额为 0。如果希望统计所有用户,即使没有订单也显示,用 LEFT JOIN。订单表:存储订单详情(订单 id、用户 id、订单金额等)。用户表:存储用户的基本信息(用户 id、姓名等)。如果只统计有订单的用户,用 INNER JOIN。
2025-10-08 14:42:22
924
原创 面试陷阱:SQL 子查询 vs JOIN 的性能差异
在 SQL 面试中,“子查询和 JOIN 的区别” 是一个经典陷阱题。要不要我再帮你把这篇文章扩展一个 “面试实战案例:查询每个用户的最新订单”,对比子查询和 JOIN 的两种写法?答:通常 JOIN 更快,因为优化器能利用索引和连接算法,而子查询可能导致重复扫描。在一些数据库中,优化器对复杂子查询的优化能力有限,执行效率可能较低。优先选择 JOIN:在可替代的情况下,JOIN 通常比子查询更高效。能用 JOIN 的地方尽量不用子查询,除非子查询能让逻辑更清晰。子查询是指 在一个查询语句中嵌套另一个查询。
2025-10-07 14:33:57
1012
原创 SQL 面试高频:INNER JOIN vs LEFT JOIN 怎么考?
LEFT JOIN:返回左表的全部数据,即使右表没有匹配记录,也会显示。答:INNER JOIN 只保留匹配的行,LEFT JOIN 保留左表全部,右表没匹配时补 NULL。INNER JOIN 通常比 LEFT JOIN 更快,因为数据量更小,只处理交集。假设有用户表和订单表,想查所有下过订单的用户,用 INNER JOIN 就能完成。2. 问:什么时候用 INNER JOIN,什么时候用 LEFT JOIN?INNER JOIN 更像“筛选”,LEFT JOIN 更像“保底”。
2025-10-06 20:00:50
724
原创 面试必问:SQL 多表查询 JOIN 的底层原理
很多人能写出 INNER JOIN、LEFT JOIN,但面试官更关心你是否理解 数据库执行 JOIN 的方式。JOIN 的本质就是 把两张表的数据进行组合,然后根据条件(ON 子句)筛选出符合的行。4. FULL JOIN(部分数据库支持):保留两边所有数据,没匹配的部分补 NULL。3. RIGHT JOIN:与 LEFT JOIN 相反,保留右表所有数据。会写 JOIN 是入门,懂 JOIN 的底层原理才是进阶。JOIN 本质是两张表的行组合,然后按条件过滤。
2025-10-05 13:12:09
535
原创 SQL 多表查询场景速查:一对一、一对多、多对多
在实际开发中,单表查询往往无法满足业务需求,我们需要进行多表查询。多表关系大致分为 一对一、一对多、多对多 三种。多对多关系需要 中间表 作为桥梁。一对一关系通常出现在两张表一一对应的场景,比如用户表和用户详情表。一对一关系的 JOIN 与一对多类似,但通常主键和外键是唯一绑定。一句话记忆:“一对一靠唯一键,一对多靠外键,多对多靠中间表。一对多查询时,结果集中会重复出现“一”的部分(如用户信息)。多对多:必须通过中间表实现,再用双 JOIN 查询。需要引入中间表,避免直接的多对多关系。
2025-10-04 12:53:04
947
原创 SQL 子查询与多表 JOIN 用法大全(速查版)
在 SQL 学习和面试中,子查询 和 多表 JOIN 是两类非常常见的语法点。子查询(Subquery)是指将一个查询嵌套在另一个查询中,常用于条件过滤、结果生成或虚拟表。不一定,现代数据库优化器会自动将子查询优化成 JOIN,但复杂嵌套子查询依然可能性能差。面试时,能熟练切换子查询和 JOIN 的写法,是 SQL 水平的体现。3. 大数据场景下,避免过度嵌套子查询,容易拖慢查询效率。两者的结果相同,但执行效率上,JOIN 往往优于子查询。1. 能用 JOIN 的地方尽量用 JOIN,性能更好。
2025-10-03 14:21:13
1084
原创 SQL 多表查询实用技巧:ON 和 WHERE 的区别速览
尤其是 ON 和 WHERE 的区别,很多初学者常常混淆,结果写出的语句逻辑错误,甚至导致数据结果不一致。真正理解 ON 和 WHERE 的区别,不仅能避免逻辑 bug,还能在面试中体现你对 SQL 细节的掌握。当使用 INNER JOIN 时,无论把条件写在 ON 还是 WHERE 中,结果基本一致。在 LEFT JOIN 或 RIGHT JOIN 中,ON 和 WHERE 的位置不同,结果可能差别很大。第一条语句会保留所有学生;连接条件写在 ON,过滤条件写在 WHERE,语义清晰,不容易混淆。
2025-10-02 13:50:05
1405
原创 SQL 多表查询常用语法速查:INNER JOIN / LEFT JOIN / RIGHT JOIN
需要保留右表的完整数据,例如:查询“所有订单对应的用户”,即使有订单没有匹配到用户(脏数据),也要展示。如果把条件写在 WHERE,而不是 ON,会把没有匹配的数据也过滤掉,相当于变成 INNER JOIN。需要保留左表的完整数据,例如:查询“所有用户及其订单情况”,即使有用户没有下过单,也要展示。答:INNER JOIN 过滤掉不匹配的数据,而 LEFT JOIN 会保留左表全部行。● LEFT JOIN:保留左表全部,右表能匹配则显示,不能则 NULL。
2025-10-01 14:30:26
1067
原创 SQL 多表查询速查:JOIN、子查询一文全掌握
本文总结了多表查询的常用写法,既能作为学习笔记,也能在面试中快速回忆。👉 注意,这里WHERE o.amount > 100会把没有订单的用户也过滤掉,效果相当于INNER JOIN。💡 建议:多写实际SQL,多用EXPLAIN分析执行计划,才能真正理解JOIN的性能差异。以左表为主,返回左表全部数据,如果右表没有匹配,则填充为NULL。真实业务中,数据往往分散在不同表中,例如用户表和订单表。和LEFT JOIN相反,以右表为主,返回右表全部数据。查询用户的订单信息,就需要把这两张表的数据结合在一起。
2025-09-30 15:54:27
1102
原创 SQL 性能优化:为什么少用函数在 WHERE 条件中?
如果在 WHERE 子句中直接对列使用函数,比如 MONTH(created_at),数据库必须逐行计算函数结果,然后再比较条件。部分数据库(如 MySQL 8.0 的函数索引、Oracle 的函数索引)允许对函数结果建索引,但一般场景下还是推荐避免函数计算。SQL 优化的核心原则之一就是 让索引能被用到,而在 WHERE 子句里少用函数,就是为了保证这一点。在 WHERE 条件里使用函数,往往会导致 索引失效,查询性能下降。如果确实需要函数,可以考虑 函数索引,但这不是常规手段。
2025-09-28 11:07:39
904
原创 面试官常问:NULL 对聚合函数的影响
AVG 的计算过程等价于 SUM / COUNT(列名),所以 NULL 同样会被忽略。今天我们就来系统梳理一下。COUNT(*) 包含 NULL 行,COUNT(列名) 忽略 NULL。解释:COUNT(列名) 只统计非 NULL 的值,NULL 不会计入。全是 NULL 的情况:大部分聚合函数返回 NULL,而不是 0。解释:COUNT(*) 会统计所有行,不管列是否为 NULL。SUM 会忽略 NULL 值,只对非 NULL 记录求和。如果全是 NULL,则结果为 NULL,而不是 0。
2025-09-27 17:00:55
841
原创 SQL 面试经典:如何用 CASE WHEN 实现分组统计?
CASE WHEN 在 SQL 中就像 if-else 分支,根据条件返回不同结果。3. 在面试和报表开发中,CASE WHEN + 聚合函数经常用来实现 分组统计。这种写法在面试中非常高频,考察你是否能灵活运用 CASE WHEN 和日期函数。4. 一句话记忆:“GROUP BY 是行分组,CASE WHEN 是列拆分。✅ 掌握 CASE WHEN,你就能在面试和实战里写出更灵活的数据统计 SQL。1. CASE WHEN 是 SQL 里的 条件分支,非常灵活。
2025-09-25 14:13:47
897
原创 聚合函数陷阱:AVG 和 GROUP BY 搭配使用注意点
比如你想统计“所有员工的平均工资”,但实际结果是“有工资数据的员工平均工资”。这在大多数数据库里会报错,因为 employee_name 既不在 GROUP BY 里,也没有被聚合。“AVG 算平均,GROUP BY 定粒度,HAVING 过滤结果,ORDER BY 排序输出。👉 注意:这里不能用 WHERE,必须用 HAVING,因为 AVG 是聚合结果。Q2:统计每个部门的平均工资,但只显示平均工资大于 5000 的部门?👉 结果就不是“部门的平均工资”,而是“部门+职位的平均工资”。
2025-09-24 12:24:25
1024
原创 日期函数面试题:如何统计近 7 天/30 天的用户数?
1. 核心函数:NOW()、CURDATE()、DATE_SUB()、DATE()、DATE_FORMAT()。2. 近 7 天 / 30 天统计:用 DATE_SUB(NOW(), INTERVAL N DAY)。3. 分组统计:用 DATE()(按天) 或 DATE_FORMAT()(按月)结合 GROUP BY。DATE_SUB(NOW(), INTERVAL 7 DAY) 表示从当前时间往前推 7 天的时间点。在 SQL 面试和工作实战中,统计最近 7 天、30 天的用户数 是非常高频的考点。
2025-09-23 09:59:36
932
原创 SQL 字符串函数高频考点:LIKE 和 SUBSTRING 的区别
特别是 LIKE 和 SUBSTRING,两者看似都能“截取/匹配字符串”,但本质作用完全不同。👉 如果你正在准备 SQL 面试,可以把这一类“高频考点函数”整理成一套 速查笔记,比如 COUNT vs COUNT(列)、LIKE vs IN、IS NULL vs = NULL 等,都经常被面试官拿来考察。SUBSTRING 只能截取,而 LIKE 提供了通配符匹配,是 查询条件,不是字符串处理函数。SUBSTRING:字符串截取函数,常用于数据清洗或拆分,返回子串。
2025-09-21 13:37:28
1026
原创 面试必问:SQL COUNT(*) 和 COUNT(列) 的区别
在老版本的 MySQL 中,COUNT(1) 可能在某些场景下比 COUNT(*) 更快,但在 MySQL 5.7+ 或 8.0 中,二者已经无差别。可以,因为主键不允许 NULL,所以 COUNT(主键) 等价于 COUNT(*)。COUNT(1):统计每一行中的常数 1,所以结果等同于 COUNT(*)。COUNT(1):与 COUNT(*) 等价,在现代数据库中无性能差异。在现代数据库里,COUNT(*) 和 COUNT(1) 性能一样。Q1:COUNT(列) 和 COUNT(*) 哪个更常用?
2025-09-20 09:15:03
630
原创 SQL 系统函数必会:USER、DATABASE、VERSION 详解
本文总结了最常用的系统函数 —— USER()、DATABASE()、VERSION(),并结合案例讲解,方便大家速查与面试准备。这些系统函数看似简单,但在 开发、运维、面试 中都经常用到,建议大家不仅要记住语法,还要理解它们的应用场景。DATABASE() 函数返回当前正在使用的数据库名称,如果没有选择数据库,则返回 NULL。● VERSION():返回数据库版本,方便调试与兼容性判断。● DATABASE():返回当前数据库名,避免误操作。● USER():返回当前登录用户,常用于排查权限。
2025-09-19 13:40:12
722
原创 SQL 条件函数 IF、CASE WHEN 用法速查
SELECT name, IF(email IS NULL, '无邮箱', '有邮箱') AS email_status。SELECT name, age, IF(age >= 18, '成年', '未成年') AS status。IF 是最简单的条件函数,只有两种结果:条件成立返回一个值,不成立返回另一个值。当条件不止两种情况时,CASE WHEN 比 IF 更灵活。CASE WHEN:多条件分支,SQL 标准,适合复杂逻辑。答:条件超过两种情况时,用 CASE WHEN 更直观。
2025-09-18 14:37:52
1001
原创 SQL 聚合函数总结:COUNT、SUM、AVG、MAX、MIN 详解
它们可以帮助我们对数据进行统计、汇总和计算,比如求总数、平均值、最大值、最小值等。本文将带你系统掌握 SQL 常见的聚合函数:COUNT、SUM、AVG、MAX、MIN,配合示例,快速理解和应用。2. COUNT(column):统计某列中非 NULL 的值数量。COUNT(column) 只统计该列非 NULL 的值。SUM() 用于计算数值列的总和,通常结合条件查询。应用场景:找出最大值,如最高分、最新时间、最大金额。应用场景:找出最小值,如最低价、最早时间、最小库存。
2025-09-18 14:35:59
1132
原创 SQL 日期函数大全:NOW、DATE_FORMAT、DATEDIFF 必背清单
SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H:%i:%s') AS formatted_time;DATEDIFF() / TIMESTAMPDIFF():计算日期差,前者是天数,后者更灵活。DATE_ADD(date, INTERVAL n unit):在日期上增加 n 个单位。NOW() / CURDATE() / CURTIME():获取当前日期和时间。DATE_ADD() / DATE_SUB():做日期加减运算。CURDATE():返回当前日期(不包含时间)。
2025-09-17 14:35:36
2182
原创 SQL 数值函数速查:ROUND、CEIL、FLOOR、MOD 怎么用?
在 SQL 查询和面试中,数值函数是非常高频的考点。无论是处理金额精度,还是做分页运算,都绕不开 ROUND、CEIL、FLOOR、MOD 这几个函数。掌握这几个函数,不仅能让你在 SQL 面试中轻松应对,还能在日常开发中写出更高效的查询逻辑。注意负数时:CEIL(-10.2) = -10,FLOOR(-10.2) = -11。● decimals:保留的小数位数,可选,默认为 0。MOD:取余数,适合做循环分组或奇偶计算。CEIL:向上取整,适合做分页计算。FLOOR:向下取整,取整时很常用。
2025-09-17 14:28:43
975
原创 SQL字符串函数速查:CONCAT、SUBSTRING、REPLACE 必会
在 MySQL 中,可以使用 CONCAT_WS(separator, str1, str2, ...),其中 WS 代表 with separator,即用指定分隔符拼接。本篇文章带你速查最常见的字符串函数 —— CONCAT、SUBSTRING 和 REPLACE,配合示例代码,快速掌握核心用法。CONCAT_WS:带分隔符拼接,常用于拼接日期或路径。SUBSTRING:更灵活,可以指定起始位置和长度。CONCAT:拼接字符串,遇到 NULL 要小心。length:可选参数,表示截取的长度。
2025-09-16 10:04:00
744
原创 SQL 常用函数大全:一文速查所有核心用法
- 输出:SQL, sql。-- 输出:4, 3。-- 输出:2025-09-01 10:30:00。-- 输出:2025-09-01。
2025-09-15 11:11:46
1003
原创 SQL 删除数据的几种方式:DELETE vs DROP vs TRUNCATE
本文就来详细梳理一下三者的区别与应用场景。掌握好这三种删除方式,能帮助你在不同场景下做出最佳选择,避免误删和性能问题。在生产环境中,如果要清空大表数据,优先考虑 TRUNCATE,性能更好。DELETE 是最常见的删除方式,用来删除表中的 部分或全部数据。● 删除过程逐行执行,每条删除操作都会记录日志,因此速度相对较慢。● TRUNCATE:快速清空表,不能带条件,不支持回滚,速度快。● DELETE:逐行删除,可条件筛选,支持事务回滚,速度较慢。● DROP:删除整个表,数据和结构都消失,无法恢复。
2025-09-14 15:40:05
792
原创 SQL UPDATE 语句详解:更新单列、多列的写法
在日常开发中,更新数据(UPDATE) 是仅次于 SELECT 的常用 SQL 操作。本文将带你全面掌握 单列更新、多列更新 的正确写法,并结合实际场景给出优化建议。-- 全表更新,危险!UPDATE 语句通常要结合 WHERE 条件,否则可能导致 全表更新。● WHERE 用来指定更新的范围(必须注意条件,否则可能全表更新)。UPDATE 是修改数据的核心语句,常见于单列更新、多列更新。大数据更新要注意 索引、分批更新、事务,提升性能和安全性。如果更新条件不精准,可能导致大面积锁表,影响其他业务。
2025-09-14 15:29:49
3401
原创 SQL 插入数据的正确姿势:INSERT INTO 详解
在日常开发中,插入数据(INSERT INTO)是我们最常用的SQL操作之一。无论是新增用户、生成订单,还是批量导入数据,都离不开INSERT INTO。但很多人对它的使用方式并不完全了解,尤其是在高并发、大数据量场景下,写法不当可能带来性能问题或数据一致性问题。INSERT INTO的写法灵活多样,不仅能插入单条数据,还能批量插入、从查询结果导入。👉 一次性插入多行数据比逐条插入效率更高,尤其在大批量写入场景下,推荐使用。在数据导入场景,可以先临时禁用索引,插入完成后再重建索引,提升写入速度。
2025-09-13 14:57:07
1270
原创 MySQL 分页查询优化:LIMIT 偏移量的坑
MySQL 提供的 LIMIT offset, size 是最常用的分页方式,但如果你在大数据量场景下使用,就很可能会掉进性能的“陷阱”。如果你在生产环境中遇到分页慢的问题,不妨先分析 SQL 的执行计划,再结合具体场景选择合适的优化策略。如果分页查询的数据需要频繁访问,可以考虑将结果写入缓存或临时表,然后分页读取,避免每次都全表扫描。这种方式非常高效,因为只依赖主键索引扫描,适合顺序加载的场景(如滚动加载、无限下拉)。最常见的优化方式是利用索引来“定位”分页的起点,而不是依赖 MySQL 丢弃数据。
2025-09-13 14:53:49
910
原创 SQL LIMIT 用法大全:查询前 N 条 & 分页技巧
这样的查询会很慢,因为数据库要先扫描前 100 万行再取 10 条。通常会配合 ORDER BY 使用,否则结果可能是“无序的前 N 条”。● MySQL / PostgreSQL:支持 LIMIT N OFFSET M。● LIMIT N OFFSET M → 跳过 M 条,取 N 条(分页)掌握 LIMIT 的用法,你就能轻松应对前 N 条查询和分页场景 ✅。→ 不同数据库可能返回不同的 10 条,结果不可控。多写几次,你就能彻底掌握 LIMIT 的精髓。解释:跳过前 3 条,取第 4-6 条数据。
2025-09-11 13:42:29
1452
原创 SQL 排序实战:如何根据字符串长度排序?
在实际业务场景中,我们经常会遇到这样的需求:不是按字母顺序排序,而是根据字符串的长度排序。例如,文章标题、用户名、备注信息等等。如果要根据字符串长度排序,就要先通过字符串长度函数计算出每条数据的长度,再排序。多条件排序时,可以先按长度,再按字母,结果更稳定。● MySQL / PostgreSQL:LENGTH() 或 CHAR_LENGTH()💡 面试提示:这类问题常见于 SQL 面试题,考察候选人对字符串函数和排序的综合理解。实际开发中,可能需要先按长度排,再按字母顺序排,避免长度相同的数据无序。
2025-09-10 08:39:19
1068
原创 SQL ORDER BY 排序详解:ASC、DESC、多个字段排序技巧
在查询结果中,有时候会对某个字段做运算或起别名,这时 ORDER BY 也可以直接用别名。可以看到,李四和赵六的成绩一样,排序时就看年龄,20 岁的赵六排在 21 岁的李四前面。面试提示:常考“多字段排序逻辑”和“默认排序方式”,记住 默认是升序(ASC)。可以按多个字段排序,后面的字段会在前一个字段相同的情况下再进行排序。● 多字段排序时,前一个字段相同才会比较后一个字段。| 1 | 张三 | 20 | 85 || 2 | 李四 | 21 | 92 || 4 | 赵六 | 20 | 92 |
2025-09-10 08:26:58
1041
原创 SQL 中 IS NULL 和 IS NOT NULL 的区别,面试常考!
在本地建一张带有 NULL 值的表,多跑几次查询,尤其是 COUNT、ORDER BY、比较运算,感受 NULL 的“坑”。在 ORDER BY 中,NULL 默认会排在最前(MySQL)或最后(Oracle/PostgreSQL)。👉 结果不会包含 Alice(NULL),因为 NULL 和任何比较运算结果都是 UNKNOWN。👉 判断 NULL,一定要用 IS NULL 或 IS NOT NULL!👉 在 SQL 中,NULL 不等于任何值,甚至不等于 NULL 自己。= 判断 NULL。
2025-09-08 13:33:13
982
原创 SQL WHERE 子句全攻略:=、IN、BETWEEN、LIKE 怎么用?
WHERE 子句是 SQL 查询的 基础核心,掌握它能让你的查询更灵活、更高效。👉 BETWEEN 是 包含边界值 的,也就是说 25 和 30 也会被选中。无论是做数据分析,还是开发业务系统,几乎所有查询都离不开 WHERE。2. 自己尝试用 =、IN、BETWEEN、LIKE 进行不同的筛选;在 SQL 查询中,WHERE 子句是 筛选数据的核心工具。👉 AND 表示多个条件都成立,OR 表示满足任意一个条件。多练几次,你就能熟练掌握 WHERE 的各种用法啦 🚀。👉 = 用来筛选 精确匹配的值
2025-09-06 15:12:34
1362
原创 SQL 去重查询:DISTINCT 的正确用法
💡 建议:在练习 SQL 时,可以自己建一张简单的 orders 表,多试试 DISTINCT 和 COUNT(DISTINCT ...),加深理解。DISTINCT 会对结果集做排序或哈希去重,如果表很大,查询可能比较慢。DISTINCT 是快速去重的利器,但也要分清场景,避免滥用。在写 SQL 查询时,经常会遇到一个问题:结果里有重复的数据。很多时候,我们不是要查数据本身,而是要 统计唯一值的数量。**5. 使用 DISTINCT 的注意事项****2. 使用 DISTINCT 去重**
2025-09-04 13:20:49
854
原创 SQL SELECT 语句详解:从 * 到字段别名
这篇文章,我们就带你从最基础的 * 查询,逐步理解到 字段别名 的用法。💡 如果你是 SQL 新手,可以把 CREATE TABLE、INSERT、SELECT 作为前三个学习重点,这样就能快速上手数据库。👉 缺点:当表字段很多时,会返回一大堆数据,效率低,还会让结果难以阅读。从 “*” 到 “别名”,是 SQL 新手迈向高效查询的第一步。SELECT 字段列表:只查需要的字段,效率更高。👉 好处:只取需要的数据,效率更高,结果更清晰。字段别名:让结果更清晰,写报表必备技能。👉 适用场景:快速查看整
2025-09-03 11:33:11
745
2
原创 新手学 SQL,先从 CREATE TABLE 开始!
其实,最好的切入点就是 CREATE TABLE ——创建一张属于你自己的数据表。掌握了这一步,后续的插入、查询、更新、删除都会变得更有意义。掌握 CREATE TABLE 后,再去学 INSERT、SELECT、UPDATE、DELETE 就会顺畅很多。SQL 的核心就是操作数据,而数据的“家”就是表(Table)。👉 邮箱地址,最大长度 100,并且要求唯一。表是数据的家,理解表的结构,才能理解数据操作;**4. 实际效果:用户表示例****2. 一个最简单的示例****5. 你可以做的小练习**
2025-09-02 08:10:08
492
原创 SQL 入门必看:数据库和数据表的基本概念
别担心,这篇文章会用最简单的语言带你入门,并配合代码示例,帮你快速理解数据库和数据表的基本概念。在数据库中,数据以“表格”的形式存储,每个表(Table)就像 Excel 里的一张表单。数据库就像一个更高级的“Excel 集合”,能处理海量数据,还能支持并发读写。多尝试创建、修改、删除操作,理解“数据库像仓库,表像表格”的思路。列(Column):一个字段(比如用户的姓名、邮箱、注册时间)数据库(Database)就是一个用来存储和管理数据的仓库。表 = 数据的基本存储单位,由“行”和“列”组成。
2025-09-01 20:35:55
559
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅