学习使用SQLite(版本3.7.4)(中C)

本文深入探讨了SQL中的聚合和连接操作,包括GROUP BY、COUNT函数、多表连接(内连接、交叉连接、外连接)及显示形式的连接方法。提供实际应用场景示例,帮助理解如何高效地对数据进行分组汇总与匹配查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上节注意:SQLite的C  API允许创建自定义的聚合和函数。

GROUP  BY的使用:

聚合主要是分组,既能计算整个结果集的组合值,也能把结果集分成多个组,对每个组单独应用聚合,并计算每个组的聚合值。如果是要计算每个type_id 组的数目:

这种办法可以获得一次性的结果,但是如果要获得单次的结果,可以这样写:select   count(*)  from   foods   where   type_id   =    x,x是整数之类。

 

多表连接:

将两个表中id相同情况下匹配的name 输出;

在这里,有着主键和外键的应用。其实,一个表的主键如果在另一个表的字段中出现,那么他就是另一个表的外键。这种关系可用来进行表的连接。

内连接:

   

交叉连接:

 

   尽量不使用交叉连接。

外连接之

左外连接:

左外连接操作SQL命令中的左表,上列中foods是左表。本操作,试图将foods中的行与foods_epispdes中行进行连接关系的匹配,匹配的行都包含在结果集中。但是,问题是,foods中没有和foods_episodes匹配的行还是会显示,但是foods_episodes将会把null值进行填充来显示。

右外连接:

            基本和左外连接是一样的,没有什么区别。唯一不同就是,通俗的讲就是右表的显示会多,左表进行填充。

全外连接:

           和复合查询有关。

自然连接;

             自然连接通过相同的字段将两个表连接起来,不用添加连接条件就可获得内连接的结果。

 

显示形式的连接;

内连接:

左外连接:

注意上面无法匹配的部分,是以null值填充的。

交叉连接:

注意上表的各个部分的不同之处。

总结其显示语法形式如下:

select  *  from left_table    join_type  join  right_table   on   join_condition;

其实,只要记得满足sql92也就基本没有什么问题了。

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值