sql相关子查询的一道选择题

img

请问一下选什么,为什么?因为我基础不是很好,所以希望您详细解释。谢谢

①若D(i=1,2,...,n)为有限集,假设基数为m(i=1,2,...,n),则D1D2D3*...*Dn)的基数为M=(m1+m2+...+mn),,所以基数是内表操作的所有可能的结果,也就是所有的行数。题目说到,子查询的查询数量,如果不包括子查询的过滤条件,就是所有的行,也就是基数。
②如果有过滤条件,那么子查询查询的就是部分基数了,一般是select列举出需要的元组,也就是元数,然后将返回的结果在外层的sql语句的进行再次过滤。

③综上所述,该题目的意思是问子查询的查询数量,不包含过滤的条件,也就是全部的可能结果,也就是基数,所以选A

我觉得是选a
子查询是先执行子查询中的语句,然后将返回的结果与外层的sql语句的过滤条件,
而当遇到同一个sql中含有多层子查询时,也是从里层开始执行

基数为行,元数为列,与基数有关 A

首先作为小白式的理解是:子查询也称“内部查询”或者“嵌套查询。那就可以排除B、D。这个应该理解,没有疑问。
那么B、C都是内部的,只是一个是基数、一个是元数。这样我们来理解下,什么是基数、什么是元数。
SQL中基数的概念是:某个列唯一键的数量,例:比如性别这一列,该列只分男\女,所以这一列的基数是2。
SQL中元数的概念是:定义数据库各类对象结构的数据,例:比如定义一张表的表名、字段类型、外键约束等信息,这些用来存储数据库的元数据
所以我们选择了A,因为题意是子查询的查询数量根据,查询数量更多的要用到某个列唯一键的数量。【开始我也误认为是C,因为子查询用的语法中大多是where和from。】

子查询用在字段列和查询条件的话 个人感觉不一样。
子查询用在字段列:应该选D
查询条件:应该选A

关系中属性的个数称为“元数”,元组的个数称为“基数”。有时也称关系为表格,元组为行,属性为列。元数是指字段的个数,也就是属性的个数,即列数,而基数是行数。应该选A

选a