
MYSQL
文章平均质量分 67
chenwenxing228
这个作者很懒,什么都没留下…
展开
-
MySql的行锁、表锁,select……for update到底是加了行锁,还是表锁?
行锁(Row Lock)定义:锁定表中的单行数据,其他事务可操作表中其他行。特点:锁粒度小、并发度高,但可能引发死锁适用场景:高并发读写(如账户余额更新、订单处理)表锁(Table Lock)定义:锁定整张表,其他事务无法进行写操作。特点:锁粒度大、并发度低,但实现简单且无死锁风险适用场景:批量操作(如ALTER TABLE、全表更新)或低并发场景特性行锁表锁粒度单行数据整张表。原创 2025-04-24 09:52:36 · 567 阅读 · 0 评论 -
EXISTS子查询
如果子查询返回至少一行结果,EXISTS表达式就会返回TRUE;如果子查询不返回任何结果,EXISTS表达式就会返回FALSE。因为所有学生至少选修了一门课程,所以所有学生都会被选中。如果我们只想知道哪些学生选修了特定课程(比如Math),我们可以稍微修改。这个查询会返回选修了Math课程的所有学生。在这个例子中,Alice和Bob都会被选中,因为Charlie没有选修Math课程。每个学生可以选修多门课程,每门课程也可以被多个学生选修。现在,我们想要找出至少选修了一门课程的所有学生。原创 2024-05-07 16:12:31 · 444 阅读 · 0 评论 -
GROUP BY 分组sql查询使用
这是按照性别和年龄段统计的订单总量。例如,对于女性用户(F),在年龄段为0-18岁的范围内,共有1个订单;在年龄段为19-35岁的范围内,共有3个订单;在其他年龄段内,订单总量都为0。男性用户(M)的情况类似。现在,我们希望进行一个复杂的查询,要求按照性别统计每个年龄段的订单总量。这需要进行多表联合查询,并使用聚合函数进行分组统计。假设我们有两个表:一个是用户表。假设我们填充了一些示例数据到。原创 2024-04-22 10:09:47 · 870 阅读 · 0 评论