计算机二级中的9种运算问题:笛卡尔积,自然连接,交,并,选择,投影。。。

这九种运算分为7种二元运算 2种一元运算

用文字和例子来分别解释上面几个概念:

7种二元运算

1.笛卡儿积:

                    已知

                     
如果算X1和X2的笛卡尔积          
                                  则:
                                     首先将属性( 或者叫标题A B CD E 和在一块形成新的一组标题 ABCDE  
 
                                               X1的 第一行 1 2 3 和 X2 的 第一行 ab 构成结果的第一行

                                               X1的 第一行 1 2 3再与X2的 第二行cd构成结果的第二行
                                              。。。

                 所以结果一共有 6行 5列
         
                              总结:笛卡儿积两个表格一般属性没有相同的 本例是ABC和DE

 2.自然连接:
                
                      已知:     

                            
                           第一步:找到X1 X2属性(标题)中相同的两列 :X1中的B 和X2中的B
                           第二步:找到两列中相同的元素(图中相同元素已经用相同颜色标出)
                           第三步:将X1,X2中相同元素所在行组成新的一行
                                       例如:
                           X1中的 和      X2中的  
                                 两个5消掉一个剩一个5 组成了
                                                       
                           将剩下的也这样做,X1中的两个6 每一个都进行这样的运算,将相同元素所在的行拎出来,然后组成一个,相               同的消掉变成一个:   
                        结果为:
                                        

                          总结:自然连接一般两个表格的属性中有部分相同,本例是都有一个B

3.交:

               已知:
                                 

                                     第一步:看这两个表的标题完全一样都是ABC

                                     第二步:选出一模一样的行(图中利用相同颜色标出)
                            
                             结果:
 

                               

                               

                    总结:交一般两个表格的属性中全部相同,本例两个都是ABC 

4.并:

             已知:
                           
                    就是将两个表格摞在一起:
                                         

                      总结:并一般两个表格的属性中全部相同,本例两个都是ABC 

5.差:

              已知: 计算X1-X2
                  
               在A中将两个表格中相同的行排除掉,留下剩下的红色部分:

                       
                    总结:差一般两个表格的属性中全部相同,本例两个都是ABC 


6.除:
      除是笛卡儿积的逆运算
                已知:               

                 求X1/X2

            

           找到X1中X2具有的属性,本题是CD同时找到和X2元素其中一行相等同时在X1中其它元素都相等的两行 ,在图中X1中标出了,于是可以推断     红色元素中  : X2和结果Y做笛卡儿积得到X1      得到Y:
                      
                  总结:除一般两个表格的属性中部分相同,本例两个是ABCD和CD     
7.连接:
     连接是笛卡儿积带有条件时的情况:
          已知:  条件是C<E
                
          所以的我们将满足条件的行标黄
                 对他们进行笛卡儿积:
                  得到:
                   
                     总结:连接一般两个表格的属性不相同,本例两个分别是ABC 和DE,它是             笛卡儿积附加条件时的运算


2元运


1.选择运算:

                     进行选择运算完成后会减少 
                               

2.投影运算:
                    进行完投影运算后会减少 
                            

                                 


                   




                       




  • 266
    点赞
  • 710
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
查询:limit和offset 内连接:inner join on 内连接是指只返回两个表都有数据匹配的行,也就是说只返回匹配的结果集。在 MySQL ,内连接可以使用“inner join on”来实现。例如: ``` SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id; ``` 这个查询语句将返回 table1 和 table2 表都有匹配数据的行。 叉连接:笛卡尔积 叉连接是指返回两个表的所有可能组合,也就是说返回的结果集是两个表的笛卡尔积。在 MySQL ,可以使用“cross join”关键字来实现叉连接。例如: ``` SELECT * FROM table1 CROSS JOIN table2; ``` 这个查询语句将返回 table1 和 table2 的所有可能组合。 等值连接: 等值连接是指返回两个表某个列值相等的行。在 MySQL ,可以使用“inner join on”来实现等值连接。例如: ``` SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id; ``` 这个查询语句将返回 table1 和 table2 id 列值相等的行。 自然连接自然连接是指返回两个表所有列名相同且列值相等的行,不需要指定任何连接条件。在 MySQL ,可以使用“natural join”关键字来实现自然连接。例如: ``` SELECT * FROM table1 NATURAL JOIN table2; ``` 这个查询语句将返回 table1 和 table2 所有列名相同且列值相等的行。 自连接: 自连接是指在同一个表进行连接查询。在 MySQL ,可以使用“inner join on”关键字来实现自连接。例如: ``` SELECT a.id, a.name, b.name FROM table1 a INNER JOIN table1 b ON a.parent_id = b.id; ``` 这个查询语句将返回 table1 表每个行的 id、name 以及它的父级 name。 外连接: 外连接是指返回两个表匹配和不匹配的行,一般分为左外连接、右外连接和全连接。 左外连接: 左外连接是指返回左表所有行以及右表匹配的行。在 MySQL ,可以使用“left join on”关键字来实现左外连接。例如: ``` SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id; ``` 这个查询语句将返回 table1 所有行以及 table2 匹配的行。 右外连接: 右外连接是指返回右表所有行以及左表匹配的行。在 MySQL ,可以使用“right join on”关键字来实现右外连接。例如: ``` SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id; ``` 这个查询语句将返回 table2 所有行以及 table1 匹配的行。 全连接: 全连接是指返回左表和右表所有行。在 MySQL ,可以使用“full outer join on”关键字来实现全连接。例如: ``` SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.id = table2.id; ``` 这个查询语句将返回 table1 和 table2 所有行。 子查询: 子查询是指在一个查询语句嵌套另一个查询语句,用于获取需要的数据。通常分为单行子查询和多行子查询。 单行子查询: 单行子查询是指返回一行数据的子查询。例如: ``` SELECT name FROM table1 WHERE id = (SELECT id FROM table2 WHERE name = 'John'); ``` 这个查询语句将返回 table1 id 和 table2 name 匹配的行的 name 字段。 多行子查询: 多行子查询是指返回多行数据的子查询。例如: ``` SELECT name FROM table1 WHERE id IN (SELECT id FROM table2 WHERE age > 18); ``` 这个查询语句将返回 table1 id 和 table2 age 大于 18 的行的 name 字段。 TopN查询: TopN查询是指获取查询结果集前 N 行数据。在 MySQL ,可以使用“limit”关键字来实现分页查询,例如: ``` SELECT * FROM table1 LIMIT 10; ``` 这个查询语句将返回 table1 的前 10 行数据。 同时,可以使用“limit offset, count”来实现分页查询,例如: ``` SELECT * FROM table1 LIMIT 10, 20; ``` 这个查询语句将返回 table1 从第 11 行开始的 20 行数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值